3A算法
3A技术即自动对焦(AF)、自动曝光(AE)和自动白平衡(AWB),3A数字成像技术利用了AF、AE、AWB算法实现图像对比度最大、改善目标拍摄物过曝光或曝光不足情况,使画面在不同光线照射下的色差得到补偿,从而呈现较高画质的图像信息。
自动对焦AF
计算当前图像的对比度,然后调整焦距,最终使得图像的对比度最大。这里对合适的焦距可以采用 爬山法 搜索。因为一开始你并不知道当前焦距下成像是最清晰的,那么爬山法的原理和梯度下降有点类似。搜索当前点领域空间的点,选其中反馈最大的位置作为下一步迭代的点。即不断往上“怕山”,直到遇到局部最优值,即领域的值都比它差。
那么自动对焦算法中有两个关键步骤
- 图像清晰度评价指标:图像熵,灰度方差,拉普拉斯梯度和,变分损失等
- 搜索算法: 上述的爬山法的 优点是 避免了全局搜索,效率高。 但是会陷入局部最优,一个替代的方法是 模拟退火法。他的思路是当找到局部最优值后,以一定的概率接受往周围稍差的值前进,即以一定概率接受走下坡路,但是这个概率是越来越低的,直至收敛。因此这样就可能跳出局部最优值,而搜索到更好的结果。
自动曝光AE
一般的自动曝光算法通过获取图像的亮度调节相应的曝光参数,得到合适的曝光量。曝光参数包括光圈大小, 快门速度和摄像头传感器的亮度增益。
获取图像亮度,可采用的方法有:
- 平均亮度
- 分区域加权平均,可以将关注区域集中在屏幕某个具体位置 或者具体对象
- 直方图信息等
- 设置不同的亮度文献,对背光、正光和强光进行区分
调整参数的主要方法:
- 查表法:系统内部可能预先存储了一张曝光参数的调整步长与图像亮度之间的关系查找表,根据当前的亮度去获取调整值,使得图像亮度接近期望值。
- 迭代法:
- 数值计算法
自动白平衡AWB
白平衡,这是和光源的色温息息相关的概念。例如 早期的灯泡,都是光色的暖光源,在暖光源下成像的整体颜色就偏黄,白炽灯是冷色光源,成像效果就偏蓝。为了使得成像效果不受光源色温影响,尽可能还原出场景的本身颜色,就有了自动白平衡算法。
常用的白平衡算法有以下两种:
- 选白点算法:所谓白点就是图像中原本应该是白色的点。白点算法就是首先找到图像中 可能的 “白色的点”,然后将白色点矫正会去RGB={255,255,255},以此为标准,就能知道变换矩阵将其他颜色的像素点都还原回去。这里的 可能的白点 是选的图像中 RGB 值和最大的点,这个最大的也是一个阈值。
- 灰度世界假设:类似上面的白点算法。灰度世界原理是,对于一个丰富的场景的图,它全图 R G B 三通道的均值应该接近,基于此就可以算出各个通道的变换倍数。
- 色温估计:这个算法原理是,预先在不同的光源下,记录一个合适的校准值保存。在测试的时候,先根据图像估算色温,然后去查表找到当前色温的校准值。至于如何估计色温,可以将图像分块,然后针对每个块做一个白点的计算,得到色温估算。
ISP
ISP 图像信号处理器,用于处理图像传感器的原始数据。它首先是一个处理器,然后由运行在其上的软件来控制整个ISP流程。软件结构按照层级可以划分为如下三层,分别为 顶层的 ISP控制逻辑, 3A算法库,传感器控制库 和 基础ISP算法。如下图所示。
- SENSOR 3A:我理解为控制相机硬件的库,例如控制相机的快门,光圈大小等,因此它服务于 3A库,3A算法需要根据当前图像的统计信息反馈来调整这些硬件参数。
- SENSOR ISP:其他的一些算法库,例如 黑电平矫正,黑点矫正等算法
- 3A LIB:就是上面介绍的3A算法
- ISP CTRL:整个 ISP 的控制逻辑,从传感器读取数据,然后通过回调函数调用底层的ISP算法,完成整个ISP的流程,然后输出图像,同时还负责处理外部用户通过IIC / SPI 等输入的控制指令。
常规的步骤可以 以 3A 算法作为依据划分为算个阶段。因为其实 白平衡 亮度 和 焦距 他们存在依赖关系。因此需要有序调整。从上图可以大致看出,先自动调整白平衡,然后自动调整曝光,最后自动对焦
黑电平矫正
由于传感器存在漏电流,当全黑时成的像由于漏电流的存在而不是全黑的,减去偏移值即可
镜头阴影矫正
或者叫非均匀矫正,镜头中央进光比较均匀,四周少,表现就是纯色场景 四周有暗角。这也是相机的固有缺陷,可以实现矫正
坏点矫正
相机传感器难免有一些成像单元损坏,会导致最后的图像有一些坏点。找坏点,做中值滤波即可
颜色插值
相机的成像元件是按照 拜尔排列,和屏幕的显示彩色图像一样,他是红绿蓝三个颜色滤镜分别采集RGB信号,因此输出的图像也就是 RawRGB格式,那么就需要对R G B 三通道都进行颜色插值,
去噪
对图像传统的去噪方法 ….
颜色矫正
- RGB: 是一种均匀性较差的颜色空间,人眼对于三个颜色分量的敏感程度是不一样的,如果颜色的相似性直接用欧氏距离来度量,其结果与人眼视觉会有较大的偏差。在RGB颜色系统中,三个颜色分量之间是高度相关的,即只要亮度改变,三个分量都会相应的改变,如果一个颜色的某一个分量发生了一定程度的改变,那么这颜色很可能也要发生改变。
- HSI:用色调(Hue)、饱和度(Saturation或Chroma)和亮度(Intensity或Brightness)来描述颜色。 I 分量与颜色信息无关,H和S分量与人感受彩色的方式相似,彩色图像中的每一个均匀性彩色区域都对应一个相一致的色度和饱和度,色度和饱和度能够被用来进行独立于亮度的彩色区域分割。
- YUV:Y就是常说的灰度
gamma矫正
人眼对亮度的敏感度不是线性变化的,在低照度下 人眼对亮度变化敏感,在高亮度下人眼对亮度变化没那么敏感,因此使用gamma矫正对输入图像的灰度做一个非线性操作,拉伸低亮度的值,压缩高亮度的像素值
色彩空间转换
了解一下常用的色彩空间和运用