一、缺陷检测概述
缺陷检测是机器视觉重要的应用方向之一,由于在制造产品的过程中,表面缺陷的产生往往是不可避免的,故机器视觉的缺陷检测有较大的市场需求。熟练掌握缺陷检测是视觉工程师的必要技能。
在工业视觉检测当中,常见的工业视觉检测表面缺陷有划伤、划痕、辊印、凹坑、粗糙、波纹等外观缺陷,此外还有像一些非金属产品表面的夹杂、破损、污点,以及纸张表面的色差、压痕等。
相比于人工检测,基于机器视觉的检测有如下优点:
①能24小时不间断工作
②检测速度快,准确率高
③检测精度高
④不受外界因素的干扰,检测结果稳定
⑤非接触性检测
二、缺陷检测方法
个人总结如下:
①基于颜色的Blob法+差分
②模板匹配+差分
③基于轮廓的边缘提取
④频域+空间结合
⑤机器学习的方法
⑥光度立体法
三、模板匹配+差分法
主要检测物品损坏,凸起,破洞,缺失等。先定位模板区域后,求得模板区域的坐标,创建物品的形状模板create_shape_model,注意把模板的旋转角度改为rad(0)和rad(360)。匹配模板find_shape_model时,由于物品的缺陷使形状有局部的改变,所以要把MinScore设置小一点,否则匹配不到模板。并求得匹配项的坐标。关键的一步,将模板区域仿射变换到匹配成功的区域。由于差集运算是在相同的区域内作用的,所以必须把模板区域转换到匹配项的区域。之后求差集,根据差集部分的面积判断该物品是否有缺陷。
图片集链接:https://pan.baidu.com/s/1x1dCrW17GM0d7v9DZPpQZA
提取码:df5u
这是完整形状的模板:

目标检测204这三个字符可能出现的缺陷
检测结果如下,蓝色区域代表的是缺陷:



Halcon代码如下:
*CSDN->三元荧
*读入标准模板图片(图片名字为standard.bmp)
read_image (Image, 'D:/halcon用到的照片/standard.bmp')
*设置图像窗口
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)
*选中模板区域
gen_rectangle1 (ROI_0, 201, 244, 385, 526)
reduce_domain (Image, ROI_0, ImageReduced)
*选中模板区域数字
threshold (ImageReduced, Regions, 106, 255)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 163.12, 10000)
union1 (SelectedRegions, RegionUnion)
*求模板区域坐标
area_center (RegionUnion, Areastandard, Rowstandard, Columnstandard)
*扣取模板区域图像,创建模板需要的是图像,不是区域
reduce_domain (ImageReduced, RegionUnion, ImageReduced1

本文介绍机器视觉中的缺陷检测方法,包括模板匹配+差分法、Blob+差分法等,并详细解析了Halcon代码实现过程。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



