VisionMaster 断续划痕检测全流程算子实操详解 工业工件表面划痕检测常遇到一类典型问题单条划痕被污渍、局部反光遮挡断裂成多段Blob 分析会将其识别成多个独立小连通域计算得到的划痕长度远小于真实值。本文基于 VisionMaster 现成流水线图像源→快速匹配→位置修正→阴影校正→图像归一化→图像滤波→形态学处理→Blob 分析逐个拆解每个算子作用、参数优化逻辑全程不新增算子通过原生节点调参实现断点拼接、拉长目标短线划痕适合金属板材、锂电池极片类表面缺陷落地复用。整体流水线总览算子功能介绍阴影校正 预处理第一层抹平全局明暗不均针对打光不均、局部阴影、大面积污渍带来的画面亮度偏差通过滤波平滑背景亮度曲线校正整体明暗差弱化大块污渍和工件基底的灰度反差让被污渍盖住的划痕边缘更容易显现。自带 4 项可调运行参数滤波尺寸、增益、亮度校正补偿、噪声。参数参数描述滤波尺寸卷积核的大小取值范围1~50。卷积核越大滤波效果越平滑增益增强前景目标取值范围0~100亮度校正补偿对图像整体灰度水平进行调整取值越高图片整体灰度越高取值范围0~255噪声干扰像素灰度阈值取值范围0~255。灰度值低于该值的像素点其灰度值将被置为0滤波尺寸滤波本质用固定尺寸的滑动窗口遍历图像所有像素按预设规则融合窗口内像素灰度值替换窗口中心原始像素值实现降噪、边缘保留、模糊等效果。增益Gain图像传感器采集到微弱光电信号后电路对原始电压信号做放大处理的倍率作用是拉高画面亮度单位常用dB分贝或线性倍数标注是工业相机最常用曝光配套参数。 分为两类模拟增益光电信号转数字前放大信噪比损耗小优先使用数字增益信号模数转换后软件拉升亮度会同步放大噪点尽量少用。光线打在 CMOS/CCD 感光像素→光子转化微弱电信号电压极小→增益电路按设定倍率放大电压→模数采样转为图像灰度数据输出。 举个直观例子原始感光电压仅 2mV增益设为 4 倍放大后输出 8mV最终画面整体亮度提升。图像归一化图像归一化可对图像的灰度分布按照规则进行调整以增强图像局部细节。第1种直方图均衡化暴力拉差距法大白话原理如果全班成绩都挤在60~70分之间大家拉不开差距。这个算法就“强行”把60分的同学拉到40分把70分的同学拉到90分。目的不是改分数而是让大家分数差距变大好坏一眼就能看出来。处理后的样子图片明暗对比特别强烈暗的地方更暗亮的地方更亮画面变“清晰”了但颜色会有点失真。什么时候用它只要想“肉眼看清”图像里的细节就用它。比如划痕检测让细小的划痕和背景黑白分明、老照片修复、医学看X光片、雾天照片去雾。一句话总结为了让你人眼看得更清楚。第2种直方图归一化统一尺子法大白话原理不管这张图原本是偏暗全班都在40分还是偏亮全班都在80分我找出图里最暗的点和最亮的点然后按比例把整张图“压缩”或“拉伸”强行把最暗的变成0分最亮的变成100分。关键区别它只动尺子不动排名。原本比旁边亮的处理后还是比旁边亮只是大家站在了同一个起点上。处理后的样子图片明暗关系没变只是整体亮度被均匀地拉到了0~255这个标准范围里。什么时候用它当你要把多张图片放在一起对比或者喂给传统电脑程序非深度学习时。比如工厂流水线拍了一百个零件有的光线亮有的暗先归一化让电脑判断时不受亮度干扰。一句话总结为了把不同亮度的图片塞进同一个标准盒子里第3种均值标准差归一化AI专用摆正法大白话原理先算出全班平均分比如平均60分然后每个同学的成绩都减去60分。这样一来比平均亮的变正数比平均暗的变负数全班成绩就围绕着“0分”上下波动了。再除以一个波动幅度把大家的分数聚拢一点。关键警告处理完后图片里有大量的负数如果硬要显示出来就是一片灰蒙蒙的噪点根本不是给人看的正常图片。处理后的样子完全看不出原图的样子全是灰的数值在-1到1之间浮动。什么时候用它只且仅用于“人工智能深度学习模型”训练和推理之前。比如人脸识别、自动驾驶、AI大模型读图之前的必经步骤。电脑不喜欢看0~255的图片就喜欢看这种围绕0上下波动的数据算得快学得准。一句话总结为了把图片加工成电脑爱吃的数据“饲料”图像滤波滤波 给图片“美颜磨皮”或者“描边勾线”。它的核心原理就一句话每个像素点的新数值由它自己加上周围一圈邻居的数值共同决定。就像你原来考了60分但发现前后左右四个同桌都考了90分老师怀疑你写错卷子于是把你的分数改成和同桌差不多——这就是滤波的原理。高斯滤波原理依靠邻域像素高斯权重加权平滑近处像素权重更高整体过渡柔和降噪幅度可控。场景适配 参数适用场景去除成像颗粒噪点、工件浮尘是细长划痕检测最优可选方案避坑要点只用3×3 最小核核越大越容易模糊划痕头尾弱边缘、缩短识别长度项目用法放在图像归一化后、形态学处理前小力度降噪保留断点两侧划痕细节方便后续闭运算拼接长线。形态学处理形态学处理模块主要用来从图像中提取出对描绘区域形状有意义的图像分量使后续的识别工作能够抓住目标对象最为本质的形状特征如边界和连通区域等。形态学处理针对的是图像中的白色像素点。核心基础原理形态学运算依靠结构元素卷积模板滑动遍历全图像素按照设定规则改动连通域轮廓基础运算分腐蚀、膨胀两类再衍生开闭组合运算膨胀以结构元素范围向外扩张亮区域边界填补细小空隙、拉近分段缺陷腐蚀向内收缩亮区域边界削除细小零散噪点毛刺闭运算本项目首选 先膨胀 后腐蚀先小幅膨胀补上污渍造成的划痕断点空隙把同一条划痕断开的两段连成整块连通域再用同等幅度腐蚀还原划痕原本粗细不会让线条整体变粗变形完美适配断续划痕拼接需求开运算 先腐蚀 后膨胀用来剔除小颗粒噪点不适合修补长线断点。关键可调参数释义结构元素形状可选矩形、圆形细长划痕优先用矩形尺寸宽、长、倾斜角度宽度贴合划痕粗细长度控制断点填补跨度角度对齐划痕倾斜方向迭代次数控制运算执行轮次常规场景取 1 次即可多次迭代会过度粘连相邻划痕。BLOB分析BLOB斑点 / 连通域分析是视觉检测经典后处理算子承接形态学处理输出的预处理图像通过灰度阈值分割提取画面内互相连通的像素区域计算面积、长度、长宽比等特征筛选真实缺陷参数轴比范围开启后算法仅筛选出最小外接矩形短轴长度和长轴长度比值在轴比范围内的blob。连通性设置判断图像上像素点是否互相连通的标准包括4连通和8连通。通常设置为8连通可比设置为4连通获得更大的blob。4 连通、8 连通基础规则4 连通只有上下、左右这 4 个正交方向相邻才算像素连通斜对角挨着不算连通8 连通上下左右 4 个斜对角总共 8 个方向相邻都算连通判定连通更宽松。对照两张图解图 19、图 20图 194 连通判定结果2 块独立连通区右侧有一小块白色像素它只和主色块呈斜对角相邻4 连通不认斜向相邻没法和左侧大片白色连通于是被拆成 2 个独立 Blob左侧大块、右上角小块分开计数图里两个橙框就是两块独立区域。图 208 连通判定结果整块 1 个连通区右上角小块和主色块斜向相邻8 连通把斜向视作连通条件零散小块并入主体所有白色像素合并成一整块 Blob只生成 1 个连通区域整体被同一个框圈住。单阈值通过单阈值算法进行图像二值化需设置低阈值。该算法适用于对算法效率要求较高或需对较大检测目标进行二值化的场景。该算法二值化处理速度快但存在空间量化误差相对精度较低。不同极性设置下二值化效果有所差异。极性用于指定在二值化之前灰度图中前景的灰度是否亮于背景。极性设置为暗于背景时灰度值小于低阈值的像素点被分割为前景其余像素点为背景。极性设置为亮于背景时灰度值大于或等于低阈值的像素点被分割为前景其余像素点为背景。单阈值 亮于背景 低阈值的运算逻辑图像像素灰度取值范围常规是0纯黑~255纯白极性设「亮于背景」时像素灰度 低阈值 200 → 判定为前景划痕 Blob绿色标记保留像素灰度 ≤200 → 判定为背景黑色区域直接忽略 图里背景灰度远低于 200、划痕亮条灰度高于 200所以划痕全部被提取、黑背景完全过滤。