文献标识码: A
DOI:10.16157/j.issn.0258-7998.190875
中文引用格式: 许艳,孟令军,王志国. 基于树莓派的元器件检测系统设计[J].电子技术应用,2019,45(11):63-67,71.
英文引用格式: Xu Yan,Meng Lingjun,Wang Zhiguo. Design of component detection system based on the Rasspberry Pi[J]. Application of Electronic Technique,2019,45(11):63-67,71.
0 引言
随着电子产品行业发展,PCB板在电子产品中发挥着重要的作用[1]。许多公司引进了流水线式[2]的贴片机、焊接机,替代了大部分的传统人工贴片与焊接工作[3],但是元器件贴片错误还是时有发生,尤其对于人工贴片。由于人的视觉疲劳、身心劳累等原因,都可能造成元器件错误、位置不匹配等问题[4],因此,对于PCB元器件的检测是必不可少的[5]。系统采用树莓派作为硬件平台,具有成本低廉,操作简便的特点,且安装完成的树莓派系统带有Python开发平台,缩短系统开发时间、节约系统开发成本。
1 总体方案设计
系统以树莓派作为硬件平台,采集PCB电路板图像,通过数字图像处理技术对采集的图象进行预处理;然后读取PCB坐标文件,根据元器件的像素坐标、尺寸和旋转角度即可自动完成模板库的制作;最后提取元器件的角点信息与模板角点进行图像匹配[6],确定是否为正确的元器件;另外本文还提出了采用图像分割的方法对电容表面文字进行提取然后识别,正确识别了电容表面字符。系统总体框图如图1所示。
2 元器件检测系统实现
2.1 图像预处理模块
图像处理算法通常对采集的图像要求较高,质量好的图像可以减少图像处理的时间,提高图像处理效率。本文用到的图像预处理算法主要包括:图像颜色空间转换和二值化[7]。
RGB[8]颜色空间是依据人的眼睛对于外界色彩的感知建立的基础彩色模型,其中红色的亮度值用R表示、绿色的亮度值用G表示、蓝色的亮度值用B表示,其模型如图2(a)所示。在RGB颜色空间中,机器显示的图像相当于是在黑色底板上叠加红、绿、蓝三种色彩,其中三种色彩值都在0~255中间变化,如果在一幅图像上,三种色彩的叠加值都是255,则该图像为纯白色。
HSV色彩空间主要包括色调(Hue)、饱和度(Saturation)和明度(Value),其模型如图2(b)所示,它是根据人眼对颜色的直观性来定的。与RGB组成的色彩空间相比,HSV色彩空间能够显示出更接近于人的眼睛所感知的色彩,所以在数字图像处理领域HSV色彩空间的应用范围更广泛。
根据所得到的图像可以很容易地建立图像的RGB颜色模型,然后需要完成RGB与HSV两种模型之间的转换。RGB颜色空间某像素点中红用VR表示、绿用VG表示、蓝用VB表示,取三者中的最大值记为MAX=max{VR,VG,VB},取三者中的最小值记为MIN=min{VR,VG,VB},从而可得两种颜色空间的颜色模型转换公式为:
图像的二值化是目标物体抠取、特征提取的重要步骤,图像的二值化主要是将灰度图变换成二值图,使图像只显示出非黑即白的效果。
2.2 PCB图像定位
对于采集的图像而言,首先应当确定定位点的位置。一般情况下设定2~4个定位点,精确查找定位点是进行图像处理的前提和保证。本文中设计的定位点为直径为3 mm的通孔,理论上来看,像素距离和实际物理尺寸可以实现精确定位,但是在设计时必须考虑检测误差。本文采用霍夫变换检测圆的方法进行定位点的确定[9]。定位点检测流程图如图3所示。
系统对图像进行处理的前提条件是准确定位图像的位置信息,本文采用霍夫圆检测方法进行检测[10],首先查找待测图像中圆的圆心位置和半径,定位点周围干扰少或者没有干扰,且该定位点半径相对较大、易识别。为使系统编程简化,系统选用两个定位点,使用手动选择的方式确定定位点的具体位置,避免了在定位点确定时误选或者多选等错误的出现。同一批次的产品,定位点一旦确定即可不用更改。因此,定位点的位置只需要在模板制作时进行手动选择一次,系统便会自动生成数据库进行存储定位点的位置信息。在进行对待测板的定位时,只需要调用数据库中定位点的位置信息,然后在这个位置周围查找定位点即可确定待测板上的定位点。
在进行霍夫圆检测之前应当对图像进行预处理操作,使用手动添加蒙版的方法屏蔽输入图像可能影响处理结果的部分图像,输入图像和添加蒙版后的图像如图4所示。
对输入的图像完成手动添加蒙版后,开始进行图像的灰度化处理,并对图像使用霍夫圆检测方法得到定位点处圆孔的圆心坐标和半径。处理结果如图5所示。
从程序运行效率来看,使用手动添加蒙版的方法可以大大节约系统的运行时间,且运行结果与预期相符性较好。该程序正确检测到了定位点的位置,只需要把定位点处圆心的坐标和半径都存储硬盘即可,可以方便系统后续的模板制作和元器件检测的正常运行。
2.3 图像ROI框制作
在进行元器件检测之前,需要制作ROI框来确定元器件的位置,确保元器件检测过程中对应位置的元器件都得到有效的检测。目前ROI框的生成基本都是人工手动选取,这极大地限制了设备的运行效率。为提高运算效率,本文采用直接读取PCB元器件坐标文件的方式对元器件进行定位,并结合元器件的尺寸信息确定该元器件对应的ROI框。
使用Altium Designer软件直接输出PCB元器件坐标文件和对应的封装报告,根据在PCB图像配准中得到的像素长度与物理长度的关系求出元器件在像素坐标系中的位置、封装尺寸等信息。元器件封装报告、元器件坐标文件和元器件封装尺寸文件如图6~图8所示。
系统的ROI框流程图如图9所示,在编程完成后对PCB元器件图像进行测试,该系统可以较好地生成ROI框,其效果如图10所示。图10(a)为原始图像,图10(b)为程序运行后得到的一个电容的ROI框,图中为了显示图像的边界在外围添加了一圈黑色边框。在后续进行元器件提取时只需要用ROI框图对原图进行累加,超出255部分直接设置为255即可得到对应的单个元器件图像。
该方法省去了人工逐个选取ROI的操作步骤,对系统的ROI框生成只需要运行生成ROI框生成程序即可完成,不需要操作人员对程序的操作流程有十分详细的了解。
2.4 元器件检测算法
SIFT全称是尺度不变特征变换算法,基于SIFT特征点的图像匹配算法能够解决两张图片同一个物体有位移、转动、仿射变换情形下图像的匹配问题,具有很好的匹配效果。SIFT特征点检测是依据目标物的部分特征关键点,因此与目标物体图像的大小和是否旋转无关,图像中光线强度、噪声或者视角的改变对SIFT特征检测结果的影响并不是很明显。该算法以图像的特征信息进行提取、匹配,有效地降低了计算量。因此,SIFT算法具有较为广阔的应用空间。
SIFT提取图像特征点大致可分为4个步骤。首先进行尺度空间极值检测,然后定位特征点,最后确定特征点的方向以及特征点描述子[10]。
图11所示为生成特征向量的过程,图中选取的窗口大小为8×8,最中间的点为需要描述的特征点,周围的小方块表示该点对应的邻近像素点。图10(a)中众多的小箭头表示对应的像素点的梯度方向,梯度模值的大小由箭头的长度决定。依据图10(a)中圆的范围进行高斯加权运算,从而得到图10(b)。图10(b)中每个方格中的梯度方向和梯度模值为图10(a)中8个像素点的累加值,得到这4个累加点合成了一个关键点的描述,这就形成了一个32=4×8维度的SIFT特征向量。该方法通过邻域方向信息整合的过程提高了SIFT算法抵抗噪声的能力[11],更好地降低了定位误差带来错误匹配的可能性。
3 图像匹配测试
在完成SIFT算法提取特征点的过程后,使用上述算法进行图像的匹配测试,通过检测图像特征点的数量和匹配耗时进行测试。分别对图12的三种元器件进行测试,结果如图13~图15所示。观察测试结果汇总可以看出SIFT算法对图像特征点检测的数量随着图像的增大而增长[12],对物体的位移、仿射变换具有一定的鲁棒性,稳定性高,适用于电子元器件的匹配性测试。
4 贴片极性电容字符识别
贴片电容的字符识别是基于Tesseract-OCR框架进行的,它可以对图片中的文字进行自动分析识别,并能够提取出来。Tesseract-OCR框架虽然可以自动识别图片中的字符,但是图片中文字和背景必须满足要求才能识别文字,否则结果只会是无法识别。所以对于贴片电容的图片不可以直接调用Tesseract-OCR框架进行字符的识别,必须先对贴片电容的字符图片进行提取,然后合成为规则的图片再调用Tesseract-OCR框架进行字符识别。贴片电解电容实物图片如图16所示。
在进行贴片电容表面二值图像腐蚀前后的减法操作后,可以得到包含电容表面字符和外轮廓的二值图,如图17所示。
对字符二值图像进行高斯滤波和Canny边缘检测,并提取图像的边缘信息,通过面积计算公式过滤面积过小和过大的边缘连通域,结果如图18所示。图18(a)是所有边缘检测出的连通区域效果图,图18(b)是经过连通区域面积过滤算法后所得的字符边缘图。
将得到的字符连通区域图进行图像分割处理,分割区域依据每个字符连通区域的外接矩形进行确定,分割顺序是从最左上角侧开始,逐行扫描,直到分割完成最后一个字符,并把分割后的字符重新组合成一幅图片,重组图像效果图如图19(a)所示。对图(a)中的字符图片使用Tesseract-OCR框架进行字符识别可以得到图19(b)的效果,通过与预设的电容型号对比可知,该电容正确无误。
5 结论
该系统采用树莓派作为硬件平台,体积小、成本低,操作简便,缩短了系统开发时间。本文设计完成了图像的采集存储以及预处理,完成了模板库的制作;通过手动添加蒙版的方法提高运行效率,使用霍夫变换检测图像定位点对PCB图像进行定位;介绍了图像特征点检测的SIFT算法,用特征点匹配的方法判断元器件的正误;另外还通过图像分割的方法完成了电容表面字符的识别。经过多次测试,系统能够实现了元器件正误的自动检测及表面字符的识别。
参考文献
[1] 王唯康,叶鹏程.高度集成化电子产品中PCB的制造工艺探究[J].科学技术创新,2018(30):178-179.
[2] 刘喜科,戴晖.多层HDI板叠孔制造工艺研究[J].印制电路信息,2013(S1):282-289.
[3] 亢宇欣,谌贵辉,张三炳.基于Halcon的贴片电阻方向检测系统[J].包装工程,2017(23):126-130.
[4] 李天宇.基于机器视觉的PCB元器件在线检测[D].杭州:浙江理工大学,2018.
[5] 闫梦涛,苏玮,冉海周.基于机器视觉的PCBA元器件实时检测系统[J].无线电工程,2018,48(4):272-277.
[6] 赵翔宇,周亚同,何峰,等.分层提取匹配印刷电路板元器件缺陷检测[J].仪表技术与传感器,2018(8):84-89.
[7] 王旭峰,董新民.一种基于HSV色彩空间的加油锥套特征提取方法[J].计算机应用与软件,2014,31(6):192-194.
[8] Ren Xiaofeng,Bo Liefeng,FOX D.RGB-(D) scene labeling:Features and algorithms[J].2012 IEEE Conference on Computer Vison and Pattern Recognition,2012.
[9] DJEKOUNE A O,MESSAOUDI K,AMARA K.Incremental circle hough transform: An improved method for circle detection[J].Optik-International Journal for Light and Electron Optics,2017,133:17-31.
[10] 叶礼劼.图像特征点提取与匹配算法的研究[D].阜新:辽宁工程技术大学,2017.
[11] 完文韬,杨成禹.改进的SIFT算法在图像特征点匹配中的应用[J].长春理工大学学报(自然科学版),2018,41(1):44-47,52.
[12] 张晨光,周诠,回征.基于SIFT特征点检测的低复杂度图像配准算法[J].扬州大学学报(自然科学版),2018,21(4):52-56.
作者信息:
许 艳1,孟令军1,王志国2
(1.中北大学 仪器与电子学院,山西 太原030051;2.上海航天电子技术研究所,上海201109)