1. 图像传感器与信号处理:为什么说光学系统是成像链路的第一道“生死线”
做图像系统这些年,我最深的体会是:一张好图的诞生,60%在光学、20%在传感器、剩下20%在信号处理。很多人一上来就钻研算法、调ISP参数,结果图像问题层出不穷——边缘发虚、色彩怪异、暗部噪点爆炸,最后排查到镜头上才发现,问题根源早在光线进入镜头那一刻就埋下了。
这篇内容,我就以“图像传感器与信号处理——光学系统”为主线,从头到尾拆一遍完整成像链路:镜头如何聚光、传感器如何光电转换、信号处理如何把RAW数据变成一张能看的图。适合刚入门的嵌入式工程师、做视觉检测的项目开发者、以及所有需要选型传感器和镜头的人参考。我会把关键参数、计算方式、避坑经验都讲清楚,尽量做到你拿着这篇文章就能搭建自己的成像系统评估框架。
在具体展开之前,先建立全局观。一个完整的成像系统可以粗暴地拆成三段:
- 光学系统:镜头、光圈、滤镜、机械结构,负责把物理世界的光线正确投影到传感器表面。
- 图像传感器:感光元件(像素阵列)将光子转换为电荷,经ADC输出数字RAW数据。
- 信号处理链路:从RAW数据到最终图像,涵盖黑电平校正、去马赛克、白平衡、降噪、色彩校正、锐化、编码等。
三段之间强耦合。镜头分辨率不够,传感器再强也拍不出细节;传感器噪声大,信号处理再怎么降噪也会损失真实信息;信号处理的参数设定错误,甚至会放大光学系统的缺陷。这三者必须放在一个系统里通盘考虑。
2. 光学系统设计:图像质量的第一道闸门
2.1 镜头核心参数:焦距、光圈、视场角与景深的关系
镜头本质是一个光学投影系统,它的任务是在传感器靶面上形成清晰、亮度均匀的实像。四个参数决定了大局:焦距、光圈、视场角、景深。
焦距直接决定视场角。对固定靶面尺寸的传感器,焦距越短,视场角越大。这里有个简单的换算公式:
FOV(水平视场角) = 2 × arctan(传感器水平尺寸 / (2 × 焦距))举个例子:某传感器水平靶面尺寸6.4mm,配8mm镜头,水平视场角 = 2 × arctan(6.4 / 16) ≈ 43.6°。如果换成16mm镜头,视场角就缩小到约22.6°,相当于画面拉近了。
光圈(F数)决定了进光量和景深。F数 = 镜头焦距 / 入瞳直径。F数越小,光圈开口越大,进光越多,但景深越浅。工业视觉检测场景里,我一般建议光圈不要全开,通常收两档,在景深和进光量之间找平衡。
景深跟光圈、物距、焦距都有关系。公式比较复杂,工程上可以直接记结论:焦距越长、光圈越大、拍摄距离越近,景深越浅;反之景深越深。做视觉定位时,产品来料高度有公差范围,景深不够就会出现边缘清晰但中心发虚,或者反过来,这种问题非常头疼。
传感器的靶面尺寸与镜头像面必须匹配,这是选型时最容易踩的坑。镜头成像圈有固定直径,如果像面尺寸小于传感器靶面,画面四角就会出现暗角;如果像面尺寸远超靶面,则浪费镜头的解析能力。标准做法是:镜头的靶面规格必须“大于等于”传感器的靶面规格。
2.2 分辨率匹配与MTF:别让镜头浪费了传感器
镜头不是随便买一个装上就能用的,它需要与传感器的分辨率匹配。一遇到“画面不清晰”就怀疑传感器或算法,这是新手常犯的错误——很多时候是镜头分辨率不够,喂不饱传感器。
镜头分辨率常用MTF(调制传递函数)曲线来评价,简单理解就是镜头对不同空间频率(细节密集程度)的对比度保持能力。MTF值越接近1,细节保持越好。一条实用的经验法则:镜头的极限分辨率应为传感器像素密度的1.5到2倍以上,也就是“过剩”但不过度。
有一个粗略的匹配公式:
镜头所需分辨率(lp/mm)≈ 传感器行像素数 / (2 × 传感器水平宽度mm) × Nyquist系数比如一个800万像素传感器(3840×2160,1/2.7",水平宽度约5.6mm),其奈奎斯特空间频率约为3840 / (2 × 5.6) ≈ 343 lp/mm。这就要求镜头MTF在343 lp/mm处仍有足够响应,普通CCTV镜头(一般200lp/mm以下就明显衰减)根本喂不饱。这种情况下,哪怕传感器再好,图像也有涂抹感。
实际项目里,我见过不少“高像素传感器+低端镜头”的组合,画面表现甚至不如老式低像素相机,本质瓶颈就在光学上。如果想发挥传感器的全部潜力,镜头上的钱不能省。
2.3 光学像差与杂散光:这些“看不见的杀手”如何影响图像质量
光学像差是镜头设计中的核心难题,任何镜头都无法完全消除像差,只能做平衡设计。项目中最常碰到的几类:
- 球差:光线经过透镜边缘与中心时焦点不一致,导致整个画面柔和发雾,表现为“锐度不够”。
- 色差:不同波长的光折射率不同,红蓝边缘不重合,高对比度边缘出现紫边或蓝边。
- 畸变:直线成像后变弯曲,桶形畸变(广角常见)和枕形畸变(长焦常见)。测量类项目对畸变极其敏感,必须做畸变标定补偿。
- 场曲:像面不是平面而是曲面,导致画面中心和边缘无法同时清晰。
- 彗差:轴外物点成像呈彗星状拖尾。
还有一类问题不一定算像差,但工程上同样致命:杂散光和内部反射。光线在镜筒内壁、镜片边缘多次反射后形成鬼影或光晕,在高亮光源场景下尤其明显。解决思路包括镜片镀膜(增透膜)、镜筒内部消光纹、遮光罩。
讨论镜头镀膜:镀膜的原理是利用光的干涉,使反射光相消,从而增加透过率。单层增透膜的剩余反射率大约1%~2%,多层镀膜可以降到0.3%以下。镀膜质量直接决定了逆光拍摄时画面中的光斑和雾化程度。
一个重要心得:选镜头时,不要只看MTF曲线峰值,也要看全视场的表现。边缘和中心差距过大的镜头,做大幅面拼接或高精度定位项目时会非常痛苦。
3. 图像传感器选型:从光子到电子的关键转换
3.1 CCD与CMOS:谁才是当前成像系统的绝对主流
图像传感器是成像链路的“光电转换器”,负责把光学系统投影过来的光信号转换成电信号。当前主流是CMOS,CCD则基本退居特种应用。
这里讲讲两者最底层的区别。CCD的特点是所有像素的电荷在像素阵列中逐行转移,最后统一在输出端放大和模数转换,优点是输出一致性非常好、噪声低;缺点是转移路径长导致帧率低、功耗高、系统复杂。
CMOS传感器每个像素自带放大器和读出电路,可以并行读取,速度快、功耗低、集成度高,可以把ADC、时序控制、甚至部分ISP集成在同一颗芯片上。早期CMOS的固定模式噪声和暗电流问题很严重,但近十年来制程工艺进步之后,CMOS在噪声和动态范围上的差距基本已被拉平。
我的建议:除非有超高动态范围或特殊科学级低噪声需求,否则直接选CMOS。现在国产工业CMOS芯片进步也很快,成本降低了不少。
3.2 核心光电参数:量子效率、满阱容量、暗电流与动态范围
传感器选型要看几个硬参数,不能只看像素数。
量子效率(QE)是传感器把光子转化成电子的效率,不同波长的QE不一样。典型可见光CMOS的峰值QE在50%~80%之间,峰值通常在550nm左右(绿光区域)。如果你的应用偏红外或紫外照明,就需要选对应波段QE更高的传感器,否则量子效率太低,成像亮度不足。
满阱容量(Full Well Capacity)代表单个像素能容纳的最大电子数,单位是e-。它直接决定动态范围上限。一个满阱为10000e-的像素,如果读出噪声是5e-,理想动态范围约为20 × log10(10000/5) ≈ 66dB。想要大动态范围的场景(如白天逆光下的交通监控),就得选满阱大、噪声低的传感器。
暗电流是像素在无光照条件下,因为热激发产生的电子噪声,表现为长时间曝光的暗部发红或发亮。暗电流与温度高度相关,大约每升高7~10°C就翻一倍。工业相机带制冷(甚至半导体制冷)就是为了压暗电流,长曝光应用(比如天文摄影、荧光成像)必须考虑制冷方案。
像素尺寸同样值得关注。在相同靶面下,像素越大,单个像素受光面积越大,灵敏度越高,满阱也越大,但分辨率就下来了。1/2.7”靶面上做800万像素(像元约1.0微米)和做200万像素(像元约2.2微米)对弱光场景的表现差异是肉眼可辨的。做工业视觉时,不要盲目追求高像素,要看实际物距和检测精度需求。
3.3 卷帘快门与全局快门:运动场景选错的代价
如果拍摄对象是运动的,或者相机本身在运动,快门类型就至关重要。
卷帘快门(Rolling Shutter)是逐行曝光、逐行读出的,运动物体会出现“果冻效应”——垂直物体倾斜、快速旋转的物体的画面扭曲。全局快门(Global Shutter)则是所有像素同时曝光,帧内不存在时间差。在高速运动检测、飞拍定位、传送带扫码等场景,必须用全局快门。
单从价格看,全局快门CMOS比卷帘快门贵不少,而且低照度性能可能差一些。那能不能用卷帘快门配合补光来解决?如果运动速度不高(比如静态检测),卷帘快门完全够用;如果运动速度超过一定水平,补光也救不了果冻效应——那是时间维度上的错位,与亮度无关。
4. 信号处理链路:RAW数据如何变成一张“能看”的图
4.1 一个典型的ISP流水线架构
传感器输出的RAW数据只是每个像素一个数值,远不能直接当图像用。原因很简单:RAW数据是拜耳阵列马赛克图案,每个像素只有一种颜色(R/G/B之一);数值存在暗电流偏移;不同颜色通道灵敏度不同;传感器响应曲线与显示设备不匹配。
一条典型的ISP流水线环节包括:
- 黑电平校正:减去传感器在无光条件下的基础输出。
- 坏点校正:修补阵列上个别失效像素。
- 去马赛克(Demosaic):从拜耳阵列插值出每个像素的RGB。
- 白平衡:校正不同色温光照下的色偏。
- 色彩校正矩阵(CCM):修正传感器响应与人眼感知的差异。
- Gamma校正 / 色调映射:将线性光信号映射到显示设备的非线性响应。
- 降噪:包括空域降噪、时域降噪。
- 锐化:增强边缘视觉清晰度,同时要小心引入振铃。
- 自动曝光(AE)/ 自动对焦(AF)/ 自动白平衡(AWB)相关统计与控制。
4.2 去马赛克与彩色伪影:最容易被忽视但影响主观画质的环节
这里重点讲去马赛克,因为这是色彩细节损失最严重的一环,也是出现彩色伪影的高发区。
拜耳阵列的常见排列是RGGB(每个2×2单元里有1个R、2个G、1个B),每个像素位置只有一种颜色采样,另外两个颜色通道需要从邻近像素插值得到。最简单的双线性插值算法速度快但边缘处会出现拉链效应和伪色;现代算法基本都引入了边缘方向检测和色差平滑约束。
工程上,去马赛克的挑战在于高分辨率纹理和彩色边缘处容易产生“紫边”或“彩噪”。这类伪影在信号处理层面很难完全消除,更好的办法是从光学上减少色差(多层镀膜、低色散镜片)。
白平衡算法值得单独提一句。不同色温下(比如日光约5500K,白炽灯约2800K)RGB比例差异巨大。自动白平衡本质就是估计场景中的平均色调。常用的灰世界假设(认为场景平均反射是中性灰)在纯色背景下很容易失效。工业视觉里我建议固定色温,不要用自动白平衡,否则来料颜色一变,整个色彩判断就乱套。
4.3 降噪与锐化的平衡:降噪毁细节,锐化增噪点,怎么取舍
降噪和锐化是一对矛盾。降噪会抹掉细节,锐化会放大噪声。这里分享几条实操经验:
- 先降噪后锐化的顺序基本是固定的,但降噪强度要分级。平缓区域(低频)可以重降噪,纹理区域(高频)只能轻降噪甚至不降噪。现代空域降噪算法(如引导滤波、双边滤波)就是在这个思路下设计的。
- 时域降噪(多帧降噪)在视频中效果远好于空域降噪,因为真实细节在帧间是稳定的,而随机噪声每帧都在变化。代价是有拖影,运动场景需要配合物体运动估计做运动补偿。
- 锐化使用非锐化掩模(Unsharp Mask)时,注意半径和强度的配合。半径过大出现光晕,强度过大会在边缘产生黑白过冲。我的经验值:半径1~2像素,强度系数在0.5左右起步,逐步微调。
这些参数严重依赖场景。同一套降噪参数在暗光下效果好,拿到强光场景锐度就不够了。因此ISP调校需要针对多个典型场景做参数组管理,而不是固定一套打天下。
5. 从曝光到信噪比:镜头、传感器、信号处理之间的纠缠关系
5.1 曝光三角与信噪比的系统级计算
单看任何一个环节都是片面的。曝光由光圈(F数)、快门时间和增益共同决定,而这三个参数直接牵动传感器输出信噪比和图像噪声表现。
信噪比的推算思路如下:
- 光信号S = 光源照度 × 镜头透过率 × 像素面积 × 曝光时间(等效为光生电子数)。
- 总的噪声包括光子散粒噪声(√S)、暗电流散粒噪声、读出噪声和固定模式噪声。
- 信噪比SNR = 20 × log10(S / 总噪声)(dB)。
举个例子:某像素满阱为10000e-,平均入射光生电子5000e-,散粒噪声√5000 ≈ 70.7e-,读出噪声为5e-,暗电流噪声忽略不计。总噪声 = √(70.7² + 5²) ≈ 70.9e-,SNR ≈ 20 × log10(5000 / 70.9) ≈ 36.9dB。如果把入射光降到500e-,散粒噪声约22.4e-,SNR ≈ 26.8dB。可以看出,光照每降一个数量级,信噪比掉约10dB——暗光环境下的图像变差不是错觉,这是物理规律。
在实际项目中,如果确定场景需要高信噪比,优先加光,其次增大曝光时间,最后才动增益。因为增益本质是把信号连同噪声一起放大。只有提高光通量才是真的有利于信噪比的。
5.2 系统级权衡:分辨率、帧率、带宽、功耗、成本
这是做嵌入式视觉系统无法回避的问题,也是很多技术人的通病:单看某个指标觉得“越高越好”,实际上一旦组合起来,瓶颈立刻出现。
举个例子:一个4K、60fps的RAW图像传感器,10bit位深,所需数据率 = 3840 × 2160 × 60 × 10 ≈ 4.98Gbps。这还没算传输协议开销。如果你的主控平台只支持千兆网口(1Gbps),那么这个组合在物理上就不成立。要么降帧率、要么裁剪ROI区域、要么压缩(如用MIPI直连SoC或ISP硬件)、要么换平台。这个权衡必须在需求分析阶段就拉清楚,而不是等画板完毕了再发现带不动。
工业视觉的检测性能评估也要注意镜头的视场和分辨率配合。以某产品表面瑕疵检测为例,要求分辨率0.02mm,传感器垂直像素2160,视场高度只有2160 × 0.02 = 43.2mm。想做更大的视场,选项只有两个:一换更高分辨率相机,二换更高像素密度的传感器(靶面不变,像素更小)。但小心,像素变小意味着满阱变小,弱光性能下降,又可能得加镜头和补光设备。
5.3 光学接口与机械适配:法兰距、C/CS接口、镜头卡口
很多人容易忽略机械接口问题,直到最后组装时才发现镜头装不上或者焦点不对。
C接口和CS接口的区别在于法兰距不同:C接口法兰距17.526mm,CS接口为12.526mm。C接口镜头装到CS接口相机上,通常需要一个5mm转接环。如果装反了(CS镜头装C接口相机),要么拧不上,要么拧上后无限远无法合焦——因为镜头装得太靠近传感器,成像落在焦面后面了。
法兰距之外还要关注镜头的像面尺寸和机械直径是否会遮挡光路。部分大靶面传感器配合小口径镜头时,即使标称兼容,实际边缘也可能因为机械遮光不一致而出现暗角。最稳妥的方案是做一根简支安装测试:装上镜头,拍均匀白板,看四角亮度是否均匀,再做定论。
6. 实操记录:搭建一套低成本成像系统的完整配置
6.1 需求定义与元器件的选型清单
抽象的理论说完了,下面说一个真实做过的项目示例,用这套流程从头到尾走一遍。需求是某实验室要搭建一套PCB焊点缺陷检测的视觉拍摄装置,检测精度要求0.05mm,视野45mm×30mm,静止拍摄,光照可控。
先算传感器与镜头:
- 精度0.05mm对应至少2像素过采样,即物理分辨率约0.025mm/像素。
- 视场高度30mm,对应2160像素的话,像素物理尺寸 = 30 / 2160 ≈ 0.0139mm,好于要求。
- 传感器选1/2.7”CMOS,800万像素,像素大小约1.0μm(这一档的传感器供货和成本都比较好控制)。因为物理视场是30mm高,放大倍率 = 传感器高度 / 视场高度 ≈ 5.6mm / 30mm ≈ 0.187。
- 物距大约200mm时,镜头焦距 = 物距 × 放大倍率 / (1 + 放大倍率) ≈ 200 × 0.187 / 1.187 ≈ 31.5mm。市场上没有标准的31.5mm镜头,选35mm或25mm更现实。用35mm时工作距离需要拉远,用25mm时视场会略大一点,最后根据柜体空间择定35mm。
- 光圈:物距200mm下景深计算较复杂,实测结果是F4~F5.6之间整幅画面都比较锐利,F8开始衍射影响分辨率,所以选定F4。
这是整条链路中最关键的一次计算。你想复现这套系统,不需要完全套用数值,但必须理解推导顺序:精度 → 分辨率 → 传感器选择 → 放大倍率 → 焦距 → 景深验证。这样能确保镜头选得出来、装配也合格。
6.2 从镜头到传感器的装配与标定流程记录
实际装配过程要比想象的琐碎得多。转接环拧紧后要先检查法兰面与传感器靶面的平行度——如果镜头法线与传感器表面不垂直,画面一侧清晰另一侧发虚,那就是光轴偏了。我这套系统用的是C接口转接环,装好后一定要松紧度适中,过度大力可能导致法兰盘变形。
然后是标定过程。第一件事是畸变标定。虽然这套应用是视觉定性检测,但后续如果要延伸做定位,畸变参数就必须提前标定好。用棋盘格标定板,采集不同角度和位置的图像约15~20张,用标定工具计算出径向畸变系数和切向畸变系数。畸变大的镜头(尤其是广角)在这一步必须处理,否则后续测量全废。
第二件事是白平衡标定。在目标光源下拍一张白板,统计RGB三通道的增益系数并将其写入ISP参数表。这个动作听着简单,落地时经常发现一个问题:白板本身有一定的颜色倾向,不同白板标出的白平衡参数不一样,这导致色差。建议使用标准白平衡板,同时在标定前确认环境没有其他杂散光源。某次日光和白炽灯混在一起拍,白平衡折腾了一下午都不对,把窗帘拉上、关掉额外照明之后一次性解决了。
6.3 实测结果与参数调优过程
系统装好后,初始测试图像的典型问题是整体偏暗和边缘高频细节不够。偏暗的首要原因是光照不足,我一开始只用了单侧环形光源,画面亮度分均匀性差。方案是增加另一侧条形光源,并把曝光时间从8ms提到15ms。注意,曝光时间拉长后帧率从之前的120fps降到约60fps,对于静止应用没有影响,如果是产线动态检测则就得重新权衡。
边缘细节问题则让我折腾了一阵。起初怀疑镜头分辨率不够,于是我换了一个更高端的镜头对比,结果改善并不明显——说明问题另有原因。排查下来,发现是传感器安装面的平行度偏差导致轻微离焦,重装之后边缘锐度立刻恢复了。这个教训很值得分享。
最后把降噪参数配上。因为场景光照稳定、曝光时间短、增益低,噪声本来就很轻微,降噪强度不要给大(稍微给一点就行)。很多同行在这类可控光照场景下也习惯性地把降噪开很大,那是完全没必要的,反而把焊点边缘的微小裂纹细节给抹掉了。合适的原则是:噪声可接受的范围内,降噪强度越小越好。
7. 常见问题速查:成像链路问题排查清单
视觉工程师调试时遇到的绝大多数问题,都可以沿着链路逐级排查。我把这几年踩过的坑整理成表,方便按图索骥。
| 现象特征 | 可能原因 | 排查方向与对策 |
|---|---|---|
| 画面整体模糊,无清晰区域 | 焦距未对准或镜头分辨率不足 | 手动对焦到精准位置;换高分辨率镜头试拍对比 |
| 中心清晰但四角发虚 | 场曲或传感器与像面不平行 | 缩小光圈验证;检查法兰盘与转接环平行度 |
| 四角明显偏暗 | 镜头像面小于传感器靶面 | 换大像面镜头;加用匀光校正 |
| 高光边缘紫边/绿边严重 | 横向色差或去马赛克伪色残留 | 换低色散镜头;ISP里增加伪彩抑制 |
| 运动物体倾斜变形 | 卷帘快门果冻效应 | 换全局快门传感器;缩短曝光时间或调整运动速度 |
| 暗部大面积彩色噪声 | 增益过高或暗电流大 | 增加进光量降低增益;考虑制冷或短曝光多帧降噪 |
| 同一光照下画面忽亮忽暗 | 自动曝光/自动增益在波动 | 固定曝光参数,禁用AE/AGC |
| 棋盘格标定畸变系数过大 | 镜头畸变校正模型不匹配 | 增加标定图采集角度;换用畸变更小的镜头 |
| 白平衡标定后肤色/产品色仍偏 | 环境光混色或白板不标准 | 封闭环境光;使用标准白平衡板重新标定 |
| 图像边缘有黑白“咬边” | 锐化参数过大 | 降低锐化半径或增益 |
| 画面整体发雾,对比度低 | 镜头内部反射或滤光片不合适 | 加遮光罩;检查镀膜质量;确认滤光片光谱匹配 |
| 强光下出现重影光斑 | 光学鬼影/反射 | 换用消光设计更好的镜头或增加遮光 |
| 长时间曝光亮度漂移 | 传感器温升导致暗电流增加 | 制冷或限制连续曝光时长 |
这张表本质上教你的是一种思维方法,即任何图像问题都不要急着在软件里调,先想清楚它发生在什么环节。光学问题有光学问题的典型特征,传感器问题有传感器问题的规律,ISP问题又有ISP问题的表现。把特征分类清楚,往往比一味调参数快得多。
举一个我印象深刻的例子:某个图像检测项目中,画面里出现了规则的横向条纹。一开始我怀疑是电源纹波干扰,花了一天排查供电;后来又怀疑是传感器行噪声,做了一堆实验。最后发现是镜头和LED照明频率正好产生了差频——LED驱动电流的100Hz纹波被卷帘快门逐行曝光采样成了明暗条纹。换CCD全局快门传感器或者把LED驱动改成无频闪电路之后,问题就消失了。这类问题如果按单环节排查,很容易走弯路。
8. 成本与性能的平衡思路:做产品不是做科研
必须承认,做产品时追求的是“够用就好”,而不是把每个指标拉到极限。这是我做项目多年后形成的一个核心方法论:先定义指标下限,做减法,再逐步加码。
某一次,我对客户的原始需求进行了两次追问:“你最大的检测目标尺寸是多少?”“最小的缺陷是多大?”答案一出来,镜头和传感器的选型范围就锁死了大半。很多需求文档写得很宽泛,什么性能都要“尽可能高”,但实际场景根本用不到。你与其选极限传感器配合顶级镜头,不如把预算花在更稳定的结构上——因为对于工业场景,安装一致性和重复精度往往比峰值性能更有价值。
成本敏感的场景中还有一个可行替代方案:降低传感器规格,但优化光源配置。比如某一数值:传感器换成200万像素,分辨率降了,但单个像元变大,低照度性能更好。配合高显色性面光源,通过打光增强目标与背景的对比度,检测精度不降反升。光路设计在某些项目中是性能提升的最大杠杆,这个思路值得实践一次。
9. 最后分享几点个人实操体会
做成像系统的时间越久,越觉得真正拉开项目差距的不是某一颗传感器或某一支镜头,而是对整个链路的理解深度和调试方法论。
几点肺腑之言:
第一,选型之前拿不准就做“原型验证”。不要看参数表就下单,更好的做法是借一支同型号镜头装在机台上实测两天,白天、夜晚、冷启动、长时间运行各测一遍。高低温环境尤其要留意聚焦漂移,这个参数表上是看不出来的。我见过不少项目冬天调试一切正常,夏天一来画面全部发虚——镜头热胀冷缩导致像距偏移了。
第二,给自己的系统留出“调校余量”。镜头的光圈不要顶满,曝光时间不要刚卡在临界值,ISP参数不要拧到极限。任何一项指标到了极限,都会在其他维度付出隐性代价(噪点、功耗、拖影等)。留出余量的系统,长期稳定性要远好于极限调出来的参数组合。
第三,保存一份完整的标定档案。换批次传感器、换镜头、甚至换光源色温后,原始标定数据是否还能用,直接影响交付效率。我建议对每一次有效的标定保存一个快照,包含:传感器型号批次、镜头型号、光照条件、相机参数、标定板型号以及畸变和颜色系数。这样即使设备返厂维修,恢复系统也不会瞎调参数。
第四,不要忽略环境光和显色性对成像系统的影响。很多人只看照度值,却不看光谱分布。同一张白纸,在不同色温LED下的色彩表现完全不同,对光学系统和白平衡参数的判断影响很大。我个人习惯在调试时让环境光尽量可控,并用标准白平衡板做基准,不要过度依赖自动参数。
图像传感器、光学系统、信号处理,这三者的关系就像木桶的三块板:任何一块短了,其他板再高也盛不了水。把这套链路逻辑吃透,以后再遇到成像问题,你大概不需要盲目试参数,而是能从第一性原理推出来问题在哪里,再决定动手的方向。这恰恰是工程师最该练的基本功。