鲍江,席曼曼,刘必晨,张佳宁
(重庆光电技术研究所,重庆,400060)
光耦是一种以光为媒介,通过“电-光-电”转换,从而实现信号传输的器件。光耦具有体积小、寿命长、工作温度范围宽、抗干扰能力强等优点[1],在航空航天等领域广泛应用。为了保障高可靠性,光耦需在筛选检验试验后开展多次电参数测试[2],测试时需要将产品编号与测试数据一一对应记录,以便进行产品合格判定及后期状态追溯。
当前,光耦批量化测试时综合考虑测试准确性和效率,首先采用人工排号的方式,将同一批次的产品依次排好顺序存放,例如在一托盘内打印多个产品编号,将光耦产品与编号对应,逐个放在托盘的对应区域,测试时再按照排好的顺序一一测试,最后将产品编号和测试数据人工整合在一起。随着广泛应用,光耦朝着多品种、大批量的方向发展,要求光耦的批量化电参数测试具有较高的准确性和测试效率。测试准确性一方面要求参数测试准确,另一方面则是要求产品的测试参数和产品的编号不交错、不漏记;测试高效率方面则是要求产品测试时每个批次能够以最少的时间完成。对于上述要求,原有测试方案存在如下不足:(1)光耦尺寸较小,人工排号的方式效率极低,且容易出现位置放错的情况;(2)在测试排好序的光耦时,容易造成漏测、错测等情况,发生测试数据与编号错位等问题,导致测试准确率降低。基于此,本文设计了一种编号自动识别的光耦测试系统,实现光耦大批量高效率准确测试。
设计的光耦测试系统主要用于光耦测试时编号自动识别,并自动完成测试数据与编号的合并整理,解决批量测试下人工排号效率低、易出错、占用空间大等问题,缩短光耦整个生产周期,系统主要包含四个方面的设计:硬件设计、软件架构设计、编号识别算法设计以及校验算法设计。
测试系统硬件主要包含光耦测试台与图像采集模块两部分。光耦测试台为集成有测试板卡、信号源、示波器的一体化通用工作台,图像采集模块为包含工业相机、工业镜头、光源、光源控制器以及光学支架的定制模块。两部分通过千兆网线进行信息交互。
结构上,光学支架位于测试台左侧载台处,采用夹持、螺母挤压的方式固定,该方式既方便测试人员右手操作,又有利于根据不同测试要求调整支架位置;工业相机、工业镜头、光源、测试夹具以及产品由上至下位于一条线上,实现图像采集和测试位于同一点;控制光源下方距离测试夹具≥15cm,避免影响取放产品,同时又能够采集清晰的产品编号图像。设计效果如图1 所示。
图1 测试系统硬件效果示意图
其中,设计测试台为通用光耦测试台,重点对图像采集模块进行分解,具体如下:
(1)工业相机
工业相机是采集系统中的一个关键组件,根据其信号类型、芯片类型、芯片尺寸、分辨率、图像帧率、数据接口和镜头接口等在不同使用场景具有不同的配置。光耦产品尺寸在几毫米到几厘米之间,产品编号单个字符尺寸最小小于1.5mm×1.5mm,编号和背景对比较大,测试期间产品处于静止状态,因此,对相机的选择主要在于使用方便,分辨率达到识别要求,且性价比高,在此基础上选择一款Baumer 相机,具体参数如下:
采用1/2.5〞Aptina MT9P031 CMOS 传感器;分辨率:2592×1944;帧速度:14fps;数据接口:GiGE vision;镜头接口:C Mount。
(2)工业镜头
在识别系统中,工业镜头与光源、相机一起构成一个完整的图像采集系统,受到整个系统要求的制约,由焦距、光圈、尺寸、接口等参数共同决定。本系统中,为了硬件采集系统不影响测试操作,采集设备离产品测试夹具位置高度至少15 厘米,且要求镜头畸变小,能够适应相机的要求,通过实际测试选择一款VST 工业镜头,具体参数如下:
像面尺寸:2/3〞;焦距:35mm;光圈:F1.8~Close;聚焦范围:0.25m~∞;调焦/光圈:手动;畸变:-0.12%;接口:C 口;外形尺寸:Φ295mm×33.5mm。
(3)光源
为了提升采集系统采集的图像效果,降低环境光照的干扰,需要采用光源进行效果增强。光耦产品多为方形结构,光源必须能够使得光照均匀,且光源散发的光不能够对操作人员造成伤害,在此基础上设计采用环形白光光源,具体参数如下:
颜色:白色;电压:DC 24V;功率:6.2W;外径:90mm。
(4)光源控制器
为了使光源能够随环境调节,使识别系统更好地工作,需要使用光源控制器,系统采用如下控制器:
驱动方式:恒压;调节方式:旋钮调节;输入电压:AC110-240V 50/60Hz;通道:2T;最大输出电流:单通道1A。
(5)光学支架
光学支架作为支撑其他采集硬件的重要部分,主要技术要求如下:
光学支架外观简洁;可上下移动或随意旋转相机和光源;重量轻,便于携带;具有使用方便,易于安装、操作;采用铝合金材质,坚固耐用。
通常,光耦测试台软件由多种开发平台如delphi、c++、c#等开发[3],要实现识别、测试一体化,就需在不同平台下单独开发识别软硬件,并将识别部分与测试部分整合在一起,该方式耗时耗力,实现难度大。通过设计一种识别动态库调用方法,将相机控制及图像识别处理部分算法[4]以动态库的形式封装[5],配以识别校验算法,以C++实现,基于设计好的动态库接口,可被不同测试平台直接调用。该方法将采集硬件和识别处理算法模块化,对于不同测试平台和不同厂家,只需按照动态库输入输出接口直接调用,无需跨专业进行识别部分二次开发,极大地降低了开发难度,提高了效率。
基于此,设计了一种利用动态库调用实现跨平台识别、测试一体化的软件架构。系统由三个层次构成,包括由测试台软件形成的开发应用层,由相机控制算法、图像识别处理算法及资源管理构成的动态库接口层,以及相机单元构成的识别模块层,如图2 所示。
图2 软件架构示意图
软件功能上,测试台软件集成动态库,测试时,测试台发出测试命令,控制动态库采集前端相机图像,并完成编号识别,返回测试台,最后实现编号与测试数据同时输出,具体如图3 所示。
图3 软件功能示意图
产品编号识别算法是光耦自动测试系统的核心,只有保证识别算法的高质量,才能保证测试系统的良好效果。研究如何实现高精度的图像自动识别算法,是系统整个工作中最复杂,也是最重要的工作之一。
识别过程中,通过图像采集模块获取到需要识别的产品编号图像,并将图像信息传回测试台,效果如图4 所示。
图4 产品原始编号效果图
对于获取的原始图像,提取出其中的编号部分并将其自动识别出来是算法的最终目的。系统识别时,对要识别的编号图像,进行了图像产品定位、图像编号定位、图像编号分割、图像编号识别以及编号输出等操作,从而实现编号自动识别的目的,主要流程如图5 所示。
图5 图像识别算法主要流程图
(1)图像产品定位
首先从图像采集模块上采集到图像,对得到的图像进行大津法二值化操作,将属于同一个连通区域的像素点坐标分别存入不同的集合,对于每一个集合,可以计算出它们的外轮廓(轮廓里的轮廓此时不再计算),求出轮廓的外接矩形,在所有的矩形中,选取矩形面积最大的区域即为产品区域。通过以上多步实现了图像中产品的定位,如图6 所示。
图6 图像产品定位效果图
(2)图像编号定位
将原始图像按第一步得到的区域进行裁剪,对该图像重新进行二值化。因某些产品的字符不连续,以及某些小面积噪声,所以算法中用一个图像的“闭”操作,即先腐蚀后膨胀对图像进行形态学处理。将图像的所有连通区域分别存在不同的集合里,求出它们的外轮廓,计算出它们的外接矩形,将一些明显不符合要求的矩形剔除掉。按照矩形左上角点的Y 值大小,对所有矩形进行排序。遍历所有的矩形,将Y 值在一定距离内的矩形放入同一集合。对所有的集合元素即每个矩形按左上角点X值的大小进行排序,将相邻的矩形合并,距离间隔较大的矩形则剔除。对于得到的矩形,选取矩形纵向的1/4,1/2,3/4 处进行横向的像素跳变分析,分别记录三行的跳变次数。其中,实际情况下,光耦产品每行的字符至少有5 个,那么一行的跳变次数至少会大于10,检测得到的三行的跳变次数是否大于10,如果有两行不满足,那么剔除该矩形。对于剔除后的矩形,对相应图像区域进行形状因子判定,如果不满足条件,也将剔除该矩形。由于所需的编号为Y 值最低的矩形,所以在上述操作得到的所有矩形中求出Y 值最小的矩形即可。如图7 所示。
图7 产品图像编号定位效果图
通过上述多步实现了产品编号的定位,再从第一步得到的产品图像中将该区域裁剪出来,对该图像重新进行二值化后得到图8 所示效果。
图8 编号图像二值化效果图
(3)图像编号分割
实际情况下,光耦产品编号字体共3 种大小,高和宽之比分别为11:5,5:5,7:5,在编号定位后已经得到了矩形的高度,根据比值可以组合成3 种不同大小的矩形。从小到大的使用每种矩形从左到右去寻找图中的强种子。所谓强种子,就是当对已经训练好的神经网络输入已经归一化后的矩形时,会返回属于各个类的概率,当概率大于0.9 时,就认为是强种子。当检测到有两个强种子出现时,我们就使用这种大小的矩形。
将已经检测到的强种子区域全部涂黑,再依次向左右检测,直至全部检测完毕。最后会得到若干个强种子区域,对于间隔较大的两个强种子,以及个数未满的强种子,根据产品编号字符个数进行补齐。
归一化后的图像如图9 所示。
图9 编号图像归一化后效果图
图10 校验算法逻辑示意图
通过上述方式,可以对定位的编号图像实现分割。
(4)图像编号识别
对于分割好的单个字符图像,系统采用神经网络训练识别的方式完成对字符的识别工作。进行BP 神经网络识别时,输入的特征为120 维,10*10 的中间区域像素加上水平和竖直的投影。通过该方式,可以较好地完成对编号图像的自动识别。
当完成上述各步骤后,即可得到待识别产品的编号信息。将该编号信息通过动态库中相应算法进行处理,最终回传给测试台,实现产品编号信息和测试信息的自动整合。
随着图像处理技术不断进步,编号识别准确率不断提高,但仍然难以做到100%准确,基于此,系统引入编号校验算法,保证识别准确性。校验算法采用两种手段:(1)每批次测试前,人工录入一次本批次产品的编号规则;(2)在动态库模块中,将每批次识别的产品图像及编号维护一个数据库。
产品编号识别时,如果识别出的产品编号不满足编号规则,则展示待测产品的图像信息,根据图像信息人工判断并录入编号作为待测产品编号;如果识别出的产品编号满足编号规则,则查询当前识别的产品编号是否与数据库存储的已有编号重复,不重复则判定识别的编号正确,返回识别结果;如果当前识别的产品编号与数据库中存储的某一产品编号重复,则展示待测光耦的图像信息和已存储的重复编号产品的图像信息,人工进行判断并录入正确的产品编号,然后更新数据库中两只产品的编号信息及图像信息。
采用上述设计方案,完成了编号自动识别的光耦测试系统的软硬件制作,实物如图11 所示。
图11 测试系统实物效果图
选取尺寸从7mm×12mm×2.7mm 到10mm×19mm×3.8mm 的A、B、C、D 四款光耦产品进行测试,系统识别效果如表1 所示。
表1 测试系统识别效果
选取A 型产品1000 只、B 型产品2000 只,分别采用原有测试方式和新设计的编号自动识别光耦测试系统测试的方式进行测试,具体测试情况如表2 所示。
表2 测试系统测试效果
从表2 可以看出,设计的光耦测试系统能够兼容不同的软件开发平台,单批次产品测试耗时提升44.4%以上,在批次数量增大的情况下,达到了100%的效率提升,在测试准确性方面,使用带校验算法的系统,测试准确率达到100%,满足高可靠测试要求,表明设计的系统能够满足生产需要。
本文设计的编号自动识别的光耦测试系统用于解决光耦测试过程产品编号与测试数据一一对应记录低效率、易出错的问题,系统设计了硬件模块、软件架构、编号识别算法以及检验算法,根据设计制作的测试系统实物通过运行实测,系统能够明显提升测试效率,提高测试准确率,有利于大批量光耦测试。