相机分类及图像信号处理流程(一)
相机分类
camera 实际上包含了两类产品,一种是以拍摄静态图片为主的digital still camera,中文叫做相机,比如各种单反相机和微单类产品。
另一类是以拍摄连续视频为主的video camera,中文叫做摄像机,比如各种安防监控摄像头(video surveillance camera/CCTV security camera),运动DV,家用camcorder,以及录制影视节目用的电影摄像机(cinema camera)。
用于手机的camera则有一点特别,拍照和拍视频两种功能使用都比较频繁。
行车记录仪和流媒体后视镜属于车载camera产品,也是近年来增长比较快的市场。
相机指标
- 分辨率指标:比如某手机支持1200万像素摄像头,它背后的意义是该手机使用sensor抓拍静态照片时输出分辨率为4056x3040=1233,0240的完整尺寸图像,而拍照之前的预览视频则一般默认是1920x1080的FHD高清图像。
- 抓拍和预览时图像分辨率不同的原因:第一是省电,处理1200万像素的预览视频消耗的能量基本上是200万像素的6倍,手机的电量会迅速耗光;第二是成本,能够处理1200万像素预览视频的ISP复杂度更高,芯片面积更大,价格也更贵。第三是没有必要,因为手机屏幕的主流才刚刚达到200万像素,更高的分辨率没有实际意义。基于以上原因,手机在抓拍和预览时需要进行模式切换,而每次切换模式需要为sensor和ISP重新配置大量的寄存器参数,一般会有2万个左右,所以在切换瞬间预览视频会短暂黑屏,而实际抓拍到的图像与预览图像会存在一个明显的时间延迟。这个延迟会给用户造成不少困扰,比如会使家长们在抓拍小孩的表情时遇到一定的技术困难,会错过很多生活中的精彩瞬间。
- 像素密度:描述一幅图像的质量,一种常用的定义是PPI(pixel per inch)或DPI(dot per inch),即每英寸长度上(1in=25.4mm)打印多少个像素点。Photoshop软件中默认的标准像素密度是72dpi,高质量标准是300dpi。 下面的例子说明了不同像素密度对应的图像质量效果。
一张A4 纸的尺寸是210mm×297mm,即8.27inx11.69in。当以72dpi质量打印图像时,图像的分辨率至少需要是595×842, 当以300dpi质量打印时,图像的分辨率至少需要是2480×3508。
- 在我国一般采用国际单位体系,因此像素密度通常用PPM(pixels per meter)单位。在安防行业中,人们一般将图像质量从高到低分为5个等级,每个等级可以满足一定的应用需求,即
- Identification:图像质量优秀,图像中提供了充足的细节,可以完全确定目标的身份,并排除其它可能性
- Recognition: 图像质量良好,图像提供的细节足以断定图像中的目标是否与真实人物(或参考照片)属于同一人物
- Classification:图像质量一般,图像提供的细节仅能帮助分辨体貌特征,如男女、高矮、颜色等,但不能断定全部细节
- Detection:图像质量差,仅能勉强分辨图像中是否存在关注的目标
- Useless:图像质量太差,不能说明任何问题
下图说明的是人脸识别场景涉及的图像质量等级
下图说明的是车牌识别场景涉及的图像质量等级
相机和图像参数
纵向像素行数P:相机的参数P是逐行扫描,几P就是纵向有多少行像素,例如,1080p就是纵向有1080行像素 纵行看, 1080p是一种视频显示格式,外语字母P意为逐行扫描(Progressive scanning)。
横向像素列数K:“几K”的原始定义是:横向大约有几个1024列(等效)像素,1K就是1024,2K就是2048,4K就是4096,以此类推 横行看。
2K分辨率(英文名2K resolution)是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级。
在电视领域,这些“几K”都被加上了一个固定分辨率标准,比如1080p是1920x1080,4K是3840x2160,这些基本上都是16:9的电视标准
在分辨率为2048×1080的情况下,2048表示水平方向的像素数,1080表示垂直方向的像素数;同理,当分辨率处于4096×2160时,4096表示水平方向的像素数,2160表示垂直方向的像素数。
帧率通常为25,可表示在p后面,如1080p25,意思是一秒的图像有25张画面。常见的帧率还有24、30、60等。并非HDMI就一定有1080p的输出,画面不一定要能支持1920×1080才能算是1080p输出,只要垂直扫描线超过1080条就能称之为1080p,水平像素点并没有严格的规范。
帧 Frame:简单的理解帧就是为视频或者动画中的每一张画面,而视频和动画特效就是由无数张画面组合而成,每一张画面都是一帧。
帧数(Frames):为帧生成数量的简称。由于口语习惯上的原因,我们通常将帧数与帧率混淆。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象,因此高的帧率可以得到更流畅、更逼真的动画。
帧数与帧率FPS的区别:我们知道,速率(Speed)=距离(Distance)/时间(Time),单位为米每秒(m/s, meterspersecond, mps);
同理,帧率(Frame rate)=帧数(Frames)/时间(Time),单位为帧每秒(f/s, frames per second, fps)。
也就是说,如果一个动画的帧率恒定为60帧每秒(fps),那么它在一秒钟内的帧数为60帧,两秒钟内的帧数为120帧。
帧率是用于测量显示帧数的量度,测量单位为“每秒显示帧数”( Frame per Second, FPS)或“赫兹”( Hz),一般来说 FPS 用于描述视频、电子绘图或游戏每秒播放多少幀
FPS( Frame per Second)每秒显示帧数:FPS 是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。 FPS 是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会愈流畅。通常,要避免动作不流畅的最低是 30 。某些计算机视频格式,每秒只能提供 15 帧。
FPS 也可以理解为我们常说的“刷新频率”或者“刷新率”,使用“赫兹”( Hz)为单位。最简单的就是我们玩儿 LOL 英雄联盟、 CS 、以及手机上的王者荣耀等游戏中说的“ FPS 值”。而在显示器的刷新率中,通常会听到 60Hz,或者150Hz ,其中说的 60Hz 的刷新率,也就是指屏幕一秒内只扫描 60 次,即 60 帧/秒。
相机组成原理
我们看到的摄像机一般由镜头、图像传感器(mage Sensor 、图像处理器(Image Signal Processor,ISP)关键部件组成,如下图所示,其中光线经过被摄物体反射后经过镜头进入图像传感器,图像传感器感受到光后触发一系列光电转换输出数宇信号,经过图像处理器处理后输出为我们看到的数字图像。
摄像机组成示意图
用数学公式,可以将以上过程抽象为:
其中 x,y,z为被摄物体在空间坐标,λ为入射光波长,(e为入射光亮度,s为被摄物体反射函数,ρ为成像系统传递函数,k 为 RGB 三色。P为投影运算。x*,y*为被摄物体空间坐标在成像面sensor上的投影。
普通摄像机的投影方法为透视法成像(Perspective Projecton).其成像原理可以总结为:距成像面相同距离,物体越大成像越大;相同物体离成像面越近,成像越大。如下图所示。
透视法成像示意图
数字图像信号处理过程
在照相机系统中,图像传感器接收通过透镜或其他光学器件聚焦的入射光(光子photons)。 根据传感器是CCD还是CMOS,它会将信息作为电压或数字信号传输到下一级。CMOS传感器使用片上模数转换器(Analog to Digital Converter,ADC)将光子转换为电子,然后转换为电压,最后转换为数字值。
完整的图像处理流程由镜头(Lens)、CMOS图像传感、ISP处理芯片以及IO接口芯片组成。 拍摄景物通过镜头(lens),将生成的光学图像投射到传感器(sensor)上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像。
- 镜头Lens是一个能够接收光信号并汇聚光信号于感光器件CMOS/CCD的装置。 LENS的作用:汇聚光线,在CMOS/CCD上形成景物的图像,为了成像清晰,减少像差,镜头用多片镜片组合,根据需要通过调整LENS获得拍照所需要的焦距。
- CMOS图像传感器的作用:
- 光电转换:将光信号转换为电信号;
- 电荷积聚:收集产生的电荷作为信号电荷;
- 信号转移:将信号电荷移动到检测节点;
- 信号检测:将信号电荷转换为电信号(电压);
- 模数转换:将电压信号转换为数字信号;
- 数字信号处理芯片DSP(DIGITAL SIGNAL PROCESSING)功能:主要是通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号通过USB等接口传到PC等设备。ISP模块的作用是将CMOS图像传感器采集的原始图像(通常为Bayer格式)经过ISP pipeline处理流程转换为较高质量且可以显示的YUV格式图像。DSP结构框架:
- ISP(image signal processor)(镜像信号处理器)
- JPEG encoder(JPEG图像解码器)
- USB device controller(USB设备控制器)
- 手机摄像和处理模块主要包括:手机camera模组,Lens、Sensor、ISP、dsp
- camera 硬件架构包括:采集前端,传感器接口(C/DPHY CSI2 Host) ,硬件算法处理, online process(ISP) 和offline process(JPEG DSP)
镜头lens
镜头所起到的作用是将光线传输、折射并聚焦在传感器上,一股来用光圈、焦距等指标来描述镜头。
光圈指的是镜头上传输光线的孔径。顾名思义,光圈越大,通过镜头入射到 sensor上的光线也就越多。光圈的指标常用F 来描述,其值的倒数代表光圈大小。F1.0和 F3.0的镜头相比,前者的光圈更大。
焦距指的是平行光线经过镜头汇聚到主光轴的交点到镜头中心的距离,一般用小写的f表示。焦距越长,成像越大,视角也就越小.焦距越短,成像越小,视角越大。镜头常见指标光圈可分为自动光圈,手动光圈两种。焦距分方固定焦距和可变焦距,按照对焦方式又可分为自动对焦和手动对焦。
所谓对焦,就是可以通过 调整焦距的大小来完成被摄物体在成像面上的放大或缩小。
所谓对焦,就是自动或手动调整镜头中心到成像面的距离(法兰距),使得被摄物体在传感器上成像清晰。
图像传感器
图像传感器用于吸收镜头传递进来的光子并将其转换为电信号。根据元件的不同可分方 CCD ( Charge Coupled Device, 电荷耦合元件)和 CMOS ( Complementary Metal-Oxide Seraiconductor, 金属氧化物半导体元件)两大类。图像传感器的输出我们称之为 RAW Data.
在所有这些camera 产品中,CMOS sensor 图像传感器是当之无愧的核心元件,它位于镜头和图像信号处理器(ISP)之间,把光信号转换成ISP能够处理的数字信号(电信号)。CMOS sensor 与镜头、ISP一起构成了camera 的灵魂,决定了camera 的核心价值。
CMOS sensor 图像传感器
CMOS/CCD图像传感器示意图如下图所示。
图3 CMOS/CCD 图像传感器示意图
CCD 的电荷按列累加,一行一行的shifts charges,每一列一个放大器,放大器逐行将电荷转换为电压,具有高灵敏度和低噪声。传统意义上来说,CCD 图像传成器成像质量优于 CMOS,但是比CMOS复杂而且成本高。
CMOS 在每一个像素点后面都有一个放大器,多路复用器逐行读取电压,快速读出和成本低。传统意义上来说相对 CCD 功耗低,但是相对 CCD 噪点大。
一般来说,一个像素由 R/G/B 三个色彩分量组成,对应的,一个 640X480 幅面的10 比特 sensor 的输出理想情况下应该是 640×480×3x10bit。 为了降低 sensor 的数据输出压力,普通 sensor 上增加了 Color Filter Array(颜色滤镜),这样每一个像素点的输出颜色取决于该像素点表面的滤镜颜色。之后再经过ISP 的内插算法,最终得到 RGB 的数据。如图是一个CMOS 图像传感器的剖面图,光线经过微透镜和颜色滤镜后才进入光感器件。
传感器常见指标
Optical format:指图像传感器的对角线长度,常见 1/3-inch 和1/4-inch。Pixel Size:指每个像素点在图像传感器上所占的大小,一般越大感光度越好。
Sensitivity:指sensor 对某种波长光的敏感程度。这个值越高代表 sensor 的光电转换效率越高,换言之,sensor 的低光性能越好。
Color filter array:颜色滤镜。常见的有 Bayer Patter(RGGB)以及 CYMG Pattern(cyan-yellow-magenta-green).
Shutter type:快门类型,常见的有 global shutter,roling shutter 两种。顾名思义,前者是一幅图像所有像素同时开姶曝光,嚗光结束后同时读取每个像素累积电荷,然后一幅图像所有像素全部被重置。而后者是以行为单位曝光,同时以行为单位读取。
Dynamic Range:动态范围,指 sensor 能够输出的最大亮度与最小亮度的差与噪声的比值,用 dB 表示。这个值越高,代表 Sensor 所能表示的范围越大。
SNR: 信噪比,指平均像素值与噪声标准差的比值,用 dB 表示。这个值越高,代表 Sensor 的性能越好。
Sensor 的光电响应曲线如下图所示,左边是理想 Sensor 的光电响应 曲线,右边是实际 Sensor 的响应曲线。首先 Sensor 的底噪导致了曲线整体在Y轴上有个ffset,其次光电感应的阈值引入了X轴上的 offset。 Sensor 的饱和区域与底噪之间的区域就是Sensor 的动态范围。
图像信号处理器ISP
由于 Sensor 的输出一般不是标准的 RGB 格式,并且受限于 sensor 的功耗等约束,其输出数据需要经过一系列处理后才能在监视器或显示器上正常显示并被人眼所接受,因此 ISP 的主要功能是处理图像传感器的输出 Raw Data 使其能够符合人眼视觉特性。
一个典型 ISP 的框图如下图所示:
ISP主要模块
ISP 是摄像机里面负责图像处理的重要芯片。ISP 内部的算法模块由硬件和软件两部分组成。硬件部分的算法模块己经固化成硬件电路,典型的如:内插、噪声消除以及色彩校正等。软件部分的算法模块是研究如何动态配置 Sensor/ISP 硬件参数的控制策略,如:自动曝光算法、自动白平衡算法以及噪声消除的控制策略。镜头校正(lens correction)实际应用中,由于具体场景的需要以及成本的考虑,摄像机会搭配不同镜头。镜头校正是指针对由于镜头原因引入的成像误差进行的校正。