ISP基本框架及算法
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
本文来自CSDN博主大熊背,
https://blog.csdn.net/lz0499/article/details/71156291
ISP(Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等,依赖于ISP才能在不同的光学条件下都能较好的还原现场细节,ISP技术在很大程度上决定了摄像机的成像质量。它可以分为独立与集成两种形式。
ISP 控制单元和基础算法库
,一部分是AE/AWB/AF 算法库
,一部分是sensor 库
。Firmware 设计的基本思想是单独提供3A 算法库,由ISP 控制单元调度基础算法库和3A 算法库,同时sensor 库分别向ISP 基础算法库和3A 算法库注册函数回调,以实现差异化的sensor 适配。ISP firmware 架构如下图所示。
1. TestPattern-测试图像
2. BLC(BlackLevel Correction)-黑电平校正
3.LSC(Lens Shade Correction)-镜头阴影校正
4.DPC(Bad Point Correction)-坏点校正
5.GB(Green Balance)-绿平衡
基于插值的方法
基于平均值的方法
6.Denoise-去除噪声
7.Demosaic-颜色插值
8.AWB(Automatic White Balance)-自动白平衡
9.CCM(Color Correction Matrix)-颜色校正
10.RGB Gamma-Gamma校正
11.RGBToYUV
12.WDR(Wide Dynamic Range)-宽动态
13.3DNR
14.Sharp-锐化
15.AF(Automatic Focus)-自动对焦
16.AE(Automatic Exposure)-自动曝光
-
当前帧的曝光量,由sensor 曝光时间、sensor 增益、ISP 增益组成。需要注意的是,sensor 的曝光时间和增益通常是非连续的,很可能与AE算法输出的目标参数并不相同,所以当前曝光参数的准确值需要通过sensor 驱动从sensor 寄存器中直接读取,而不能使用AE算法缓存的目标值。 -
增益系数,g=target/measured, 其中target 为理想画面亮度, measured 为当前画面亮度的实测值。由于sensor 的本质是一个线性元件,若暂不考虑像素饱和等非线性因素,只要在当前曝光总量的基础上乘以系数g,就可以使画面目标亮度达到理想值。因此AE 算法的核心任务就是计算正确的g参数,这个参数能够使画面得到正确的曝光。
-
调试摄像头曝光很多时候都是以行算的,也就是常说的曝光行。当然算曝光时间是曝光行*每行的时间 -
一般曝光时间不超过vts,vts就是一帧花的总时间(包含每帧的无效信号)。因此,我们在计算当前帧最大曝光时间的时候,一般会根据VTS计算得出 -
除了曝光能增加亮度之外,gain也能增加亮度,gian也分为模拟gain和数字gain以及ISPgain -
曝光时间引入的噪声最小,数字增益引入的噪声最大 根据上面所说,假如在比较暗的情况下,为了减少噪声,势必先增加曝光时间。因为增加曝光时间引入的噪声最小,可以会略不计。但是当曝光时间超过当前vts时候,曝光时间超过一帧的时间,这样会引起帧率降低,那么这个时候可以增加gain值,模拟gain和数字gain都是有最大限制的,所有的增加gain值都是优先使用模拟gain,当模拟gain增加到最大之后,才考虑使用数字gain。
参考资料:
ISP概述、工作原理及架构
相机系统综述 —— ISP
Understanding Auto Exposure Control
3A+ISP之ISP篇
《CMOS sensor cross-talk compensation for digital cameras》
本文仅做学术分享,如有侵权,请联系删文。
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
评论