Qt框架集成Halcon机器视觉库、工业相机等开发环境,利用第三合作方开发的视觉检测模型,对客户生产的键盘的薄膜线路板等产品进行机器视觉方面的检测。具体流程:
1 通过工业相机对流水线上产品有序、持续的拍照取图。
2 通过Halcon机器视觉库、第三合作方开发的视觉模型等,提取图片中的缺陷区域,展示在主窗口
3 保存相关图片,并将检测相关数据保存在数据库,可以根据需要随时将历史数据提取出来展示在主窗口,方便追溯检测结果
过Qt集成工业相机、Halcon视觉库等,对例如键盘的薄膜线路板等产品进行像素级的比对检测。主要流程如下
1 相机取图。集成工业相机相关的SDK,控制相机进行持续、有序的拍照取图
2 建立模板。用相机取到的图或者客户提供的CAD电子图、或者是标准的本地模板图等,利用HalconCpp视觉库提供的画框、裁剪等相关函数,选取图片上特征较为明显的元素画定位框,通过CreateShapeModel或者CreateNccModel等方式生成定位模板,计算并保存相关的仿射变换参数,作为后续检测定位、矫正的依据;然后用画框函数框选图片中的有效检测区域并保存下来作为检测区域参数
3 通过Halcon库中的灰度图转换、二值化、去噪、滤波、特征筛选等等相关的技术,提取图片中的字符区域,并提供操作接口使得客户可以手动添加漏掉的区域和手动删除误判的区域,然后将这些区域保存为建模参数,方便后续检测时过滤掉这部分区域的检测。对一些线路密集或者其他检测参数需要特殊设置的区域,手动框选作为特殊检测区域,并保存为模板参数
4 为提高检测效率,将完整的检测图片分割成若干个小图,方便后续可以对每个小图开启一个线程进行相关检测,并将分割的区域等参数作为建模参数保存起来
5 检测图片预处理,通过相机持续取图给到检测线程,检测线程收到图后,先根据建模时确定的定位框框选的特征区域,通过FindNccModel或者FindShapeModel等方式对需要测试的图片进行定位矫正,然后用建模时保存的参数进行建模类似的操作,确定跟建模模板相同的检测范围、字符蒙版区域、特检区域,然后进行图片膨胀、分割小图等操作,将图片处理成跟建模的模板相同的小图
6 根据分割成的小图数量,对每个小图分别开启一个线程进行检测。将检测小图和对应的模板小图进行像素级别的比对,寻找二者像素差值超过预设的阀值范围的区域,将这些区域作为初检缺陷范围输出,作为后续检测对象。
7 将上一步初检输出的缺陷区域,根据预设的灰度、面积等参数,剔除其中小于预设参数的部分缺陷,并将剩余的缺陷作为最终缺陷输出
8 将最终缺陷展示在主窗口,保存相关检测图片,并将相关检测数据存入数据库备查