视觉算法与成像

冲压件毛刺与崩边检测的精度问题

这类项目谈崩往往不是技术做不到,而是精度指标没谈清。「毛刺不超过 0.05」这句话在图像上有好几种理解,先把口径统一,再谈成像与硬件。

毛刺与崩边是什么,出现在哪些工况

板料被剪切分离时断面会形成塌角、光亮带、断裂带与毛刺。 毛刺是剪切末端被拉断时翻出的多余部分,向外凸出、通常很薄, 大小与刃口锋利度、冲裁间隙、材料与润滑相关。 崩边是材料缺失、边缘向内凹陷,成因多是刃口崩缺、材料夹渣、送料偏移。

常见场合有汽车结构件冲裁边、硅钢片、电子端子冲切面、五金钣金件、锂电极片。 毛刺会划伤后工序模具、装配卡滞、在电气件上引起短路,崩边影响强度与密封。 两类缺陷都在工件轮廓边缘上,属于轮廓类检测。 敏洽 机器视觉检测软件 用边缘缺陷检测、轮廓拟合与尺寸测量的组合处理这类项目。

实际会遇到的几个坑

1. 「精度 0.05」这句话的口径不统一

最大的风险点。同一句「毛刺不超过 0.05」,可能指 高度(沿厚度方向翻出量)、 长度(沿轮廓延伸距离)或 凸出量(相对理论轮廓的突出距离); 基准也有分歧:从理论 CAD 轮廓量起还是实测拟合轮廓? 规范做法是方案阶段出一份测量定义图,双方确认。

2. 用表面打光去拍轮廓缺陷

最有效的成像是背光——工件挡光形成高对比度剪影, 几乎不受表面油污、纹理、色差影响。用前向环形光或同轴光去拍, 金属表面的反光与纹理会混在边缘附近,轮廓提取重复性下降。 做不到背光时用低角度掠射从外侧打让边缘出亮线。

3. 毛刺高度在俯视图里看不到

背光俯视能很好地测轮廓方向的凸出量与崩边深度, 但毛刺沿板料厚度方向翻出,俯视图里可能只是极细一条甚至被本体挡住。 如果客户要的是毛刺高度,俯视方案本身就不成立, 需要侧向视角或专门的高度测量手段。

4. 像素当量与视野的矛盾没算清

图像能分辨的最小尺寸取决于视野除以传感器像素数,即像素当量; 缺陷需要跨若干像素才能稳定判定,工件大、缺陷小时就需要很高分辨率。 解法三条:只检关键边、多视野拼接或多相机分工、 用线扫相机做长边高分辨成像。 亚像素轮廓拟合能改善边缘定位,但不能弥补分辨率不足。

5. 工件放置与镜头畸变引入系统误差

工件没贴平(翘曲、垫高、放偏),投影尺寸就变了,测量值随摆放漂移; 镜头畸变在视野边缘的形变同样会被当成缺陷。要求是用 远心镜头或足够长的工作距离、做好畸变标定与校正、 用平整工装贴合工件,并先建立工件坐标系再测量。

6. 只输出 OK/NG,丢掉了趋势信息

毛刺尺寸与刃口磨损、冲裁间隙变化直接相关, 连续记录每件实测值可以在超差之前看到上升趋势,用来安排刃磨与换模。 敏洽的架构天然支持——C++ 算法侧只输出原始算法数据, 不做 OK/NG 判定,判定在 C# 侧按配方进行,原始值可入库做趋势分析。

方案与硬件条件

检测项算法组合成像方式
崩边 / 缺口边缘缺陷检测、轮廓拟合、轮廓面积与周长背光剪影优先
毛刺凸出量轮廓拟合 + 基准轮廓偏差、边缘缺陷检测背光俯视
毛刺高度侧向轮廓提取 + 尺寸测量侧向背光或掠射
尺寸与形位最小外接圆直径、最大内切圆直径、等效面积直径、旋转矩形长短边、径向直径、线对距离、线交角度背光 + 远心镜头
变形与压伤圆度、凸度、矩形度、圆 / 椭圆检测压伤另配前向光
孔位与孔径圆 / 椭圆检测、轮廓拟合、周期间距背光
形态不规则YOLO 目标检测、YOLO 实例分割、异常检测沿用轮廓成像
表面划痕划痕检测、频域分析、对比度检测另加掠射或同轴光
项目要求与说明
测量定义需先出测量定义图:基准、测量对象、允差、验证方法
光学背光台或透明定位台;远心镜头或长工作距离;畸变标定
分辨率按最小可检缺陷反推像素当量与视野;必要时拼接或线扫
工装平整贴合的定位工装,避免投影误差
相机USB/UVC、大华、海康、度申已适配;Mock 虚拟相机可回放历史图片
触发硬件 IO(到位信号)、编码器(连续料带)、通讯软触发、连续采集
数据留存每件实测原始值入库,用于模具磨损趋势与追溯
运行环境Qt 6.9.2 + C++17 + OpenCV 4.x + ONNX Runtime;Windows 10/11 x64 与 Ubuntu 22.04 x64
客户准备标准件(带量具数据)、覆盖边界的 NG 样品、图纸与允差、定位工装

标准件是测量类项目的必备条件: 没有经过量具确认的标准件,就没法标定像素当量、也没法在验收时证明测量值可信。

相关交付情况

交付顺序:先确认测量定义与允差,再用样品试拍确认成像与分辨率可行性, 按最小可检尺寸反算相机镜头配置,然后是软件实现、标定、用标准件与 NG 样品验证。

交付内容包括成像方案、硬件选型建议清单、检测与测量软件、参数配方管理、 每件原始数据与图片留存、接口文档(触发方式、IO 定义、通讯点表、结果格式)。 算法按模块授权;已有上位机的客户可用跨语言 SDK (mqvision.dll / libmqvision.so, 支持 C、C++、C#、Java JNI、Python,另有 Qt-free 版本)嵌入既有框架。 AI 部分在客户本地训练,图片不出厂,模型导出为加密 .aim 包。

同一工件若还要检表面缺陷,成像方案通常要分开做,见 高反光工件怎么打光; 更多算法说明见 内置算法库。

常见问题

不一样。毛刺是材料在剪切面上多出来的部分,向外凸出,常常很薄且带一定高度;崩边是材料缺失,边缘向内凹陷或有缺口。图像上一个是凸、一个是凹,都在轮廓上,所以可以用同一套轮廓提取的成像方案,但判据不同——毛刺关心凸出的高度或长度,崩边关心缺失的深度与长度。另外毛刺往往是沿厚度方向翻出的,从正上方拍可能只看到很细的一条,需要考虑侧向视角或专门的高度测量。
这个问题要先换算成像素当量。图像上的最小可分辨尺寸由视野除以传感器像素数决定,工程上可稳定判定的缺陷尺寸一般需要占若干个像素而不是一个像素,亚像素轮廓拟合可以在良好成像条件下改善边缘定位精度。所以正确的问法是:工件多大、要检的最小缺陷多大、允许几个视野拼。这三个数定了,能不能做就是算术题。笼统地问「精度多少」没法回答,因为它不是软件的固有属性,而是成像配置决定的。
至少要写清四件事:一是测量对象的定义(毛刺高度、毛刺长度、崩边深度还是缺口面积);二是测量方法与基准(从哪条基准线量起,理论轮廓还是实测拟合轮廓);三是判定值与允差;四是验证方法(用什么标准件、用什么量具比对、测多少次、允许多大的重复性偏差)。只写「毛刺检测精度 0.05mm」这类表述,双方对同一句话的理解可能差好几倍,验收必然争执。
毛刺的产生与模具刃口磨损、间隙变化直接相关,所以毛刺尺寸的统计趋势是模具状态的直接指标。把每件的测量值(不只是 OK/NG,而是原始数值)存下来做趋势图,可以在毛刺还没超差之前看到上升趋势,安排刃磨或换模。这比等到批量不良再停线有价值。敏洽的架构上 C++ 侧只输出原始算法数据不做判定,因此每件的实测值天然是可留存、可做趋势分析的。

有具体设备清单或工件样品,可以直接给判断

提供设备型号、PLC 品牌与需要采集的数据项,或提供被检工件照片与精度要求,敏洽可先给出可行性判断与硬件前置条件,再谈软件工作量与报价。