zoukankan      html  css  js  c++  java
  • Camera噪声问题

    Camera噪声问题

    Camera RGB 域的噪声

    以上部分属于sensor processing,接下来的部分属于color、luminance processing。

    gamma

    gamma是在RGB域设置一个gamma table去对应给每一个像素值增加一个适当的增益提高暗区的亮度水平。gamma的由来是由古老的显示屏来的,gamma校正基本上是为了提升暗部细节,可以理解为在数字gain增加,会显著增加暗区的噪声,针对不同平台或者设备gamma的核心理念都是一样的,只不过对于gamma LUT的数据大小有区别。

    color correction

    cc是将camera RGB 转换为 s RGB,为了获取更逼近人眼视觉的颜色。在图像处理中是通过一个3*3矩阵运算的。分别是三个通道的调整。
    R’ = m00 R + m01 G + m02 B
    G’ = m10 R + m11 G + m12 B
    B’ = m20 R + m21 G + m22 B
    其中,R’,B’,G’是要得到的调整后的值,R,G,B是当前的三通道的值。最为重要的一点是每一行的三个值加起来应当为1,否则会影响到AWB。
    这部分也会产生一些非线性噪声。

    Lens shading

    为什么会有Lens Shading这个现象呢,其实从透镜原理不难看出这是透镜的光学特性导致的中间亮,四周暗的现象。当然由于波长不同的RGB散射之后四个通道不重合,所以导致出现color shading,经过rolloff这么一处理,现象就会改善很多。简单提一下Tintless算法,会对不同的色温加以计算,tune图像的时候只需要用T光下的图像即可。

    Auto White Balance

    有两种方式去把sensor感知到的颜色还原到人眼心里感知的颜色。一种是灰世界假说,一种是白点法。简而言之,白点法就是通过G值超出某一范围的值,认为是白点,对白点进行颜色还原。灰世界是根据统计学对大量的灰点分布进行处理计算,判断当前的色温并还原。以上方法都基于色温曲线的绘制(参考点的选取)。

    Demosaic

    当经过以上处理之后,现在的图像还是在RAW域的,图像还是分成R,G,G,B四个通道,需要将其进行还原,利用插值法计算每个pixel上的其它两种颜色,具体计算方法在后面再介绍。Demosaic会对不同的颜色进行插值计算,在边缘部分会形成结构噪声。

    bayer pattern

    这个其实简单理解就是分色滤色片,为了造价成本和一系列原因,让每一个pixel只感受一种波段的光,即R,G,B中的一种。这样在后面需要还原色彩的时候就要使用的另外的模块进行插值运算。
    关于RAW图的存储和计算,为了MIPI传输方便,一般采用16 bytes传输12个pixel的信息,而每个pixel的大小是由RAW来定义的,比如RAW10就是每个pixel都占用了8 bits。
    计算RAW图大小时需要明确以上两点:pixel counts 和 pixel bits,以及传输协议以及字节对齐等。

    black level correction

    因为三极管本身特性,在光子信号量为0时,sensor本身感受到的电流并不为0,所以会形成一个暗电流。称为black level,在全黑环境下,拍摄一张图,图像上会有部分白点,这部分即为暗电流引起的噪声,在进行适当的处理之后去除。过大会使图像信息丢失,过小会造成噪声严重。

    PDPC&BPC

    在经过blc之后,会发现还是有一些特殊的‘噪点’,其实这些点就是bad pixel,bad pixel的分类也比较多,分为动态的和静态的,静态的,比如PDPC,通过拉普拉斯算子标记写入的方式进行去除,动态的需要算法去检测是否超出某一阈值而进行去除,去除掉该点的值后会通过获取相邻像素点的值对该点进行填充。
    在RAW域不能对图像进行大幅度的降噪,否则会引起信号量的丢失,对ISP的处理产生很重要的影响,而且RAW域的处理还是在时域空间,处理手法单一。

    ABF

    Adaptive bayer filter是对前面产生的噪声去除的一个模块,主要是针对于RAW域噪声的去除,ABF主要是针对于常规2D卷积使图像边缘劣化的问题在降噪的同时不钝化边缘,主要原理是两级低通滤波器,分别消除高低频噪声。ABF在VFE部分可以在线性域一定程度上降低噪声,其余的一般由CPP部分的硬件小波降噪完成。

    关于 Camera 的成像流程中的噪声

    camera成像在大的阶段上分为RAW域的成像和RGB域的成像。中间的过渡是由Demosaic模块完成的。

    广泛意义上的RAW 域的噪声

    通过查阅资料,RAW域的噪声主要分为高斯噪声和散粒噪声两种。高斯噪声是不随着光强变化的噪声,散粒噪声符合泊松分布,会随着光强的增加而逐渐的增大。在Sensor直出的RAW图中这两种类型的噪声都是包含在内的,所以直出RAW是随着光强的增大而增大的,但是值得注意的是,在这个阶段的信噪比也是增大的

    Camera 的 RAW 域噪声

    RAW图是一种格式,在就不得不提一下Camera的处理流程。
    由CSID进来的数据,会经过以下步骤的处理最终display。
    在demosaic之前的格式为RAW格式,在demosaic之后的格式为RGB格式。

    GTM,LTM

    Global tone mapping和Local Tone mapping是对动态范围有直接影响的两个模块,顾名思义,Global是全局影响,对全局的亮度加以调整,而LTM是对局部区域进行调整,使亮区不过曝,暗区亮度提升。

    up current Luma

    在后期希望将在暗环境下拍摄的图片亮度拉高,通过exposure table查表,找到对应的gain值去补偿当前的亮度值。这就会造成噪声的引入,如果当前环境亮度值本身就较高的情况下则无需补偿gain值去放大信号量,噪声就不会增加那么明显,所以在该部分把这部分噪声的引入定义为up luma。

    小波降噪

    小波分析是傅立叶分析思想方法的发展与延拓。它自产生以来,就一直与傅立叶分析密
    切相关。它的存在性证明,小波基的构造以及结果分析都依赖于傅立叶分析,二者是相辅相成的。小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换恢复检测信号。之后会对WNR进行专门的叙述。

    ASF

    ASF是CPP硬件中使用高通滤波器增强边缘,采用平滑处理来抑制非边缘区域的噪声水平。

     

    人工智能芯片与自动驾驶
  • 相关阅读:
    java堆
    本地方法栈
    java虚拟机栈
    Java 程序计数器
    面向对象 基本概念 复习
    if __name__=='__main__'
    偏函数与模块
    可变参数与关键字参数(复习材料)
    匿名函数
    闭包
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/14758217.html
Copyright © 2011-2022 走看看