045、LSC镜头阴影校正——为什么16x16网格比32x32更实用——从网格分辨率到插值误差的权衡——LSC参数标定与温度漂移的补偿
去年秋天,我在调试一款车载前视摄像头时,遇到一个特别拧巴的现象:夜间行车,对面来车的大灯在画面边缘会拉出一条淡淡的、像水渍一样的亮带。ISP的LSC模块已经开了,网格用的是32x32,理论上精度应该足够。但那条亮带就是阴魂不散,尤其在低温启动后的前五分钟特别明显。后来我把网格改成16x16,亮带居然消失了。当时我第一反应是“这不合常理”,但拆开数据一看,问题根本不在网格密度,而在标定参数的温度漂移和插值算法的边界行为。
先说说LSC到底在干什么。镜头阴影,说白了就是边缘进光量比中心少,画面四角发暗。LSC用一组增益系数去乘每个像素,把边缘亮度拉回来。这组系数不是逐像素存的,而是存在一个稀疏网格上,比如8x8、16x16、32x32,然后通过双线性插值算出每个像素的增益。网格越密,理论上对阴影曲线的拟合越精确,但代价是标定数据量变大、存储开销增加、插值计算量上升。可为什么32x32在实际中反而会出问题?这里有个关键点:网格密度不是越高越好,它取决于你标定时的采样质量和插值误差的分布特性。
我那次调试的摄像头,镜头是6P的,F1.6光圈,视场角120度。标定时用均匀光源拍灰卡,然后提取每个网格点的增益。32x32网格意味着每个网格点覆盖的像素区域更小,理论上能捕捉到更细微的亮度变化。但问题在于,标定时的光源均匀性不可能做到完美,尤其是边缘区域,光源的微小不均匀会被32x32网格放大成高频噪声。插值的时候,这些噪声会变成增益的局部抖动,反映在画面上就是那条“水渍亮带”。16x16网格反而因为采样点更稀疏,把光源不均匀性平均
订阅专栏 解锁全文

216

被折叠的 条评论
为什么被折叠?



