项辉宇,刘倩倩,黄佳军,孙 超
(北京工商大学 材料与机械工程学院;北京工商大学中国食品安全研究中心,北京 100037)
工业生产中,许多产品都包含有字符信息,而大量的自动化印刷导致字符出现印刷缺陷,进而降低产品的合格率,影响生产效率,因此控制字符的不合格率成为了急待解决的问题。流水线生产过程中,仅仅靠人工检测不仅费时费力,而且很多细小的瑕疵不容易被发现。全自动化式的生产方式已逐渐成为主流,因此实现字符识别及缺陷检测已成为必然的发展趋势。字符缺陷主要是字符印刷不清晰,字符漏印,字符相对位置不合格等,本实验实现了从图像的获取到判断字符合格与否的全过程自动化。
基于机器视觉的字符识别及检测需要对字符进行采集和处理,本实验采用的检测系统如图1 所示。检测系统包括摄像机、光源、图像采集卡、图像处理单元、旋转试验台。
图1 检测系统Fig.1 Testing system
本实验采用的旋转试验台系统包括单片机、驱动器、步进电机、霍尔传感器。利用单片机产生脉冲,经过驱动器的分配和方向控制,控制步进电机带动转盘运转,可以实现步进电机的正转、反转、固定角度的转动。本实验利用VC++编程上位机界面控制步进电机的转动。另外使用霍尔传感器可以使实验平台转到某一位置时触发摄像机拍照,本实验是利用霍尔开关触发摄像机采集图像,图像显示在HALCON 软件的图像窗口。
HALCON 是一功能强大的机器视觉软件,它提供了一个全面的视觉处理库,包含了所有标准和高级的图像处理方法,覆盖了从不同的硬件采集图像到高级的模式匹配算法;提供了机器视觉应用程序中通常所需要的一些工具,如文件处理、数据分析、算法操作或分类等。本文利用HALCON 机器视觉软件来实现字符的识别及缺陷检测。在线检测时,霍尔开关产生触发信号触发摄像机抓取图像,通过相机USB 接口传输到HALCON 软件中,利用软件中的算子功能对图像进行相应的处理,判别图像是否合格。
对于字符的识别,最有效地方法是模板匹配。首先将标准图像中的标准字符选为模板,利用模板的一些特征作为筛选条件和待检测的图像进行匹配。
将模板图像中模板字符的灰度信息存储在模板里,比较待检图像与模板的灰度信息,根据两者的相似度来判别是否匹配。但是基于灰度值的匹配只能进行单模板匹配,一次只能识别一个对象,而且容易受到光照、噪声等因素的干扰。信息匹配的鲁棒性不高。
将模板图像中的模板字符的轮廓形状特征存储在模板里,比较待检图像与模板的形状特征,根据两者的相似度来判别是否匹配。此种匹配技术抗光照条件干扰的能力强,能有效地检测出偏移、旋转、缩放、部分覆盖的目标对象,一个模板可以包含多个对象实现多模板匹配,但是无法检测字符间的相对位置,在一些字符相对位置要求高的应用中无法准确的检测,如计算器、手机、键盘上的字符等。
基于组件的匹配原理与形状匹配相同,在对于一个包含多个字符的目标对象的检测上,此匹配技术将此种目标对象作为一个大模板,训练模板时允许各个字符间有相对的位置偏移、旋转。在模板匹配过程中只需搜索到一个字符,根据模板中字符间的相对位置可以减少其他字符的搜索范围,因此匹配速度较快。匹配结果为待检对象各个字符的相对位置坐标、待检字符相对于模板字符的旋转角度及字符的相似度等信息。
本次实验检测的是字符的缺失及相对位置是否正确,基于上述三种模板匹配的特点,本实验选择的是基于组件的模板匹配。
字符识别及检测的流程图图2 所示。一般在检测的物体上有标准的对象存在,将此对象选作为匹配的基准。本实验选择 ‘0’ 作为匹配的基准、将3、4、5、9、A、F 六个字符作为待检测对象,实现字符漏印,错位两方面的检测。
图2 检测流程图Fig.2 Testing flow chart
图3 标准模板图像Fig.3 Standard template
首先采集一幅标准的模板图像如图3 所示。利用HALCON 算子gen_rectangle1 选择目标对象,并把对象添加到ComponentRegions 中,如图4 所示。若模板中的字符可以有相对的偏移或旋转,则需要通过train_model_components 对不同位置的模板进行训练,通过训练的组件模板几乎包含所有的组元相对位置,利用get_component_relations 算子可以观察到组元位置、组元间相对位置。由于本实验中待检测的字符间相对位置关系已经确定,因此不需要对多个模板进行训练。create_component_model (ModelImage, ComponentRegions:VariationRow,VariationColumn,VariationAngle, AngleStart, AngleExtent,ContrastLowComp, ContrastHighComp, MinSizeComp,Min-ContrastComp,MinScoreComp,NumLevelsComp, AngleStep-Comp,OptimizationComp,MetricComp,PregenerationComp:ComponentModelID,RootRanking)算子将ComponentRegions中的目标对象创建成模板。由于待检物体的放置,摄像机位姿等因素的影响,需要对算子中的VariationRow,VariationColumn, VariationAngle 进行设置。经过创建模板产生RootRanking(根组元索引)用于模板匹配。最后利用算子get_component_model_tree 得出模板关系和模板搜索树,如图5 所示。
图4 Component regionsFig.4 Component regions
图5 模板关系和搜索树Fig.5 Template relations and search tree
利用霍尔传感器可以实现摄像机在同一位置抓取图像。图像传输至HALCON 软件中,进行模板匹配,算子find_component_model 实现模板的搜索过程。由create_component_model 产生的RootRanking 被用于模板的搜索过程,搜索过程是先在待检图像中找到RootRanking,然后根据模板中的组字符间的相对位置一一搜索其他的组件(中间组件),可以通过设置使用其中一个RootRanking 使用固定的搜索路线来检测。在一些应用中根组件有可能丢失,可以对find_component_mode 算子中的If-RootNotFound 进行设置解决根组件丢失问题。本实验中‘0’ 为匹配基准,因此选择 ‘0’ 为RootRanking,由可知搜索路径为0-3-5-4-9-F-A。若3—F 中的任一中间组件丢失造成无法对其他组件进行搜索,可以对算子find_component_mode 中 的IfComponentNotFound 进行设置来动态适应搜索顺序。利用算子get_found_component_model 获得检测到的组元,通过dev_display(FoundComponents)将检测到的组件显示出来。最后根据一定的检测条件判断检测对象是否合格,本实验使用的筛选条件是组件是否被找到即ScoreCompInst [i] 是否为0.0,若ScoreCompInst [i] =0.0 则说明第i 个组件丢失,产品字符漏印,则该产品不合格。
该实验的检测结果如图6 所示。结果中的1-7 即搜索字符的顺序,分别代表0-3-5-4-9-F-A。
图6 检测结果Fig.6 Test Results
从结果中可以看出: ①没有被设为检测模板的字符即使有错误也不能被检测出来;②对于字符漏印的产品,可以被准确的检测出来,并且其他字符也能够准确提取并显示;③对于字符顺序有错的产品也能够检测出来。
实验验证基于组件的匹配可以较好地应用到字符的检测中。
实验结果表明,本文提出的基于HALCON 的字符组件匹配技术可以准确的实现字符识别及缺陷检测。与传统的人工检测方法相比较,基于组件的缺陷检测使生产线上产品的质量检测有了进一步的进展。随着工业自动化生产的发展,机器视觉在工业上的应用将得到更广泛的应用和发展。然而试验台的转速对摄像机的图像抓取质量会有较大的影响,本实验中试验台的速度较低,在高速下的字符检测还有待进一步的研究。
[1] Carsten Steger,Markus Ulrich,Christian Wiedemanm.机器视觉算法与应用[M].北京:清华大学出版社,2008.
[2] 张琼,沈海宏,沈民奋,刘长春.基于HALCON 的无印记印刷品图像质量检测[J].汕头大学学报,2011.
[3] 黄建荣,范彦斌,叶邦彦.基于Halcon 的STM-PCB 元件缺陷检测[J].佛山科学技术学院学报(自然科学版),2008.
[4] 陈涛.基于HALCON 的表面贴装电子组件检测系统的研发[D].广东:华南理工大学,2011.
[5] 李志强,项辉宇.OCR 在印刷字符实时检测系统中的应用[J].机电产品开发与创新,2013,5.
[6] 孙怀远,廖跃华.基于HALCON 的药品包装瓶批号检测技术研究[J].包装工程,2008,4.