4. 深度学习检测任务类型辨析
在VisionPro深度学习模块中,很多初学者最容易犯的错误,是拿到一个检测需求就直接打开某个工具开始标注,而没有先判断这个需求本质上属于哪一类任务。分类、分割、检测、定位这四类任务,虽然都建立在卷积神经网络之上,但它们对标注数据的要求、输出的结果形式、可用的后处理逻辑以及最终能回答的工业问题完全不同。选错任务类型,往往意味着标注工作全部返工,甚至模型精度永远达不到产线要求。
四类任务的核心区别:从"回答什么问题"出发
可以用一句话区分四类任务:分类回答"这是什么",输出整张图或整个ROI的类别标签;定位回答"目标在哪里、姿态如何",输出目标的位置与角度;检测回答"有哪些目标、各自在哪里",输出多个目标的类别加边界框;分割回答"每个像素属于什么",输出逐像素的类别掩膜。
关键差异在于输出粒度。分类的输出是一个类别向量,例如[OK: 0.97, NG: 0.03],它不关心缺陷在图像中的位置。定位通常针对单个已知目标,输出其中心坐标(x, y)和旋转角度θ,典型场景是机器人抓取中的工件位姿估计。检测输出的是目标列表,每个元素包含类别、置信度和边界框,适合一张图中存在多个待检目标的场景。分割则把图像中每个像素都赋予类别,输出与输入同尺寸的掩膜图,适合缺陷形状不规则、需要精确面积或轮廓的场景。
如何根据工业需求选择任务类型
选择任务类型时,建议按以下判断顺序推进。第一步问"是否需要知道缺陷的位置"。如果只需要判定整件产品合格与否,例如注塑件表面是否存在色差,分类即可满足。第二步,如果需要位置,再问"是单个目标还是多个目标"。单个已知工件的抓取引导用定位;一张图中可能出现多个缺陷或多种零件,则用检测。第三步,如果缺陷边界不规则、需要计算面积或轮廓,或者缺陷与背景对比度极低、边界框无法准确框住,则应选择分割。
这里有一个常见的误区:很多工程师认为分割一定比检测更精确,因此所有缺陷都上分割。实际上分割的标注成本远高于检测,一个像素级掩膜标注耗时可能是边界框的5到10倍,而且当缺陷本身是规则矩形时,分割带来的精度提升非常有限。反过来,如果缺陷是细长划痕或丝状异物,边界框会包含大量背景,此时检测的框回归很难收敛,分割才是正确选择。
VisionPro中的工具对应与配置要点
在VisionPro Deep Learning中,四类任务分别对应四个独立的工具节点。分类工具(Classification)的典型配置是:输入图像尺寸建议统一缩放到224×224或512×512,训练集每个类别至少准备30到50张样本,验证集占20%。输出为每个类别的概率值,通过设置阈值(如0.5)判定最终类别。定位工具(Localization)需要标注目标的中心点和旋转角度,训练时要注意样本需覆盖目标可能出现的全部角度范围,例如0°到360°每15°至少一张。检测工具(Detection)使用边界框标注,关键参数是IoU阈值(通常设0.5)和置信度阈值(通常设0.3到0.5),训练后可通过NMS去除重叠框。分割工具(Segmentation)需要像素级掩膜,训练时建议使用较小的学习率,并关注类别不平衡问题,例如缺陷像素远少于背景像素时,需要设置类别权重。
四类任务的标注成本与精度权衡
| 任务类型 | 标注形式 | 单张标注耗时(示例) | 输出信息量 | 典型精度指标 |
|---|---|---|---|---|
| 分类 | 整图类别标签 | 约5~10秒 | 低 | 准确率、混淆矩阵 |
| 定位 | 中心点+角度 | 约15~30秒 | 中 | 位置误差(像素)、角度误差 |
| 检测 | 边界框+类别 | 约30~60秒 | 中高 | mAP、IoU、召回率 |
| 分割 | 像素级掩膜 | 约3~10分钟 | 高 | IoU、Dice系数、像素准确率 |
上表中的耗时数据为教学示例中的合理估算,实际耗时取决于缺陷复杂度和标注工具熟练度。从表中可以看出,标注成本与输出信息量正相关。工程实践中应遵循"够用即可"的原则:能用分类解决的不用检测,能用检测解决的不用分割。只有在检测的边界框无法满足测量或轮廓分析需求时,才升级到分割。
典型场景的任务选择对照
以下列举几个典型工业场景,帮助建立任务选择的直觉。第一,连接器端子有无缺失:如果只需要判断"有/无",用分类;如果需要知道缺失的是第几个端子,用检测。第二,PCB板上的字符识别:如果只需要判断字符是否正确,用分类;如果需要读出字符内容,用检测加字符识别。第三,玻璃盖板划痕检测:如果只需要判断有无划痕,用分类;如果需要测量划痕长度和面积,用分割。第四,机器人抓取散乱工件:用定位获取每个工件的位姿,如果工件种类多且需要分类抓取,则用检测加定位的组合方案。
总结来说,四类任务的选择本质上是"输出信息粒度"与"标注成本"之间的权衡。分类最省标注但信息最少,分割信息最全但标注最贵。检测和定位处于中间,分别面向多目标和单目标场景。在VisionPro中,四个工具节点各自独立,但可以通过脚本或工具链组合使用。建议在实际项目中先用小样本快速验证任务类型的可行性,再决定是否投入大规模标注。