概述
网络上关于3A算法有若干,但是有算法的很少,有算法和文档的更少,zhuyunchuan的工程就是最后一种,谢谢他将工程开源光大,在此我在这里笔记下我的点滴思考。
--------------------------------------------------
模块的设计目标是,基于TI达芬奇平台的H3A(Hardware 3A,自动白平衡,自动曝光再加上自动聚焦)模块,研究2A算法的一系列特性,取得一种普适性比较好的模型,找出各种模型参数,并在达芬奇平台上具体实现该算法程序。
笔记:这是利用好现成的平台,寻找最优灿发,其实专业说法就是 图像调优,图像质量调节
如前所述,软件结合的实现方法既可以取得高性能的硬件加速,又可以通过软件实现新的算法,而且TI的达芬奇平台本身就包括H3A模块,不需要额外的芯片实现,所以成本上也非常具有优势。本项目就是采用软硬件结合的方法,首先通过驱动从H3A硬件模块获取中间数据,然后使用软件算法对中间数据进一步分析,获取控制参数来设置前端的颜色参数和曝光参数。实际上,本项目本身研究的算法模型是各种实现方式都可以使用的,并不局限于软硬件结合的实现方式。
笔记:据我认识的曝光算法,其实也是硬软结合,以自动曝光算法来说,硬件提供设置曝光和增益的寄存器,软件实现算法最后来设置这些寄存器。
达芬奇平台的H3A模块中对于自动曝光和自动白平衡使用的是同一个引擎,称之为AE/AWB Engine。该引擎首先将整个视频图像在水平和垂直方向上划分为多个子采样,每个子采样被称为一个窗口,然后以窗口为单位为对视频数据中的子采样的RGB颜色值进行累加,累加后的值做一个移位运算后输出中间数据(1.如何做窗口划分 2.如何做累加)。可见H3A本身的处理是比较简单的,当然此模块也有一些选项可以配置,比如输出窗口中颜色值最大或者最小的值等等,我们只使用它的基本累加结果。累加值体现了该窗口各颜色值的平均值,这些值可以作为2A算法中色温评估和曝光电平评估的依据。对色温进行准确评估后,就可以进行响应控制了:如果色温偏红,就降低红色增益,提高蓝色和绿色增益,对其他颜色同理可推,这就是自动白平衡的基本原理;如果电平偏低(这个应该是亮度电平?),就增大曝光时间和增益,反之降低曝光时间和增益,这就是自动曝光控制的基本原理。
笔记:一句话,这里谈到了核心。一个是统计,AE需要统计画面中 每个窗口中的平均亮度,AWB需要统计三个通道的亮度值。
另外就是简易说到白平衡和自动曝光的原理。(待补充)
原理虽然简单,但是整个环节中会有很多重要的细节,这些细节把握不好,得到的结果就会偏差很多或者不稳定。下面是对本项目算法的基本思想的简单描述。
对于自动白平衡算法,主要难题是准确的找到评价区域,也就是原来是白色,被环境光照射后偏色的区域,而到底是偏色还是本来就是这种颜色是无法区分的,通用的做法是找到接近白色的区域,计算其色温,校正的结果就是将改区域的平均颜色校正为白色,评价是否接近白色的标准就非常重要了。本项目参考了基于YUV空间的Nakano,Lee等人提出的根据红色和蓝色色差进行评估的方法,提出了基于HSI空间的基于饱和度的进行评估的方法,前提是先将RGB空间转换为HIS空间。这种方法规避了红色和蓝色分量之间的关系难以处理的问题,饱和度是一个单独的参数,反映了颜色的纯度,一般来说饱和度很低的区域,应该就是原来是白色的区域。这些区域因为被染色了,所以会偏色,但还不至于达到很饱和的程度。
笔记:所谓白平衡,就是各种色温环境还原白色,这里提到基于HSI空间的基于饱和度的进行评估白色的方法,待研究
对于自动曝光算法,主要难题就是处理曝光控制的稳定性和速度的矛盾。当场景变化时,比如由明转暗或者由暗转明,就要对曝光参数做调节,也维持总体的亮度水平。如果调节的过快,由于反馈的作用,可能会引起亮度的振荡,如果调节的过慢,则会由于不能很快适应新的场景而丢失场景信息。本项目要找到一种基于精确的线性化曝光模型的自适应控制方法,在避免振荡的同时,能很快达到期望的亮度水平。同时,这个模型还考虑到交流市电频率下的日光灯,荧光灯,交通红绿灯的暗场亮场问题,通过对曝光时间与市电频率进行同步,并对同步引起曝光时间出现的阶跃进行补偿,最终达到线性状态。
笔记:画面产生震荡,从能量角度上看,其实就是相邻曝光周期内接受能量不均造成的。为了避免震荡,曝光的设置就有学问,后面详细解释。
我的笔记一句话汇总:
这里的背景解释,说到了使用的硬件平台,同时概要的说明了awb/ae算法的特点和难点,后文值得期待。
最后
以上就是秀丽小霸王为你收集整理的ISP算法系统概念的全部内容,希望文章能够帮你解决ISP算法系统概念所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复