046、Camera模组标定全流程:AWB标定、LSC标定、坏点标定与产线一致性控制

📅 2026/7/15 15:10:43
046、Camera模组标定全流程:AWB标定、LSC标定、坏点标定与产线一致性控制
046、Camera模组标定全流程AWB标定、LSC标定、坏点标定与产线一致性控制去年在产线蹲了一周盯着那条标定线一台模组在AWB标定箱里死活过不了——R/G比跑到1.2B/G比0.9标准线是1.0±0.05。产线组长急得跳脚说前面两千台都好好的就这一批出幺蛾子。我拿万用表量了色温箱的色温D65标称6500K实测只有5800K。灯管老化了。这事让我意识到标定流程里最坑人的往往不是算法本身而是你以为“标准”的东西其实早就不标准了。一、AWB标定别让色温箱骗了你AWB标定的核心就一句话让相机在不同光源下知道“白色长什么样”。但这句话背后全是坑。标定环境搭建色温箱必须定期校准别信厂家说的“一年一校”。我见过最离谱的案例色温箱用了三年没校D65实际漂到7200K结果标出来的AWB增益在户外晴天偏红得一塌糊涂。建议每季度用分光辐射计测一次记录色温偏差曲线产线换灯管后必须重新标。标定板选择别用普通白纸那东西有荧光增白剂在紫外灯下会发蓝。用X-Rite的灰卡或者DNP的标定板反射率要均匀光谱曲线要平。我踩过坑——用某宝买的“专业灰卡”结果在A光源下反射率曲线有个诡异的凸起标出来的AWB在室内钨丝灯下永远偏绿。标定流程标准做法是拍24色卡但实际产线只拍灰阶卡就够了。关键点每个色温点至少拍5帧取平均避免光源闪烁干扰曝光要控制在中间灰过曝或欠曝都会让白平衡计算跑偏记录sensor的原始R/G/B通道响应别用ISP处理后的数据否则标的是ISP的“口味”而不是sensor的真实特性算法实现别用简单的“灰世界假设”那东西在纯色场景下会崩。用色温估计增益映射表更靠谱。我习惯的做法在D65、A、TL84、H、U30五个标准光源下标定每个光源下计算R/G和B/G的比值形成色温-增益曲线实际运行时用插值但注意色温区间边界要做平滑过渡否则在光源切换时画面会跳变踩坑记录有一次标出来的AWB在户外阴天偏紫查了两天才发现是标定箱的玻璃窗有UV涂层把紫外光滤掉了。而户外阴天紫外光强sensor的B通道响应偏高但标定时没这个分量导致增益计算错误。后来所有标定箱都换了石英玻璃。二、LSC标定镜头阴影的“整形手术”LSCLens Shading Correction标定说白了就是给镜头的光学衰减做补偿。但这里有个悖论你补偿得越狠边缘信噪比越差。标定板选择用均匀光源乳白玻璃板或者直接用积分球。别用白墙那东西反射率不均匀你以为是镜头阴影其实是墙上有污渍。我见过产线用白墙标LSC结果标出来的增益图在左上角有个暗斑后来发现是墙上有块口香糖印。标定流程光源要均匀不均匀度1%用照度计测9点确认拍raw图取中间区域避开边缘坏点做参考计算每个像素的增益gain(x,y) ref_value / pixel_value增益要限幅最大增益别超过4倍否则边缘噪声会放大到不可接受增益平滑别直接用像素级增益那东西会有噪声。用多项式拟合或者网格插值我习惯用5x5网格每个网格内用双线性插值。注意网格边界要连续否则画面会出现“格子纹”。有一次我偷懒用了3x3网格结果在天空渐变区域看到明显的方块被测试部骂了一周。产线一致性同一批镜头LSC曲线应该差不多。如果发现某台模组的LSC增益异常先查镜头装配——是不是镜头装歪了是不是镜片有划痕别急着改算法先查硬件。我定了个规矩LSC标定数据超出批次均值±10%的模组直接打回重装。踩坑记录有一次LSC标定后画面边缘偏红。查了三天发现是sensor的微透镜阵列和镜头的光轴没对准导致边缘的R/B通道响应不一致。后来在标定流程里加了“光轴对准检查”步骤用点光源拍十字线看中心偏移量。三、坏点标定别把好点当坏点坏点标定看起来简单但误判率控制不好产线会疯。标定环境全黑环境曝光时间设到最长比如2秒增益开到最大拍多帧至少10帧取中值避免随机噪声干扰阈值设定像素值超过暗电流均值5倍标准差判为坏点坏点分类死点永远不响应像素值接近0亮点暗场下像素值异常高通常是热噪声闪烁点时好时坏这种最坑人产线策略别用固定阈值不同模组的暗电流不一样。我用的方法是先拍暗场计算全图均值用均值3倍标准差做初筛对初筛出的候选点再拍一帧确认连续两帧都异常的才标为坏点坏点修复别简单用相邻像素平均那会在边缘产生锯齿。用中值滤波或者方向插值更好。我习惯的做法如果是孤立坏点用周围8邻域的中值如果是坏点簇连续3个以上用更大范围的插值或者直接标记为“不可用区域”踩坑记录有一次产线反馈坏点率飙升到5%查了发现是暗场拍摄时没关红外滤光片红外光漏进来导致大量“假亮点”。后来在标定流程里加了“滤光片状态检查”步骤。四、产线一致性控制别让标定成为瓶颈产线标定最怕两件事标定时间长、标定结果不稳定。标定时间优化AWB标定5个色温点每个点拍3帧总时间控制在30秒内LSC标定拍1帧raw图计算增益图总时间控制在10秒内坏点标定暗场亮场各拍1帧总时间控制在5秒内总标定时间控制在1分钟内否则产线节拍跟不上一致性控制每台模组标定后记录关键参数AWB增益、LSC曲线、坏点数量建立批次数据库实时监控参数分布如果某台模组的参数偏离批次均值超过3个标准差自动报警定期每周用标准模组复标检查标定设备是否漂移设备维护色温箱每月用分光辐射计校准一次积分球每季度清洁一次检查光源均匀性标定板每半年更换一次避免老化踩坑记录有一次产线突然批量标定失败查了发现是积分球的光源驱动板坏了导致光源闪烁。后来在标定流程里加了“光源稳定性检测”步骤标定前先拍一帧检查像素值的标准差如果超过阈值就报警。五、个人经验性建议标定不是一次性的。模组出厂后随着温度变化、镜头老化标定参数会漂。建议在ISP里加一个“在线校准”功能让用户在使用过程中自动微调。别迷信“标准光源”。产线的D65灯管和实验室的D65灯管光谱曲线可能差很多。有条件的话用分光辐射计实测光源光谱而不是只看色温值。坏点标定要留余量。sensor的热噪声会随温度升高而增大建议在标定时把阈值设得比常温下严格20%这样在高温环境下才不会出现大量新坏点。LSC标定要考虑模组组装公差。同一批镜头因为装配位置偏差LSC曲线会有差异。建议在标定前先做“光轴对准”或者用多点标定来补偿装配误差。产线标定数据要追溯。每台模组的标定数据要保存到云端一旦出现客诉可以快速回查是标定问题还是使用环境问题。最后一条也是最重要的标定设备比标定算法更容易出问题。产线标定出问题80%是设备没校准20%是算法有bug。所以先查设备再查代码。