在制药行业的自动化生产线上,药片分拣和包装是至关重要的环节。传统的人工分拣方式效率低下且容易出错,而基于机器视觉的自动化分拣系统能够显著提升生产效率和准确性。Halcon作为一款强大的机器视觉开发工具,其基于相关性的模板匹配技术特别适合解决这类高精度定位问题。
这个项目的核心目标是利用Halcon的模板匹配算法,实现对传送带上随机分布药片的快速、准确抓取。系统需要满足以下技术要求:
整套系统由以下几个关键组件构成:
核心算法流程分为四个阶段:
创建高质量的匹配模板是成功的关键。我们采用以下优化措施:
halcon复制read_image (Image, 'standard_pill.jpg')
gen_rectangle1 (ROI, 100, 100, 300, 300)
reduce_domain (Image, ROI, ImageReduced)
create_ncc_model (ImageReduced, 'auto', 0, rad(360), 'auto', 'use_polarity', ModelID)
为提高匹配效率,我们采用多级金字塔搜索策略:
匹配参数设置:
halcon复制find_ncc_model (Image, ModelID, rad(-5), rad(10), 0.7, 1, 0.3, 'true', 0, Row, Column, Angle, Score)
采用9点标定法建立相机坐标系与机械臂坐标系的映射关系:
halcon复制* 机械臂坐标
X := [x1,x2,x3,x4,x5,x6,x7,x8,x9]
Y := [y1,y2,y3,y4,y5,y6,y7,y8,y9]
* 图像坐标
U := [u1,u2,u3,u4,u5,u6,u7,u8,u9]
V := [v1,v2,v3,v4,v5,v6,v7,v8,v9]
vector_to_hom_mat2d (U, V, X, Y, HomMat2D)
基于匹配结果生成最优抓取路径:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 匹配率低 | 光照变化 | 增加光源亮度补偿算法 |
| 定位偏差 | 标定误差 | 重新进行手眼标定 |
| 处理速度慢 | 图像过大 | 优化ROI区域设置 |
| 误匹配 | 相似药片 | 增加形状特征验证 |
图像采集优化:
算法加速:
内存管理:
经过3个月的产线测试,系统达到以下性能指标:
系统成功应用于多种药片的分拣场景,包括:
在实施过程中,我们发现药片表面的印刷文字有时会影响匹配效果。通过调整模板区域避开文字部分,匹配稳定性得到显著提升。另一个实用技巧是在传送带两侧加装挡板,可以减少药片堆叠的情况发生。