ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

线扫相机平场矫正实战:从原理到MVS操作与参数调优

线扫相机平场矫正实战:从原理到MVS操作与参数调优 做工业视觉这几年和线扫相机打交道是最多的。海康线扫相机在锂电、PCB、薄膜、纺织这些行业里出现频率很高很多朋友第一次用就卡在一个问题上图像亮度不均匀同一片白场下左边亮右边暗或者中间亮两边暗明明打了均匀的光采出来却是一道一道的。这时候就需要做平场矫正Flat Field CorrectionFFC了。平场矫正说白了就是给相机“校准底色”把传感器每个像元的响应差、镜头暗角、光源不均匀这三类误差一起消掉让均匀目标在图像里呈现均匀灰度。这个操作在面阵相机上你做不做都行因为面阵图像通常可以用软件后处理来补偿但在线扫相机上如果不做矫正后续的缺陷检测、条码读取、颜色判断基本都别想了阈值分割直接给你漂移算法再强也白搭。这篇文章我是按实战路子写的适合刚接触线扫相机、想过一次完整矫正流程的同行参考也适合那些已经做了矫正但效果不稳定的朋友来对比排错。我会把原理、公式、实操步骤、参数选取思路、常见坑都串起来讲保证你看完能自己动手做一次相对规范的平场矫正。1. 为什么线扫相机离不开平场矫正1.1 线扫相机的成像机制与均匀性问题线扫相机和普通面阵相机从成像逻辑上就有本质区别。面阵相机是一张一张地拍每次曝光采集一个二维矩阵线扫相机每次只曝光一行像素靠着物体匀速运动或者相机自行扫描一行一行地拼出完整图像。海康线扫相机常见的有Camera Link、GigE、CoaXPress和10GigE几种接口但不管哪种接口成像传感器都只有一“条”——宽度方向对应传感器的像元数长度方向对应扫描累积的行数。这个机制带来一个特点线扫图像的每一行都经历了完全相同的物理光路和传感器响应路径。也就是说如果某一行上某个像元响应偏弱那么拼出来的整幅图像上这一整条“竖线”都会偏暗如果光源在宽度方向上不均匀那么每一行都会带上同样的明暗梯度。这种“行间同源、列向固定”的特性决定了线扫图像的均匀性问题比面阵更显性、更固定。不均匀的来源主要有三个镜头渐晕镜片边缘对光线的透过率天然低于中心导致靠近视场两端的图像偏暗这个在短焦镜头或者大靶面镜头上尤其明显。光源不均匀线阵光源LED线光源、光纤光源等的发光面很难做到全长范围内绝对一致边缘光强衰减是很常见的。传感器像元响应差异PRNU由于制造工艺每个像元的灵敏度存在微小差异正常来说这个差异在±0.5%~1%左右但对于均匀性要求高的检测项目来说这点差异也足以干扰算法。所以你会发现平场矫正不是可选项而是线扫相机正常使用的一个前置步骤。1.2 不矫正会怎样三个典型故障现象先说一个我在现场见过很多次的场景一张A4纸大小的白色塑料片在均匀光源下用海康线扫相机拍结果灰度从左到右从120慢慢爬到220中间还夹杂着几条暗缝。有人会去调镜头、换光源折腾半天效果有限原因就是没有意识到这是系统性的“场畸变”不是某个单一硬件的故障。如果不做平场矫正最典型的三种表现是图像左右或中间亮、边缘暗主要是镜头渐晕和光源不均匀叠加出来的结果。做缺陷检测时同一块产品放在视野中间能检出放到视野边缘就误报其实就是背景灰度漂移导致阈值不统一。固定的明暗条纹或竖线某个像元响应特别低或者有灰尘遮挡在整幅图上形成固定位置的暗线。这类问题如果平场矫正做得彻底一般能把响应差异拉平但如果有坏像元或者灰尘附着矫正之后还是会有残留这点后面会详细说。同一目标在不同位置亮度不同如果产品有轻微反射差异配合不均匀的光源会导致同一色块在图像上表现出不同的灰度直接影响颜色判断或者面积测量。在做高精度测量或缺陷检测时平场矫正的精度直接决定了算法阈值的稳定空间。灰度均匀性若能做到±2%以内后续的图像处理就非常舒服如果只能做到±10%很多算法参数根本没法统一。2. 平场矫正的底层原理从公式看本质2.1 暗场、亮场、增益系数平场矫正在数学上非常直观但工程上做得好不好跟你对公式的理解深度很相关。先记住三个概念暗场、亮场、目标值。暗场Dark在完全遮光条件下采集的图像。此时镜头没有进光传感器输出的灰度并不等于0因为存在暗电流和读出噪声。海康线扫相机一般在全局曝光模式下暗场灰度值可能在几个灰度级到几十个灰度级之间和曝光时间、传感器温度成正比。温度高了暗场灰度也会变大这就是为什么长期稳定运行的设备要定期重新做矫正。亮场White在正常打光条件下放置均匀白色参考物通常是标准白板、白色陶瓷片或者漫反射白卡采集的图像。亮场图像包含了光源强度分布、镜头渐晕、传感器PRNU全部信息。理想情况下亮场的每一列灰度都应该是均匀的但实际上它会呈现出一条从左到右的曲线这条曲线的形状就是矫正要消除的量。目标值Target矫正后希望达到的灰度水平。一般取亮场灰度均值或者某个固定值比如200代表矫正后均匀目标的灰度会统一到这个水平。这三个量一组合就得到每个像元的矫正参数。2.2 矫正公式推导与参数计算先说读码器、视觉控制器场景下的常用公式。像元i的原始灰度为 \(raw_i\)矫正后的灰度为 \(c_i\)那么[ c_i \frac{raw_i - dark_i}{white_i - dark_i} \times target ]这个公式很好理解先减去暗场底噪消除暗电流和读出噪声的影响再除以亮场与暗场的差值得到每一个像元的归一化响应最后乘以目标值把灰度映射到你想要的亮度水平。实际工程中更多用增益偏置模型来表达[ c_i (raw_i - offset_i) \times gain_i ]其中(offset_i dark_i)这是偏置项(gain_i \frac{target}{white_i - dark_i})这是增益项所以每个像元只需要存两个数offset和gain。矫正时对每个输入像素做一次减法加一次乘法一气呵成。细心的朋友会发现一个问题如果某像元的 (white_i - dark_i) 非常小甚至接近于0那么增益会变得极大噪声也会被同步放大。这就是为什么亮场采集时不能让光线过暗也不要把镜头光阑缩得太小。正常建议亮场灰度控制在满量程的70%~85%之间相当于8位深度下的180~220。举个例子假设暗场值 (dark5)亮场值 (white200)目标值 (target200)那么增益 (gain 200 / (200 - 5) \approx 1.025)。如果某个像元的亮场值只有120那么 (gain 200 / (120 - 5) \approx 1.739)原始图像上偏暗的区域会在矫正后获得更强增益最终被拉回到目标灰度附近。这是单点矫正一次线性映射的做法。如果光照不均匀曲线特别复杂线性映射在低灰度和高灰度区间可能仍残留轻微差异这种情况可以考虑分段矫正即在暗场和亮场之间再取一个中间灰阶做分段线性映射。工程上90%的场景单点矫正就够了分段矫正是锦上添花。2.3 两种矫正方式相机内置与软件矫正海康线扫相机做平场矫正有两条路线一条是硬件的、一劳永逸的一条是软件的、灵活可调的。相机内置矫正在海康机器人的MVS软件或相机SDK里部分型号支持将矫正系数烧录到相机内部。相机出厂或者现场维护时通过软件采集暗场和亮场计算出系数后存入相机非易失存储区之后相机输出的图像直接就是矫正后的。这样做的优点是采集程序中不需要额外处理因为相机已经输出了均匀图像缺点则是光源变化、镜头调整、曝光时间改变之后内置系数可能失效需要重新标定。软件矫正更常见的做法是在MVS软件或者自己写的采集程序里把矫正系数保存成一份文件采集图像后在图像处理流水线中调用矫正函数。这样矫正逻辑和后处理算法融为一体换产品、换光源时只需要加载不同参数文件就行灵活性高出不少。海康VisionMaster平台里也有平场矫正模块可以直接拖进流程里用不需要自己写公式。对大多数现场应用我建议先用软件矫正跑通流程把均匀性验证到位再决定要不要把系数固化到相机里。这样调试速度快出问题时也方便回溯参数。3. 实操准备设备、环境与图像采集3.1 硬件清单与采集环境要求理论上平场矫正只需要相机、镜头、光源和一块均匀白板但真正实操起来准备工作做得越细矫正效果越好后续返工的几率越低。列一下我常用的清单海康线扫相机一台建议型号选MV-CL系列接口根据现场环境选Camera Link或GigE配套镜头注意线扫相机一般用高分辨率的线扫镜头普通面阵镜头用在边缘画质容易发虚线阵光源LED线光源、激光线光源都可以关键是光源长度要覆盖相机视野宽度标准白色参考物推荐使用白色漫反射陶瓷片或者专用白板尽量不要用普通A4纸纸质不均匀且反光特性不稳定三脚架或夹具用于固定白板保证白板平面和产品检测面在同一高度和倾角电脑上装好MVS软件海康机器人官网可下载和相机驱动环境上有一点容易被忽略矫正最好在产品实际使用的光照环境里做避免在暗室或强环境光下采集。因为环境光会叠加到亮场和暗场里如果矫正时和检测时环境光不一致矫正系数就失真了。3.2 相机参数设定曝光、行频、增益平场矫正之前先把相机的曝光时间、行频、增益等基础参数定下来而且在矫正过程和后续使用过程中保持这些参数不变这是基本原则。因为不同曝光和增益下暗电流、噪声和增益放大器的响应特性是不一样的参数变了矫正系数就失效了。参数设定建议顺序把增益Gain设为最小值或者你实际工程中要用的值。模拟增益建议不要设太大太大的增益会放大噪声同时也会放大亮场和暗场计算中的微小误差。设定合适的曝光时间。线扫相机的曝光时间跟行频是配套的一个比较直接的参考是曝光时间要保证产品在匀速运动下不拖影同时亮场灰度在200左右不要超过250也不要低于100。设定行频Line Rate。海康线扫相机在MVS里可以直接设置行频也可以通过外部编码器触发控制。行频越高曝光时间上限越低亮度就越难拉上去反过来亮度够但行频太低会限制产线速度。在矫正阶段先用一个稳定行频把流程跑通再回到产线速度重新验证一次。白平衡相关设置如果有先关闭或设成固定值。线扫相机有些带有逐通道增益调整做矫正时保持默认即可。我用海康MV-CL系列做过一次实测曝光时间设为300微秒、行频设为2000Hz、增益0dB时常见线扫光源下白板灰度能到190左右再做矫正效果比较理想。当然每个现场光源功率不同需要微调。3.3 亮场采集的关键均匀白板怎么准备很多人以为白板随便买一块白色的东西就行结果矫正出来仍然不均匀问题往往出在白板的本底不均匀或者摆放角度上。标准做法是用专业白色漫反射板或者陶瓷白板这类材料在可见光波段反射率平坦而且表面接近朗伯体不管光源从哪个角度打过来反射都比较一致。实在临时要用的话至少选表面磨砂的白色亚克力板避免使用高光洁度材料否则光源反射会形成明显的镜面亮斑。白板摆放时需要注意三点白板平面必须和产品检测面处于同一个高度、同一个倾角这样才能保证镜头对白板成像的物距和实际检测时一致。白板在视野方向上的长度要大于镜头的成像宽度至少要覆盖整个视野范围边缘如果有一截是空的矫正时那一列就会计算出错误的系数。白板表面不能有灰尘、指纹、划痕采集前可以用无尘布擦拭。有时候一道划痕在矫正后就会形成一条固定的暗线很难排查。另外亮场采集时会有一个小技巧如果光线本身有明显波动比如LED光源没加恒流驱动建议采集多帧做平均用平均后的图像来计算矫正系数。MVS软件里有平均采集功能或者你自己写代码时连续采集几十行求均值效果会稳很多。4. 手把手实操海康MVS软件平场矫正流程4.1 第一步采集暗场图像打开MVS软件连接相机后第一步是采集暗场。具体操作是把镜头盖完全盖住镜头确保没有任何光线进入传感器。有些线扫相机使用外触发模式这时候需要切换成连续采集模式或者固定触发源先把图像采集出来。如果你是在产线上调试不方便盖镜头盖可以用一块完全不透光的黑布把镜头包住关键是保证不漏光。在MVS的图像窗口里设置好曝光和增益后点单帧采集观察暗场灰度值分布。理想情况是灰度值很小比如8位深度下在0~20之间而且全视野分布均匀。如果某一列环境光漏进去那一列的暗场值会明显偏高后面矫正会出现一条亮线这时候要先解决漏光问题再继续。暗场值过高通常有两个原因一是曝光时间过长导致暗电流积累二是传感器温度过高。如果暗场值到了50以上我建议先降低曝光或者加强散热而不是硬着头皮做矫正。因为暗电流噪声是随时间漂移的矫正时减掉一个固定值并不能完全消除它的影响。为了减少随机噪声更好的做法是连续采集64帧或者128帧取平均作为暗场图像。MVS里可以把图像保存成bmp或者raw文件我在脚本里一般会保存为raw格式便于后续用Python做系数计算。4.2 第二步采集亮场图像暗场采集完成后拿掉镜头盖把白色参考板放到检测位置保持正常打光然后采集亮场。这一步有几个决定性细节光源从点亮到稳定输出需要预热时间尤其是LED光源刚上电时的光强和前几分钟差别不小。我一般会让光源先点亮10~15分钟再开始采集亮场避免矫正用了“冷光”状态产线跑起来又是“热光”状态。亮场灰度尽量调到200左右。如果偏暗优先增加光源亮度或曝光时间不要通过调增益来拉亮因为增益会放大噪声如果偏亮接近饱和优先降低光源功率或缩小光圈。观察亮场图像曲线看有没有局部过曝的区域。如果有说明白板上有反光点或者光源角度不对产生了镜面反射先调整光源角度让白板呈现均匀漫反射状态。亮场同样建议多帧平均。尤其在线阵光源下某些驱动器存在周期性纹波单帧图像会带轻微横纹多帧平均能把这些波动平滑掉。我在现场一般取128帧做平均。采集完成后把暗场、亮场分别保存为raw文件同时记录下曝光时间、增益、行频这几个参数方便后面追溯。4.3 第三步计算矫正系数并保存这一步两种做法一种是在MVS软件里操作另一种是写个小脚本自己算。如果你用MVS软件的平场矫正功能界面操作一般是输入暗场图像和亮场图像设定目标灰度值软件自动计算出系数文件保存成.cal或者自定义格式文件。之后在MVS的采集参数里加载这个系数文件相机的输出图像就自动矫正了。如果你自己写代码用Python做一次也很简单核心就十几行。下面是我常用的一种实现读取暗场和亮场的raw文件计算offset和gain然后保存成numpy格式或者文本文件import numpy as np # 参数设置 width 2048 # 根据相机分辨率修改 height 128 # 平均后的图像高度 bit_depth 8 # 8位或12位 max_val 255 # 8位最大值12位就是4095 target 200 # 目标灰度 # 读取暗场和亮场分别取行平均 dark np.fromfile(dark.raw, dtypenp.uint8).reshape(height, width).astype(np.float32) white np.fromfile(white.raw, dtypenp.uint8).reshape(height, width).astype(np.float32) # 平均到单行 dark dark.mean(axis0) white white.mean(axis0) # 计算 offset 和 gain offset dark denom white - dark denom[denom 1] 1 # 防止除零 gain target / denom # 保存参数 np.savez(ffc_params.npz, offsetoffset, gaingain, exposure300, gain_setting0, line_rate2000)需要注意的是线扫相机保存的单帧图像本身就是一行或者几百行组成的长条图所以用的时候要确认图像的行数。我保存raw时故意采了128行平均变成单行参数后续矫正时把这一行offset和gain广播到每一行去应用。如果有12位相机raw读出的是16位数据里面的有效位数是12位读取时要先转成非负整数再按比例缩放。比如12位下满量程是4095你要的目标值灰度也要用12位尺度去考量一般写2200~3500之间。4.4 第四步在采集流程中应用矫正参数矫正系数计算出来后最后一步是把系数用起来。如果你用的是MVS软件内部的功能设置好后相机输出就已经是矫正图像直接用就行。如果你是自己写采集程序可以在SDK回调里加一个像素级处理把每一帧图像乘以gain、减去offset再输出给算法模块。下面给一个简单的处理流程示意假设图像数据已经是numpy数组def apply_ffc(frame: np.ndarray, offset: np.ndarray, gain: np.ndarray, max_val255): # frame shape: (height, width)单行offset/gain广播到每行 corrected (frame.astype(np.float32) - offset) * gain corrected np.clip(corrected, 0, max_val) return corrected.astype(np.uint8)应用矫正后再用原先的白色参考板重新采一张图观察灰度是否均匀。这是验证矫正是否有效的最直接方式。一般来说矫正后白场灰度波动应该在±2%~±3%以内如果达不到回头检查亮场采集是否稳定或者考虑做分段矫正。系数文件的保存位置和命名规则建议规范化比如按“产品类型_曝光时间_行频_日期”命名。因为换产品、调光源、改曝光之后都可能导致矫正系数变化参数文件管理做不好现场会非常乱。5. 矫正效果评估怎样算“精准成像”5.1 均匀性评价指标很多人做完矫正就拿白板拍一下肉眼看觉得差不多了就算完事这对精度要求不高的项目还行正式场合还是要量化评估。矫正效果我一般看三个指标灰度均值与目标值的偏差矫正后白场的平均灰度应当接近你设的目标值偏差应该在±5以内。灰度标准差或者最大最小跨度以整条线的灰度值为对象计算标准差更直观的做法是看最大值减最小值的跨度。8位灰度下好的矫正效果应达到最大最小跨度小于6~10个灰度级即满量程的2%~4%。局部纹理残留观察连续多行矫正后图像是否存在逐像素的随机噪声被放大。这类噪声幅度如果接近3~5个灰度级说明增益设置偏大或者亮场平均帧数不够。实际评估时我会在矫正后的白场图像上取一条矩形区域画一行灰度分布曲线直观看到波动范围。如果曲线基本是平的波动范围很小说明矫正有效如果曲线两端或者某些固定位置仍然有下凹需要回到上一步排查。5.2 跨行一致性检查线扫图像还有一个特点同一列像素来自传感器上同一个像元在不同时间的多次曝光而同一行像素则是同一时刻不同像元的响应。平场矫正用单行参数去矫正所有行假设的前提是每个像元的响应特性稳定、不随时间变化。但实际中传感器的响应会随着温度、光源闪动、运动速度等因素发生微小漂移尤其是连续运行几个小时后热噪声会导致暗电流升高。所以矫正后的图像除了要看单行均匀性还要看跨行一致性——取图像中同一列的一段数据看灰度有没有随着行数增加产生漂移。如果发现随着运行时间增加图像整体变暗或者变亮先检查光源是否稳定其次检查传感器温度。一些高要求项目会在设备开机预热后再做矫正并且把矫正周期纳入日常点检计划比如每4小时或者每班次重新做一次亮场基准采集。5.3 矫正系数复用与更新策略矫正系数不是一劳永逸的。项目长期运行时需要一套更新策略否则一旦光源衰减或者镜头清洁度变化矫正效果就会直线下降。我个人的经验是分三档日常设备正常运行时不更新矫正系数但每天开机后拍摄一次标准白板记录灰度均值和标准差如果均值偏离初始值超过5%就需要重新采集亮场了。定期每月用标准白板做一次完整矫正生成新的系数文件同时保存旧文件做对比能直观看到光源和相机响应有没有老化趋势。重点维护后更换光源、清洁镜头、移动相机位置、调整光圈之后必须重新做矫正因为这些操作都会改变亮场的空间分布。这几个更新策略看起来简单但能帮你把矫正这个环节变成可控的日常运维项而不是等到误判率飙升才去现场救火。6. 常见问题与排查技巧实录6.1 矫正后图像仍偏暗或偏亮这种情况最常见的原因就是目标值和亮场采集值不匹配。目标值设得太高而亮场原始灰度本身已经接近满量程white - dark的值很小增益被算得特别大矫正后图像反而会出现噪点或者过曝。排查思路先看亮场的平均灰度是多少如果原始亮场只有150就不要把目标值设到250目标值应该等于或者略小于亮场平均灰度。更稳妥的做法是让目标值等于亮场灰度的平均值这样矫正本质上是把亮场拉平不会整体改变亮度水平。另外如果暗场值采集得偏高矫正时减掉的offset偏大也会导致矫正后图像偏暗。所以暗场采集一定要确保完全遮光。6.2 单侧暗边明显矫正后依然存在这是最典型的镜头渐晕问题。按理说亮场中包含了渐晕信息矫正后应该能消除但如果你发现矫正后暗边仍然存在通常是两种原因第一种是亮场图像中暗边的灰度已经接近0或者非常低导致white - dark接近甚至小于暗场误差增益会异常大不仅拉不平暗边还会把噪声放大同时拉高暗边区域的灰度变成一条浅浅的亮带。第二种是视野太大白板没有完全覆盖整个视场边缘区域的亮场实际上采集的是背景而不是白板矫正系数自然就是错的。处理办法首先确认亮场有效覆盖整个视野没有白板边界落入图像然后检查边缘灰度如果边缘灰度低于亮场峰值的50%说明渐晕太严重要么换靶面更大的镜头要么考虑先做一次镜头匀光处理让亮场曲线不至于掉得太狠再做平场矫正。6.3 矫正后出现横纹或条纹横纹问题和平场矫正本身关系不是很大但往往在矫正后被放大。矫正的本质是一个像素级的乘加运算会把原始信号中的固定图案和噪声按增益放大如果原始图像本身有横纹矫正后横纹会更加明显。横纹的来源一般是光源的纹波、传感器的行读出噪声、或者电缆信号干扰。排查时先把光源调成直流模式或者恒流模式用示波器看光源驱动信号有没有周期性纹波。如果光源本身没问题就用短曝光和低增益重新采集暗场看暗场图像里是否仍有横纹。暗场里的横纹通常是读出噪声引起的这时候可以通过增加平均帧数来压制或者调节相机的相关双采样设置CDS。我遇到过一种情况用户说矫正后图像出现规律横纹结果排查发现是线阵光源的PWM调光频率和相机行频产生了拍频。后来把光源换成模拟调光横纹立刻消失。这件事提醒我做矫正之前把光源驱动方式搞清楚能省掉很多排查时间。6.4 矫正系数失效场景汇总有些朋友说矫正做完了为什么过两天又不行了我整理过一些常见失效场景基本能覆盖90%的情况曝光时间、增益、行频被改了而矫正系数是在旧参数下计算的。光源功率被调整或者光源老化亮场整体水平下降矫正增益无法补偿这么大的变化。镜头光圈或者焦距被触碰过渐晕特性发生变化。相机重新上电后部分相机参数没有从配置文件加载回到了出厂默认。传感器温度发生显著变化暗电流水平变了暗场值不准了。这些场景的本质都是一句话矫正系数和当前成像状态不匹配。所以规范化流程中矫正参数的记录和点检机制特别重要。你可以在MVS里把相机参数保存成一份配置文件和矫正系数文件放在一起管理还原现场时一起加载能少踩很多坑。7. 几个容易被忽略的实战经验7.1 光圈与曝光的选择顺序很多在线扫相机上第一次做矫正的人会问光圈到底开到多大合适。我的建议是先把光圈设定到一个合理的中间值比如F4~F8之间然后通过曝光时间和光源亮度来把亮场调到合适的灰度水平。为什么要这样因为光圈开太大镜头边缘的渐晕会更严重矫正系数需要的动态范围就更大图像边缘的噪声也会被放大光圈缩太小衍射会降低有效分辨率而且光源利用率下降亮场拉不起来。所以光圈选一个折中值剩下用光源和曝光来微调这种组合最容易获得稳定的矫正结果。7.2 白板并非越白越好之前提过白板要用漫反射白色材料但这不代表越白越好。有些高反射率白板在强光源下会把灰度顶到饱和亮场灰度一旦到250以上离饱和不远了矫正系数计算出来边缘往往有问题。更合适的目标是亮场灰度刚好落在220左右也就是满量程的85%上下。这样既能保证亮暗空间足够又不会碰触饱和区。如果你的光源太强导致亮场过曝宁可降低光源功率也不要通过缩小镜头光圈去压因为光圈改变会影响渐晕曲线。7.3 温度对矫正效果的影响线扫相机的暗电流受温度影响很明显温度升高时暗电流和读出噪声都会增加暗场的offset会漂移。有些设备连续运行几小时后图像整体就开始变亮或者出现暗电流噪声点这时候如果还是用开机时采集的暗场系数做矫正效果肯定打折扣。如果设备运行环境的温度波动大我会建议在相机端或者机柜里加散热措施同时把“温度漂移后重新矫正”纳入运维流程。也可以考虑每隔一段时间自动采集新的暗场参考图像而不是一直沿用旧的。对于一些高帧率的应用传感器发热厉害尤其需要关注这一点。7.4 用均匀性曲线做矫正后的最终确认最后分享一个习惯每次做完矫正先不急着上产品在矫正后的图像上放一张标准白板输出一行灰度曲线肉眼确认曲线基本水平之后再开始打样。这个步骤看起来多余实际上能避免很多因为矫正不彻底导致的算法误判问题。我见过不少项目调试阶段一切正常一量产就开始误报率飙升排查半天发现是白场矫正后在某个固定列还残留着一条很浅的暗带平时不惹眼一到特定产品上就触发误判。所以我在验收矫正效果时会把灰度波动范围记录下来比如“8位灰度下波动±3”写进项目调试记录里后续对比时很方便。线扫相机的平场矫正看着是个小步骤但它直接决定了整个视觉系统后续的稳定性。把原理吃透、流程做规范少走的弯路能让你在现场省下太多时间。
返回列表