1. HALCON深度学习视觉检测平台开发导论

HALCON 是 MVTec 推出的机器视觉算法库,长期用于工业定位、测量、OCR 与缺陷检测。自 HALCON 18.11 起,深度学习能力被正式集成进算子体系,开发者无需切换到 Python 训练框架,即可在同一套 HDevelop 或 HALCON/.NET、HALCON/C++ 环境中完成数据准备、模型训练、评估与推理部署。本课程的目标,是让具备基础图像处理经验的工程师,能够独立搭建一条从样本到上线推理的深度学习视觉检测链路。

课程目标:从"会用算子"到"能交付平台"

本课程不满足于演示单个算子,而是围绕"平台开发"这一目标组织内容。学完后应能完成四类任务:其一,针对具体检测需求判断该用分类、目标检测还是异常检测;其二,按 HALCON 要求组织数据集与标注,并完成预处理与增强;其三,选择合适网络进行训练、调参并用验证集判断模型是否可用;其四,将训练好的模型导出并嵌入实际检测流程,形成可重复运行的推理程序。这四类任务对应了深度学习项目从需求到交付的完整闭环。

HALCON 深度学习模块概览

HALCON 的深度学习能力按任务类型划分为若干模型族,每族有对应的训练、评估与推理算子。理解它们的适用边界,是选型的第一步。

  • 分类(Classification):输入整幅图像,输出类别标签与置信度。适合判断"合格/不合格""A类/B类/C类"等整体属性,例如瓶盖有无、印刷图案是否完整。典型算子为 read_dl_classifier、train_dl_classifier_batch、apply_dl_classifier。
  • 目标检测(Object Detection):在图像中定位目标并给出类别与边界框,适合多目标、位置不固定的场景,如 PCB 上多个元件缺失检测。核心算子为 read_dl_model、train_dl_model_batch、apply_dl_model。
  • 语义分割(Semantic Segmentation):为每个像素分配类别,适合需要精确轮廓的缺陷,如划痕、脏污区域提取。
  • 异常检测(Anomaly Detection):只用正常样本训练,输出异常分数与异常区域。适合缺陷样本稀少、难以穷举的场合,是工业检测中非常实用的一类。
  • 深度 OCR:面向复杂背景、低对比度或形变字符的识别,弥补传统 OCR 在困难场景下的不足。

这些模型族共享同一套数据接口与训练框架,因此掌握其中一条链路后,迁移到其他任务的成本较低。下图给出 HALCON 深度学习从数据到部署的整体结构关系。

HALCON 深度学习视觉检测平台结构 数据与标注 图像采集 / 样本筛选 标注:类别 / 框 / 掩膜 训练集 / 验证集 / 测试集 增强:旋转 / 亮度 / 噪声 模型族与训练 分类 目标检测 语义分割 异常检测 深度 OCR 训练 / 评估 推理与集成 模型加载 / 批推理 结果解析:类别 / 框 / 分数 与定位、测量算子串联 HDevelop / .NET / C++ 误检 / 漏检样本回流,补充数据再训练 平台支撑能力 样本管理 版本、划分、标注校验 训练调度 超参、批次、GPU 资源 指标评估 准确率、召回、IoU、阈值 部署运维 模型版本、节拍、日志

视觉检测平台的核心需求

把深度学习用进产线,与在实验室跑通一个 demo 是两回事。平台需要满足几项硬性需求。第一是稳定性:同一批产品在不同时间、不同光照下,判定结果应保持一致,因此训练数据必须覆盖实际波动,推理前通常要做光照归一化或使用固定光源。第二是可追溯:每个判定结果要能回溯到模型版本、阈值和输入图像,便于出现批量误判时定位原因。第三是节拍匹配:单张推理时间必须小于工位节拍,必要时通过降低输入分辨率、使用批推理或 GPU 加速来满足。第四是可维护:当产品换型或缺陷模式变化时,能快速补充样本、重新训练并替换模型,而不必重写整套程序。

这些需求直接决定了技术选型。例如缺陷样本极少时,异常检测比分类更合适;目标位置随机且需要计数时,目标检测优于整图分类;对轮廓精度要求高时,语义分割比边界框更合适。

典型应用场景

在工业现场,HALCON 深度学习常见于以下几类场景。表面缺陷检测:金属件划痕、玻璃气泡、织物污点,常用异常检测或分割;装配完整性检查:连接器针脚缺失、螺丝漏装,常用目标检测;字符识别:药瓶批号、轮胎码,常用深度 OCR;分类分选:农产品等级、零件型号,常用分类。以连接器针脚检测为例,输入为 1280×1024 灰度图,标注每个针脚的位置与"正常/缺失"类别,训练目标检测模型后,推理输出每个针脚的边界框与置信度,再设定置信度阈值(示例中取 0.6)判定是否缺失,低于阈值的框视为不可信并触发复检。这一流程体现了"数据—模型—阈值—判定"的完整链条。

学习建议:先跑通一条最小链路——用几十张图训练一个二分类模型并完成推理,再逐步扩展到检测与分割。理解数据组织方式和评估指标,比记住算子名称更重要。

本课程的组织方式