目前各大手机厂商每年都在推出各种关于手机摄像头的新卖点以求引起消费者关注。了解摄像头是怎样工作可以更好地帮助我们理解目前的消费级产品,其中摄像头工作的核心概念就是数字成像系统。

  本期主要对数字成像系统进行概述总结,行文主要分为:数字成像系统组成、摄像头关键部位概述、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图像,而此时只是行百里者半九十,还需要根据各种成像指标进行图像效果质量测试,包括客观图卡测试硬件性能和主观场景测试算法成像效果,上述所有全系列指标都通过后才能完成一个完整的数字成像系统设计和实现进而可以量产交付。

值得一提的是,正是因为目前数字成像技术的广泛应用,在各个大的手机厂商催生了相应的工程师岗位:如模组工程师、整装工程师、驱动工程师、算法工程师、效果工程师、测试工程师等。通过这些工种可以发现,其基本上属于整个数字成像系统的流水线所有关键节点,正是这些工程师的整体配合,才会有消费级电子产品如手机拍照的诞生。

Camera成像原理(二十四)相关推荐

  1. 华为鸿蒙参与者,一起来搞机 篇二十四:不止有鸿蒙,参加华为开发者大会是一种怎样的体验...

    一起来搞机 篇二十四:不止有鸿蒙,参加华为开发者大会是一种怎样的体验 2019-08-19 21:30:00 10点赞 6收藏 4评论 2019年8月9日至11日,HDC.2019华为开发者大会在广东 ...

  2. python 分数序列求和公式_Python分数序列求和,编程练习题实例二十四

    本文是关于Python分数序列求和的应用练习,适合菜鸟练习使用,python大牛绕行哦. Python练习题问题如下: 问题简述:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13 要 ...

  3. [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. SAP UI5 初学者教程之二十四 - 如何使用 OData 数据模型试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  5. OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()

    OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack() 参考博客: Harris角点检测原理详解 Harri ...

  6. Power BI(二十四)power pivot之产品/客户分类分析(ABC分析)

    Power BI(二十四)power pivot之产品/客户分类分析(ABC分析) 之前我们介绍过帕累托分析,现在我们使用power pivot进行产品/客户分类分析(ABC分析) 我们就以产品ABC ...

  7. 白话空间统计二十四:地理加权回归(八)结果解读(一)

    地理加权回归分析完成之后,与OLS不同的是会默认生成一张可视化图,像下面这张一样的: 这种图里面数值和颜色,主要是系数的标准误差.主要用来衡量每个系数估计值的可靠性.标准误差与实际系数值相比较小时,这 ...

  8. 二十四、Struts2中的UI标签

    二十四.Struts2中的UI标签 Struts2中UI标签的优势: 数据回显 页面布局和排版(Freemark),struts2提供了一些常用的排版(主题:xhtml默认 simple ajax) ...

  9. 异常处理程序和软件异常——Windows核心编程学习手札之二十四

    异常处理程序和软件异常 --Windows核心编程学习手札之二十四 CPU负责捕捉无效内存访问和用0除一个数值这种错误,并相应引发一个异常作为对错误的反应,CPU引发的异常称为硬件异常(hardwar ...

最新文章

  1. php面对对象设计,PHP对象与设计
  2. C++友元函数和友元类(C++ friend)详解
  3. python协程学习——写个并发获取网站标题的工具
  4. 吞吐量达到瓶颈后下降_如何找到 Kafka 集群的吞吐量极限?
  5. 数据库学习笔记6--MySQL多表查询之外键、表连接、子查询、索引
  6. ACM公选课第五节贪心4.14-5.4补+第六节上贪心线段覆盖
  7. python 实现HMAC_SHA1算法
  8. android 事务管理软件,安卓 Android基于安卓移动终端的个人事务管理系统
  9. LeetCode : Number of Segments in a String
  10. 《Thinking in Java》Ten 内部类
  11. 电脑投屏电视怎么设置_教程 | 小米VR一体机投屏到电视/电脑/手机
  12. 初学者浅谈oracle中的一些sql
  13. ubuntuv20启动界面美化_光影魔术手---用‘傻瓜软件’美化图像
  14. leancloud上传图片js_leanCloud上传多个图片保存到一个数组中的疑惑
  15. 天朝理工学院SQL脚本
  16. 完美解决onenote同步速度慢(修改hosts文件)以及如何取得文件修改权限
  17. [基本功]分类模型评价标准
  18. matlab自带的音乐,MATLAB乐器(如何用matlab演奏音乐)
  19. Push rejected Push to origin/master was rejected
  20. Django admin后台美化(极其简单)

热门文章

  1. 关于ant的使用和入门知识
  2. Configure VNC in RHEL 7
  3. Kotlin基础 — 扩展函数
  4. Hammer.js分析(四)——recognizer.js
  5. 【iOS开发】@property跟成员变量区别
  6. 数据挖掘10大算法(1)——PageRank
  7. MODBUS ASCII协议和RTU协议的比较 -----和利时PLC采用Modbus RTU
  8. ztree 异步展开节点显示不出来_用户管理、角色管理、模块管理、zTree的使用
  9. Javascript第二章中for循环第四课
  10. JS报错: Uncaught SyntaxError: Invalid shorthand property initializer