4. 深度学习视觉检测原理概述
在工业视觉检测中,传统算法依赖人工设计特征——边缘、灰度阈值、模板匹配、Blob 分析等。当缺陷形态稳定、背景可控时,这些方法效率极高;但一旦遇到划痕深浅不一、纹理背景复杂、缺陷样本稀少的情况,人工特征的表达能力就会迅速见顶。深度学习之所以被引入 CV-X 系列,本质上是把"人设计特征"换成"网络从样本中学习特征",从而在难以用规则描述的检测任务上获得更高的稳定性。
理解 CV-X 的深度学习功能,需要先分清四类任务:分类、目标检测、语义分割、异常检测。它们不是互相替代的关系,而是对应不同的"问题形态"和"输出形态"。分类回答"这张图属于哪一类",输出是一个类别标签;目标检测回答"图里有哪些目标、分别在哪里",输出是若干带类别的矩形框;语义分割回答"每个像素属于哪一类",输出是与原图同尺寸的类别掩膜;异常检测回答"这张图与正常状态偏离多少、偏在哪里",输出通常是异常分数与异常热力图。选择哪一类,取决于你需要的是"整图判定""定位计数"还是"逐像素区域判定"。
四类任务共享同一个基础:卷积神经网络(CNN)。CNN 的核心思想是局部感受野 + 权值共享 + 逐层抽象。浅层卷积核响应边缘、角点、纹理等低级特征;随着层数加深,感受野扩大,深层特征逐渐对应"划痕""脏污""缺料"这类语义概念。池化层在保留主要响应的同时降低空间分辨率,使网络对微小位移不敏感——这对产线上工件位置有轻微波动的场景非常重要。CV-X 内部把这些结构封装为可训练的检测单元,使用者不需要手写卷积核,但仍需理解:网络学到什么,取决于你喂给它什么样本、标注成什么样子。
分类:最直接、样本需求最低
分类任务把整幅 ROI 图像映射为一个类别。在 CV-X 中通常用于"整件 OK/NG 判定"或"缺陷类型区分"。训练时每张图只给一个类别标签,标注成本最低。推理时网络输出各类别的概率(Softmax 归一化),例如 OK=0.12、划伤=0.83、脏污=0.05,再通过阈值判定。实际使用中,判定阈值不是固定 0.5,而应根据漏检与过杀的代价调整:若漏检代价高,可把 NG 类阈值降到 0.4 左右,用一定过杀换取更低漏检。分类的局限在于它不告诉你缺陷在哪里,也不适合一张图里同时存在多个独立缺陷的计数场景。
目标检测:定位与计数
目标检测在分类基础上增加回归分支,输出每个目标的矩形框坐标(x, y, w, h)与类别置信度。CV-X 的实现通常采用单阶段检测结构,一次前向即可输出所有候选框,再经置信度过滤与非极大值抑制(NMS)去除重叠框。典型教学示例:检测连接器上的 6 个引脚,若某引脚缺失,则该位置无框输出,通过"框数量 < 6"即可判定缺料。这里的关键参数是置信度阈值与 NMS 的 IoU 阈值:置信度阈值过低会引入误检,过高会漏掉被遮挡目标;IoU 阈值过小会把相邻引脚的两个框合并成一个。工程上常先用 0.5 置信度、0.45 IoU 起步,再根据实际误检/漏检情况微调。
语义分割:逐像素判定
语义分割为每个像素分配类别,输出与原图同尺寸的掩膜。它适合形状不规则、边界模糊的缺陷,例如涂层不均、细微裂纹、异物附着。相比检测框,分割能给出缺陷的真实轮廓,从而计算面积、周长、长宽比等几何量。CV-X 中分割结果可直接用于面积阈值判定:例如"缺陷像素占比 > 0.8% 判 NG"。分割的标注成本最高,需要逐像素勾画,因此样本量要求也更高。实践中常先用分类或检测快速筛出可疑区域,再对可疑区域做分割精判,以降低标注与算力负担。
异常检测:为 NG 样本稀少而生
工业现场最棘手的情况是:正常品成千上万,缺陷品却只有几个,甚至无法穷举缺陷类型。异常检测正是为此设计——它只用正常样本训练,学习"正常应该长什么样",推理时输出异常分数与热力图。分数超过阈值即判异常,热力图指出偏离正常模式的区域。CV-X 的异常检测单元通常基于特征重构或分布建模思想:网络尝试重建输入的正常特征,重建误差大的位置即为异常。这种方式不需要 NG 样本,但要求训练集必须"干净"——若混入少量缺陷样本,网络会把缺陷也当作正常学习,导致漏检。因此异常检测的第一条工程纪律是:训练集只放确认无误的正常品。
CV-X 实现方式与工程要点
在 CV-X 上落地深度学习检测,流程可概括为:采集图像 → 划定 ROI → 标注样本 → 训练 → 阈值调优 → 现场验证。其中几个环节直接决定成败。第一,成像稳定性:深度学习对光照变化有一定鲁棒性,但前提是训练集覆盖了现场的光照波动范围;若训练时只用一种光照,现场换批次后亮度漂移,误判率会明显上升。第二,样本均衡:分类任务中 OK 与 NG 样本数量不宜悬殊过大,否则网络偏向多数类;可通过数据增强(旋转、平移、亮度扰动、加噪)扩充少数类。第三,训练/验证划分:必须留出未参与训练的验证集,用验证集上的漏检率与过杀率评估模型,而不是看训练集准确率——训练集准确率高但验证集差,说明过拟合。第四,阈值与判定逻辑:网络输出的是分数,最终 OK/NG 由阈值决定,阈值应在验证集上按目标漏检率反推,而非凭感觉设定。
需要特别强调的是,深度学习不是"丢几张图就能用"。它把传统算法中人工调参的工作,转移到了样本质量、标注一致性和阈值设定上。一个在实验室验证集上表现良好的模型,若现场 ROI 偏移、镜头污染、工件批次更换,仍可能失效。因此 CV-X 的深度学习功能通常配合定期复训与现场抽检使用:当产线换型、来料变化或误判率上升时,补充新样本重新训练,而不是一味调整阈值。理解四类任务的输出形态与适用边界,是正确选型、正确标注、正确判读结果的前提。