基于图像识别的PCB板定位支撑系统
2021-01-27李致金钱百青
李致金,钱百青,顾 鹏,武 鹏,张 亮
(南京信息工程大学电子与信息工程学院,江苏南京 210044)
0 引言
在PCB板的制作流程中,为了对PCB板进行焊接,需将其固定,尤其是双面板焊接时,通常使用多个支撑柱将其固定,但是对于支撑柱的固定位置有要求,不可以顶住PCB板有元器件的位置,否则容易压损元器件,所以不同型号的PCB板支撑柱放置的位置不同。现在市场上有如下常见的支撑方法:第一种通过磁性顶针进行支撑,需要人为确定支撑点,放置磁性顶针,利用磁性吸附进行固定。第二种按不同的PCB板配置相应的支撑治具。第三种采用万能软PIN支撑。第一种方法通过人为方式插入顶针,换机种时操作过慢,难以满足生产线快速生产的要求,而且没有防呆机制,很容易产生人为错误。第二种方法不具有普适性,每个机种都配置对应支撑治具,不但显著增加了成本,而且更换支撑治具时非常繁琐。第三种方法由于是软PIN不考虑是否顶住元器件,当贴片气压过大时,软PIN的回弹力会损伤元器件[1-2]。为了解决以上问题,设计了基于图像识别的PCB板定位支撑系统[3],通过摄像头采集图像信息,经由上位机进行图像预处理、图像分割、模板匹配等一系列的处理后,将支撑柱的坐标数据通过串口传递给STM32单片机,单片机通过控制TFTLCD以及点亮目标坐标指示灯,引导人工完成插入支撑柱的工作,此过程中有红外传感以及声光报警防呆。在插入支撑柱的过程中,TFTLCD显示操作过程中的状态,并将状态反馈给上位机进行实时监控,具有很好的人机交互功能。
1 总体框架设计
本文的总体框图主要包括图像采集模块、上位机操作界面、下位机处理模块、电源模块、显示模块以及防呆模块。通过图像采集模块采集PCB样板图像,经上位机图像识别后输出支撑柱坐标给下位机模块处理,下位机处理模块通过显示模块和指示灯引导人工插入支撑柱,并且通过防呆模块确保人工执行准确性,并将工作状态逐级反馈给下位机、上位机。整体结构框图如图1所示。
图1 整体结构框图
2 硬件设计
2.1 处理器模块
本文的处理器模块为STM32F103系列芯片,其内核为ARM的32位Cortex-M3,CPU的最大时钟频率为72 MHz[4],资源丰富并且性能优越。
2.2 电源模块
电源模块主要为处理器模块、防呆模块以及显示模块供电,通过AMS117-3.3V芯片将输入的5 V电压降至3.3 V,输入端串联一个二极管防止电流倒灌损坏电路,电源电路如图2所示。
图2 电源电路图
2.3 图像采集模块
本文图像采集模块选用感光像素为640像素×480像素的OV7670数字摄像头,图像输出格式为RGB,图像采集速率高达30帧/s,内含数字处理器,可以对图像进行边缘锐化、降噪、镜头补偿等,提高图像的质量,此外其还具有灵敏度高、体积小等特点。
2.4 防呆模块
防呆模块主要包括矩阵式红外传感器模块和声光报警系统,矩阵式红外传感器中单个电路如图3所示。初始状态时P1输出低电平,P2输出高电平,P3为输入引脚,P4输出高电平,三级管T1的UB (1) 式中:RT为回路总电阻,Ω;R2、R3、RL、RD为各支路电阻,Ω。 为了使三级管T1工作在放大区,UBE>0.7 V,即: (2) 式中RBE为输入电阻,Ω。 图3 红外传感器模块电路图 经公式推导和实验验证最终选取R1=750 Ω、R2=150 Ω、R3=200 Ω。红外传感器电路右边的接收部分主要是利用了电路的分压原理,当红外发射管不工作时,红外接收管阻值大,分到的电压多,输入为高电平。当红外发射管工作时,红外接收管阻值变小,分到电压少,输入为低电平,R4取值为10 kΩ。 显示模块采用ATK-7′TFTLCD电容触摸屏,其分辨率为800像素×480像素,16位真彩显示,可支持5点同时触摸,操控性强。具有亮度好、对比度高、层次感强、颜色鲜艳等特点[5]。 本文图像处理的目的是将PCB板中无元器件覆盖的底板部分(目标区)与有元器件覆盖的区域(非目标区)区分,再通过图像识别获得合适的支撑区域坐标。 3.2.1 构建HSV彩色模型 首先对彩色图像进行预处理,通过中值滤波去除图像中可能存在的盐、胡椒等噪声,预处理后图像如图4所示。 图4 预处理后图像 在PCB的生产流程中,大多数的PCB板所采用的底板颜色是与元器件颜色区分开来的,这是为了给后期的PCB板检查带来便利,可以利用颜色分布特性进行图像的分割,将目标区与非目标区区分。前文提到图像采集模块获得的图像是RGB类型的,但是RGB模型中颜色是由R、G、B 3个分量共同决定的,并且3个分量都受亮度的影响,所以至少有4个变量来影响颜色的变化,这样给基于颜色的图像处理带来很大的难度。而HSV模型中3个分量的相关性远低于RGB模型,HSV模型中颜色主要由H分量所决定,通过HSV模型可以建立单个变量与颜色的关系,极大简化了基于颜色的图像处理的难度。所以本文采用将RGB模型转换成HSV模型的方法进行颜色分割[6-8]。RGB模型转HSV模型算法如下: (3) (4) (5) V=Cmax (6) 式中:H为色调;S为饱和度;V为明度。 3.2.2 自适应彩色图像分割,形态学处理 大多数PCB板图像中,底板的颜色应该是图像中单种颜色占据区域最多的,对应到图像矩阵中即为占据像素点最多的。将实验图像转换成HSV模型,绘制出H分量的直方图,如图5所示。 图5 H分量直方图 从图5可以看出,像素点的绝大部分分布在底板颜色绿色附近,通过H分量的直方图求得像素最多的色调值为Hm,经过多次试验最终选取以Hm为中心、15为半径的领域内,分别求解Hm左右两侧H斜率最大的点Hl、Hr的值,因为斜率大则说明相邻色调之间的区分度越大,越适合作为颜色分割的阈值。将Hl、Hr作为左右阈值进行图像分割,当Hm在Hl和Hr之间时,S=255、V=0转化为RGB模型时为黑色,反之S=0、V=255转化为RGB模型时为白色,此操作的目的是为了简化后续的运算具体公式如下: (7) (8) 式中:S为饱和度;V为明度;Hm为色调中像素点最多的值;Hl为Hm领域左侧斜率最大的H值;Hr为Hm领域右侧斜率最大的H值。 将处理后的HSV图像转换到RGB模型中,再转化为灰度图像,最终将图像转化为二值图像,其中目标区域像素点的值为0,非目标区域像素点值为1。二值图像如图6所示。 图6 颜色分割处理后的二值图像 对分割所得二值图像进行形态学处理,通过PCB板图像的特征(如形状、大小等),对二值图像进行筛选完成分割,形态学处理后的图像如图7所示。 图7 形态学处理后的二值图像 将采集到的图像转化为易于运算的二值图像后,需要定位图像中可以插入支撑柱的位置。首先进行模板匹配,设支撑柱横截面大小对应到图像中为p×q的矩形,对二值图像进行有效卷积运算,卷积核为p×q的全1矩阵[9-10],具体运算公式如下: (9) 式中:f为输入的二值图像;h为卷积核;m、n分别为特征映射矩阵的行数与列数。 在卷积运算后所得的特征映射矩阵中,遍历该矩阵中的所有元素,查找出所有满足值为p×q的元素,利用元素坐标计算可以求得满足要求的支撑坐标。但是该模板匹配算法会带来2个问题:第一,由于非目标区域与目标区域分布的不均匀,导致目标区域支撑柱分布的不合理,有些地方支撑柱分布过于密集。第二,在特征映射矩阵中逐个遍历寻找满足要求的元素,含有算法复杂度过大、运行时间过长等问题。针对这个问题,本文提出了中心扩散查找算法。将特征映射矩阵均匀划分为几块相同子矩阵,设子矩阵的行数和列数分别为l、w,以将特征映射矩阵分割成4等份的子矩阵为例,选取每个子矩阵中心元素的坐标,设中心元素坐标为a(x,y),则按如下公式进行查找: (10) 式中:a(p,q)为需要查找的子矩阵的坐标;n为以中心像素向外扩散的层数。 每块子矩阵中找到满足要求的矩阵元素就退出循环,显示定位的支撑柱位置。最终结果如图8所示。图像分割模式由上位机人为选择。此算法不仅减少了运算时间,而且使得支撑柱放置区域尽可能落在每个区域的中心,提高了支撑的稳定性,经过实验证明具有很好的鲁棒性。 图8 最终标记图像 下位机软件系统是在Windows环境下使用Keil uVision5软件进行开发的,采用C语言进行模块化的编程思路,将不同的模块独立封装在各自的C文件中,通过包含头文件的方式进行调用,使得程序更加简明清晰,增加了程序的可读性。 给设备供电后,串口读取上位机的坐标集数据给主控芯片,通过串口将数据传给主控芯片,主控芯片接收到数据后,将对应坐标指示灯点亮,利用FSMC来控制屏幕显示坐标。主控芯片通过矩阵式红外传感器模块不断扫描监视输入端口的状态来判断是否有支撑柱插入,若有支撑柱插入则调用自检程序,判断支撑柱位置,若放置正确则将对应坐标指示灯熄灭,显示屏上对应坐标显示完成,若放置错误则会触发声光报警,提醒操作者放置错误。放置正确后再判断是否所有的坐标都插入支撑柱,若没有则继续监视端口状态,等待下次顶针的插入,反之,屏幕显示全部插入完成,单次插入支撑柱任务完成,通过触摸屏按键开启下一次操作。程序总体流程图如图9所示。 图9 程序总体流程图 图10是通过QT软件编写的上位机操作系统,右侧图片开始时为摄像头采集的动态图像,待目标物体放置完成后可通过点击确认图像按钮将其变为静态图像,来作为待处理图像。上位机需要人为选定图像分割模式,依据实际需求开发了5种分割模式,分别为4、6、9、12、16分割模式。界面左边显示的是处理后的二值图像,右边显示的是目标识别后的原图像。图片下方显示支撑区域的坐标,经过人为审查满意后,将数据发送给下位机,并且可以通过上位机检测支撑柱放置的状态。 图10 PCB板识别定位辅助监控平台图 为了验证系统的可行性,采用10 000张PCB板图片作为实验样本进行检测,分别用5种分割模式一次进行实验,实验测试结果如表1所示。 表1 图像识别测试结果 从表1可以看出对图像分割越密集,识别率越低。图像分割最密集的16分割模式,识别率可达98.13%。 系统采用图像识别算法对PCB板进行识别定位,将图像的RGB模型转换成HSV模型,利用颜色进行图像的分割,针对实际问题提出了基于彩色图像的自适应分割算法和中心扩散查找算法,完成图像的识别并且简化实际问题中的复杂运算,图像识别率高达98%以上。下位机的防呆模块和指示模块能够很好地引导人工完成工作,保证工作的准确性。此系统还具有反应灵敏、可靠性好、普适性强等特点。2.5 显示模块
3 图像识别处理
3.1 图像处理目的
3.2 颜色识别
3.3 模板匹配
4 下位机软件设计
5 上位机系统
6 系统测试
7 结束语