halcon例程解析:检查不同药片——check_blister_mixed
原文介绍:
This example demonstrates an application from the pharmaceutical industry. The task is to check the content of manually filled blisters. The first image (reference) shows the combination, that is requested. The subsequent images are then checked for this setup drawn from the reference image. To perform this task we use the gmm classifier, which will be trained with the reference image in the beginning and is then used to classify the different pill types in subsequent blister images.
这个例子演示了一个制药行业的应用程序。任务是检查手工填充的水泡的内容。第一个图像(参考)显示了所请求的组合。随后的图像将被检查为这个从参考图像绘制的设置。为了完成这项任务,我们使用gmm分类器,在开始时会使用参考图像进行训练,然后用于在随后的水泡图像中分类不同类型的药丸。
1. 效果展示
利用一个标准图像做模板,检测药片的有无、错误
模板图与检测图


结果

2. 思路分析
观察模板图像,可知共有三个类别:第一排一组;第二、三排一组;第四、五排一组
这里我们用高斯混合模型来做分类器(GMM)
- 利用参考图建立药片位置及分类模型
- 分割出前景区域(不同于上一篇,这里不需要先对模板区域做矫正)
- 确定目标区域,并计算得到其中心与偏转角,用于对检测图像进行刚性矫正
- 将三个类别的区域区分出来,得到三个区域,每个区域对应一个类别
- 根据三个类别的颜色差别将其区别开,分为三类
- 训练高斯混合分类器(GMM)
- 矫正检测图像,确定检测区域
- 分割出前景区域
- 计算其旋转、中心
- 利用参考图的中心与偏角对检测区域进行刚性变换
- 对检测区域进行定性分析,分类
- 使用训练好的GMM分类器进行分类,分类后得到三个类别分别对应的区域
- 逐一取分类后的三个通道之一与模板定好的区域做与,根据面积和宽两个参数分割
- 将三个类别结果进行统计,并与模板区域取差,即得到结果
- 对小区域进行分析,根据小区域的方差确定是缺失还是错误
2.1 利用参考图建立药片位置及分类模型
* 进行阈值分割,得到前景区域
threshold (Image, Region, 90, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 5000, 999999)
shape_trans (SelectedRegions, Blister, 'convex')
* 生成药片区域,这个数值是自己判断的
gen_empty_region (Chambers)
for I := 0 to 4 by 1
Row := 107 + I * 70
for J := 0 to 2 by 1
Column := 177 + J * 150
gen_rectangle2 (Rectangle, Row, Column, 0, 64, 30)
concat_obj (Chambers, Rectangle, Chambers)
endfor
endfor
difference (Blister, Chambers, Pattern)
union1 (Chambers, ChambersUnion)
* 计算偏角和中心,这用于对后边待检测图像进行矫正
orientation_region (Blister, PhiRef)
PhiRef := rad(180) + PhiRef
area_center (Blister, Area, RowRef, ColumnRef)
*
*
* +++ Extract pattern for classification +++
* 将模板图像分为三类,首先手动区分,1——145行 145——270行 270——390行
select_shape (Chambers, PillType1, 'row', 'and', 1, 145)
union1 (PillType1, PillType1)
select_shape (Chambers, PillType2, 'row', 'and', 145, 270)
uni

该博文介绍了如何利用Halcon的GMM分类器在制药行业中检查手工填充的水泡内容。通过参考图建立药片位置模型,对图像进行矫正和分类,识别不同颜色的药片。首先,根据模板图像创建分类模型,然后对检测图像进行相同步骤的预处理和矫正,最后使用训练好的GMM分类器进行分类并分析结果,确定缺失或错误的药片。此方法能有效检测药片的正确性和完整性。
最低0.47元/天 解锁文章
598





