杨子钰 周翔 邓琬云 林智桂 陈林
关键词:视觉识别;HALCON;漏装监测;OCR字符识别
0 引言
当前车间流水线生产大多设置有点检工位,可用于沿线监测当前零件是否存在误装漏装,或确认当前零件编码并通过人工扫码来录入系统等。无论何种用途,多设置一个工位就意味着多一份人工成本。为贯彻落实企业智能化发展及降本增效的理念,智能化视觉识别技术的引入能够大大提高生产效率,加快流水线生产节拍,降低人工成本,为企业带来可观的效益。
1 HALCON 软件简介
HALCON 软件是由德国MVtec 公司研发的一款数字图像处理的机器视觉软件,其界面提供了相当全面的视觉处理窗口,不仅提供功能全面的视觉处理库,而且提供了几乎所有最先进和最新的技术算法和算子[1]。该软件有一个图像处理库,其包含了1 000 多个独立的函数,同时加上了底层的数据管理核心,从而拥有数学变换、色彩分析、数学几何变换、校正分类、各类滤波、辨识、分类以及形状搜索等各种图像处理的功能[2]。
HALCON 软件中的HDEVELOP 是能够与用户交互的集程序、分析、设计和编程于一体的图像处理界面。其中,包含了图像窗口、参变量值的变化观察窗口、程序编辑窗口和算子窗口等数种能够让用户直接对平面图像或者影视图像进行编辑和观察变化的窗口[3]。
2 基于HALCON 视觉识别的产线监测
采用HALCON 机器视觉监测的办法,通过产线相机抓取过线样本图片,并通过图像处理模块对已采集的样本进行分析处理后输出检测结果,从而自动判断过线零件是否合格。
2.1 发动机缸盖挺柱漏装监测
发动机缸盖挺柱通过流水线进行人工安装,共计16 根挺柱。由于人工操作的不确定性,容易出现漏装、错装的问题,故需设立点检工位对是否正确安装挺柱进行检查判断。该办法不仅效率低,且人为判断也存在一定的失误率,而采用机器视觉识别的办法能大大提高生产效率及准确率,并且一定程度上减轻人工负担,降低人工成本。
发动机缸盖挺柱安装监测逻辑图如图1 所示。
2.1.1 图像采集模块
为减轻人工成本,取消原有点检工位,采取在流水线上安装摄像头自动抓拍的方式来代替人工目检。摄像头监测成本低、效率高且准确率高,有效避免人工监测疲劳带来的失误错漏。
在产线相机安装固定完成后,将产线生产节拍调整,使得缸盖进入相机点检位时做一个3 s 的停留。此时相机自动抓拍图片进入系统,程序中调用Image Acquisition 选择图像获取途径,选中产线所安装的摄像头。设置完成后系统可自动打开图片捕捉器open_framegrabber 并进行图片抓取grab_image_start,图像抓取成功后进入图像处理单元。
2.1.2 图像处理模块
HALCON 通过图像处理模块对采集到的样本图片进行分析处理。图像处理模块通常包含图像读取、图像分割、形态学处理、特征提取及最后的结果输出,从而最终实现自动监测和自动识别。
2.1.2.1 图像分割
在图像处理模块中,首先需要对图片中的判断区域进行选取。根据缸盖挺柱安装部分的形状位置,采用创建ROI 生成圆的方式,自定义选取判断部分的形状及位置坐标。此办法能更精确地选择不同形状、不同大小的各个区域的判定目标。由于发动机缸盖共有16 个挺柱需要安装,在完成16 个判定区域框选的同时,还需采用concat_obj 命令将每个Region 合并到一起,便于后续进行批量判断处理(图2)。
判断区域选择完成后,通过采用difference 算子实现原图像区域与所选判断区域的边缘提取,获得二者间的差集。然后采用select_shape 算子,选取面积area 作为判断条件,根据发动机缸盖挺柱安装区域的实际面积,选择1000 作为阈值进行判断;选取面积阈值内的区域做为分析对象,运用reduce_domain 算子,将阈值外的区域进行裁剪。裁剪后得到所需判断区域如图3 所示。
2.1.2.2 灰度特征提取
裁剪完成后,对判断区域进行灰度筛选。首先采用var_threshold 算子根据局部的均值和方差二值化,通过灰度均值对比可以得到区域内较暗的部分。再利用intensity 算子计算出灰度的均值和方差,后通过expand_gray_ref 算子填充各区域之间的间隙并分割重叠的区域,最后运用connection 算子将区域进行分割。
分割完成后,利用fill_up 算子对区域中的孔隙进行填充,可形成完整的区域。再次通过面积裁剪,裁掉不符合条件的小块面积,获得最终监测区域如图4 所示。
2.1.3 检测结果输出
通过批量灰度筛选后,可发现是否安装挺柱的灰度阈值存在差异化。通过批量确定判定区域的阈值,结合灰度判定与面积的裁剪,能够判断该区域是否存在漏装现象。最后对是否安装挺柱个数进行计数,对已安装及未安装的数量进行目视化显示。
系统采用count_obj 算子读取筛选后region 的个数。若此时region 个数小于16,则意味着存在漏装现象,有未安装的区域被筛选裁剪,同时输出漏装个数。当系统判断漏装个数大于0 时,则该发动机缸盖存在挺柱漏裝,系统输出NOT OK 并报警;否则系统判断该件合格,输出OK,零件过检。
为便于查看漏装数量,系统还会分别输出该件缸盖挺柱已安装个数及未安装个数。考虑后期统计漏装率及漏装件的过线时间、状态等信息,系统通过使用get_image_time 算子,获得系统监测时间。同时运用write_image 算子,将错误漏装件监测结果以时间命名并归档在目标文件夹中,以便于后续管理。
产线发动机缸盖挺柱漏装测试最终监测结果如图5 所示。
2.2 发动机下线标签检测
在流水线生产过程中,产品下线扫码入库工位,同样可设立摄像机自动视觉识别产品身上标签,自动过线,来取代人工扫码工位。标签识别的流程同样采用摄像机拍照读取标签数据后,将数据进行存储,流程简单操作便利。标签自动识别的逻辑如图6 所示。
算法采用read_ocr_class_mlp 算子读取OCR 分类器,选定判断区域后,运用do_ocr_multi_class_mlp 对区域字符进行识别,最后通过tuple_regexp_match正则表达式提取子字符串。本例中需识别提取的字符如图7 所示,所有贴标下方的字符均为10-xx-xxxxx 的格式,故选择10 为识别的目标。将10 的2 位数字位置固定,识别后方的12 位字符。
3 结束语
随着工业4.0 的到来,智能化生产日益变成现今车间生产的主流选择。机器代替人工,一方面能大大提高车间产线的生产效率,另一方面使得生产过程更加安全可靠。机器视觉逐渐进入人们的视野,通过视觉识别技术,能够大大降低人工目检的失误率。通过视觉监测取代人工工位,贯彻落实降本增效理念的同时,更有利于企业未来长期可持续发展。