计算摄影 | 摄像机成像原理及参数解析
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
本文转载自有三AI
本期主要对数字成像系统进行概述总结,行文主要分为:数字成像系统组成、摄像头关键部位概述、ISP概述、关于摄像头相关的技术指标概述以及总结。现在互联网资源比较丰富,本文只提出每个部分的关键知识点,读者如果有兴趣可以进一步深入检索进行学习。
对于人眼来说我们观察到一个物体很容易。初中物理和生物知识已经告诉我们当我们观察到光源下的物体时,比如对于变换光照来说我们眼睛可以通过补偿光照以自适应环境亮度变化、物体远近移动我们可以通过自主对焦以关注到物体移动。简单来说是因为眼周围肌肉引起瞳孔扩大缩小进而控制进光量,深究则是由于眼部的各种锥状细胞、杆状细胞等进行光感应进而能完成快速的物体成像。而数字成像系统也是和人眼成像有异曲同工之处。
如下是一个成像系统的关键组成:
以手机拍照为例:当打开手机准备拍照,镜头(Lens)会首先把被摄景物投影在图像传感器(Sensor)上,与此同时,影像处理器(ISP)会通过测光、测距算出合适的参数并指示镜头对焦,随着你按下拍照键,图像传感器(Sensor)会完成一次曝光,并通过影像处理器(ISP)变成图片,再经手机应用的后期处理,最终呈现在屏幕上,这就是消费者看到的JPG图像。
下面我们首先查看摄像头的整体结构:
上图几个关键概念解释如下:
Lenses&Spaces:
即镜头,镜头是将拍摄景物在传感器上成像的器件,它通常由几片透镜组成,相信如果了解工程光学的人对这个概念一定不陌生。从材质上看,摄像头的镜头可分为塑胶透镜和玻璃透镜。
Voice Coil Motor(VCM)音圈马达:
手机摄像头广泛使用VCM实现自动对焦功能,通过VCM可以调节镜头的位置,呈现清晰的图像。其里面实现原理主要是通过固定磁场加电流产生力进而引起马达运动然后对焦,通过步进方式在空间寻找对焦位置并通过对焦算法确定何时停止寻找对焦位置。关于AF对焦在详解3A算法部分会有详细讲解。
CMOS Image Sensor(CIS):
Sensor即传感器,传感器是摄像头组成的核心,也是最关键的技术。此图用的是CMOS传感器(已包含DSP处理器),摄像头传感器主要有两种,一种是CCD传感器,一种是CMOS传感器,两者区别在于:
CCD的优势在于成像质量好,但是由于制造工艺复杂,成本居高不下,特别是大型CCD,价格非常高昂。在相同分辨率下,CMOS价格比CCD便宜,但是CMOS器件产生的图像质量相比CCD来说要低一些。一般手机厂商都是采用CMOS传感器。如果要了解CMOS传感器工作原理,可参考工程光学相关内容,但需要提及的是CMOS实际上也就是通过光电感应原理将光信号转换为电信号,现在摄像头拍照数据流到达Sensor,传感器(Sensor)只能感应到光照强度的大小,这意味只能是获取黑白(0,1)照片,但是现在大部分照片都是彩色的,这是怎么回事呢?原来有一个叫Bayer的人发明了一种“颜色滤波矩阵”,如下:
其巧妙地将这个矩阵加持在传感器上,只让相应颜色波长的光子通过。仿照了人眼对于颜色的特殊模式要求,到此即形成了不同模式的Raw图,所谓Raw图即原始未经加工过的图,Raw图的形成下一节会详解其生成过程,RAW图接下来会经过“大脑”——ISP芯片。
ISP是Image Signal Processor的缩写,全称是影像处理器。在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始信号数据,可以理解为整个相机拍照、录像的第一步处理流程。
ISP芯片的主要作用就是对传感器输入的信号进行运算处理,最终得出经过线性纠正、噪点去除、坏点修补、颜色插值、白平衡校正、曝光校正等处理后的结果。ISP芯片能够在很大程度上决定手机相机最终的成像质量,通常它对图像质量的改善空间可达10%-15%。
一般来说各个厂家ISP整体线程流会集成各种3A算法、降噪等算法,isp pipeline大同小异,一般的pipeline流程如下:
上述是一个基本的isp pipeline流程图,其根据处理节点的不同分为RAW域、YUV域、RGB域。其中isp pipeline最关键的是3A算法,即AE、AF、AWB,但从上述图发现没有AE和AF?实际上这两个算法在raw图施加到pipeline上时候已经提前调试好了,因为只有AE曝光稳定,AF对焦准确,对于Raw域和YUV域进行的图像处理才有意义,否则都没有稳定的光电感应和准确对焦,何来更高的图像质量?关于ISP相关的说明文档很多,本文作为概述就不一一涉及,有兴趣的可以Google关于ISP相关的图像处理算法。
摄像头成像是一门涉及工业制造、软硬件结合的科学,故对于摄像头硬件有一套相应的硬件指标,各个大厂都不相同,但按照类别可以分类如下:
Lens主要指标:
解析度(Resolution)、视场角(Fov)、焦距(Focus length)、聚焦能力(Focusing Range)、光圈系数、失真(Restortion)。
Sensor的技术指标:
a.灵敏度(sensitivity mv/lux.sec):即1 lux照度下,1秒像素产生的电压值,其反应传感器的光电转换效率;
b.动态范围(Dynamic Range dB):一个动态范围大的传感器能准确记录影像从亮部到暗部的复杂变化,sensor动态范围很大程度上取决于单个像素面积大小;
c.暗电流(Dark shading pA.cm2):即在完全黑暗情况下,1s内像素产生电压值,其更多反映传感器材料性能;
d.信噪比(dB):信号电压与噪声电压的比值;
e.帧率(frame per second):一秒出帧数;
f.功耗(power consumption mw);
g.尺寸;
h.白平衡能力;
可见衡量sensor性能的指标很多,每一项的选型都对摄像头成像产生很大的影响,同时各个指标之间又是相互制衡的关系,所以各个大厂在对摄像头选型时候一般会根据产品定位去做选型,会考虑性价比。
Camera模组主要性能参数:
1、视觉分辨率(Visual Resolution)
2、色彩还原(Color)
3、白平衡(White Balance)
4、灰阶(Gray Scale)
5、成像均衡性(Imaging Uniformity)
6、曝光亮度差(Exposure)
7、缺陷像素(Defect pixels)
8、畸变(Tv Distortion)
9、对角线视场角(Maximum Angle of field of View)
10、帧率(Frame Rate)
各个Camera厂商会根据摄像头成像效果进行一套评估,即客观测试标准书,测试涉及光源、拍摄对象、评测算法。光源包括CIE标准光源,涉及D65、D50、荧光、A光、H光;拍摄对象包括ISO 1000图卡、24色卡、灰阶卡等;评测算法一般通过评测软件计算,如imatest、DXO评测软件等。
数字成像系统是一门系统性工程,其主要研究的是成像的技术。
总结成像过程就是:经过镜头聚光成像,sensor将光信号进行光电转换,AD处理,曝光增益控制,以及各种图像信号处理,最后按照一定时序和格式输出的数字图像信号。
上述核心在于sensor,其类似于传统相机的底片,而sensor的组成一般是三层结构:微镜头、滤色片、感光像素阵列。Sensor出的图是raw图,其需要经过ISP芯片中一系列算法处理后才能得到我们平时看到的jpg图像,而此时只是行百里者半九十,还需要根据各种成像指标进行图像效果质量测试,包括客观图卡测试硬件性能和主观场景测试算法成像效果,上述所有全系列指标都通过后才能完成一个完整的数字成像系统设计和实现进而可以量产交付。
值得一提的是,正是因为目前数字成像技术的广泛应用,在各个大的手机厂商催生了相应的工程师岗位:如模组工程师、整装工程师、驱动工程师、算法工程师、效果工程师、测试工程师等。通过这些工种可以发现,其基本上属于整个数字成像系统的流水线所有关键节点,正是这些工程师的整体配合,才会有消费级电子产品如手机拍照的诞生。
下载1:OpenCV-Contrib扩展模块中文版教程 在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。 下载2:Python视觉实战项目52讲 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。 下载3:OpenCV实战项目20讲 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。 交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~