1、项目开发背景
参赛团队:浮光掠影队
操作软件:VM工业软件
硬件环境:Intel 13700K,32GB内存
数据集素材:启智杯3D应用题素材——表面缺陷素材、焊缝缺陷素材
2、项目开发设计思路
焊缝缺陷和表面缺陷检测的思路大体一致,但焊缝检测的效果并不理想,现以表面缺陷检测为例,题中目标缺陷为凹坑和划痕。首先我们要明确缺陷的检测需要克服的问题:①如何定位到缺陷?②如何确定缺陷的深度和大小?回答第一个问题之前,我们需要先进行图像预处理,目的是去掉大部分干扰因素。
2.1图像预处理以及定位
初步处理要做的是模板匹配、截取、并把部分噪声去除,因此我们需要借用到VM软件的快速匹配、位置修正、截取和杂点过滤模块。
2.1.1针对凹坑的预处理及定位
凹坑缺陷的特征是形状大致为圆形或椭圆形,深度一般不大。因此,通过高度抽取、滤波的方式去除部分噪声;接着进行直方图灰度变换,对深度图进行BLOB分析,使凹坑缺陷更加凸显,并在图像中绘制出缺陷区域,如图所示。
2.1.2针对划痕的预处理及定位
划痕缺陷的特征是形状细长且深度较大。同样的,需要先进行高度抽取、滤波,去除部分噪声;进行直方图灰度变换后,加一步开运算处理,用于减少干扰,再对深度图进行BLOB分析,使得划痕缺陷更加明显,并在图像中绘制出缺陷区域,如图所示。
至此,第一个问题回答完毕。
2.2缺陷测量
对于第二个问题,如何对定位到的每个缺陷进行测量?主要思路为:针对Roi区域进行粗平面检测 后,进行坐标系构建以及基准矫正,再进行精平面检测,获得基准平面;统计z 坐标获得最小值作为缺陷底端,再进行点面测量获得缺陷深度;通过二值化和 BLOB 分析等方式计算出缺陷的平面尺寸。
2.2.1 凹坑测量
遍历每个ROI区域,进行截取,通过tukey函数拟合回归,选择圆参数,进行第一次平面检测;在平面检测的基础上进行坐标系构建,接着进行基准矫正;再通过回归拟合的方法进行第二次平面检测,得到了凹坑缺陷的基准面。
2.2.1.1凹坑深度测量
用统计测量的方法,通过点名测量得出,凹坑里的点到基准面的距离,将其统计并求得z坐标的最大值,即为凹坑的深度。
2.2.1.2凹坑大小测量
在基准面上进行操作,通过平面检测和基准矫正传入的参数计算出二值化操作的低阈值,进行二值化操作;再通过BLOB分析以及变量计算,获得凹坑的直径。
2.2.2划痕测量
具体测量前的处理步骤与2.2.1凹坑测量基本一致,再次不过多赘述。获得划痕的基准面。
2.2.2.1划痕深度测量
同样通过点面测量的方式,获得划痕缺陷处的点到基准面的距离,并统计出最大值,得到划痕深度。
2.2.2.2划痕大小测量
此处大小测量较凹坑大小测量简单,只需计算ROI区域的长宽即可。
3.项目开发总结
团队成员通过此次启智杯的比赛,熟悉了VM工业软件的基本模块,查阅了一些常用的图像处理流程,学习到了缺陷定位以及测量的基本思路,虽然焊缝部分完成度不足,但这一个月的开发历程还是收获满满的。