齊 敏,牛貝樂
(西北工業(yè)大學(xué)電子信息學(xué)院,西安 710129)
當(dāng)前電子產(chǎn)品小型化、輕便化、多功能化的發(fā)展趨勢使電子元器件尺寸越來越小,相應(yīng)的電子產(chǎn)品中印刷電路板(Printed circuit board,PCB)的集成度也越來越高。表面貼裝技術(shù)(Surface mount technol?ogy,SMT)是一種在PCB 上無需鉆孔、直接將表面貼裝元器件貼焊到PCB 表面規(guī)定位置上的電路裝連技術(shù)。與傳統(tǒng)工藝相比,SMT 技術(shù)具有組裝密度高、產(chǎn)品體積小重量輕和可靠性高的特點,極為適合當(dāng)今設(shè)備小型化、便攜式和高集成度的發(fā)展需求,并且易于實現(xiàn)自動化生產(chǎn),提高生產(chǎn)效率[1]。隨著科技的不斷發(fā)展,代表新一代電子組裝技術(shù)的表面貼裝設(shè)備面臨著越來越高的技術(shù)要求,基于機器視覺的標(biāo)志符高精度定位技術(shù)的優(yōu)勢和重要性愈發(fā)凸顯。標(biāo)準(zhǔn)工業(yè)標(biāo)志符有圓形和直線型等共10 種,以表面貼裝設(shè)備流水線上的錫膏印刷機為例,標(biāo)志符分別印制在PCB 和鋼網(wǎng)模板上,通過對標(biāo)志符幾何中心的檢測定位,獲得PCB 和鋼網(wǎng)模板的空間位置信息,用于控制兩者的精確對位,從而控制錫膏印刷的精度,因此標(biāo)志符的定位精度對錫膏印刷的良品率將產(chǎn)生直接影響,是至關(guān)重要的指標(biāo)。目前國產(chǎn)表面貼裝設(shè)備中的視覺定位軟件大多依賴于國外商用軟件進(jìn)行二次開發(fā),主要是美國國家儀器公司開發(fā)的NI Vision,采用國外商用軟件除了技術(shù)上受制以外,也大大增加了設(shè)備成本,并且NI Vision 軟件僅有圓形標(biāo)志符的自動定位功能,沒有其他標(biāo)志符的自動檢測。目前已有的高精度標(biāo)志符定位算法主要針對圓形標(biāo)志符[2?3],面向三角形、矩形等直線型標(biāo)志符的研究很少。本文根據(jù)實際應(yīng)用需求,研究三角環(huán)標(biāo)志符的高精度檢測定位算法,為具有完全自主知識產(chǎn)權(quán)的中高端表面貼裝設(shè)備的國產(chǎn)化替代產(chǎn)品提供底層技術(shù)支撐。一般工業(yè)標(biāo)志符的外接矩形邊長為1~3 mm,圖1 為工業(yè)相機拍攝的三角環(huán)標(biāo)志符的放大圖像。
圖1 工業(yè)相機拍攝的三角環(huán)標(biāo)志符放大圖像Fig.1 Enlarged images of triangle ring mark tak?en by industrial camera
常見的中心定位方法有重心法[4]、模板匹配算法[5]和基于邊緣檢測的算法[6?8]等。重心法對檢測形狀進(jìn)行圖像分割后求取其重心,雖然檢測速度快,但對圖像質(zhì)量要求高,但精度不高。模板匹配算法根據(jù)滑動窗口內(nèi)的像素灰度特征或檢測對象的形狀特征,檢測圖像中與已知模板匹配度最高的區(qū)域,但是依據(jù)像素灰度的方法存在旋轉(zhuǎn)縮放時檢測速度慢、精度低和魯棒性差的問題;依據(jù)形狀特征的方法在圖像較為復(fù)雜、干擾較多時檢測效果不佳。基于邊檢測的算法包含霍夫變換方法[7]和直線擬合方法[8]應(yīng)用于三角環(huán)的檢測定位時效果相對較好,但仍有以下問題:霍夫變換方法魯棒性好,但存在計算量大、檢測速度慢等缺點;直線擬合方法精度高,但當(dāng)三角環(huán)的頂點由銳角退化成圓弧狀的拐角時,會對三角環(huán)標(biāo)志符直線邊的擬合精度造成直接影響。
為了解決上述問題,本文提出一種面向三角環(huán)標(biāo)志符的精度高、魯棒性好的中心定位算法,該算法基于凸包分割技術(shù)[4,9?11],獲取用于擬合三角環(huán)輪廓的高精度數(shù)據(jù)集,再結(jié)合直線擬合[5,12?13]本身的高精度特性,實現(xiàn)三角環(huán)標(biāo)志符幾何中心的快速準(zhǔn)確定位。本文提出的算法適用于一般質(zhì)量的圖像,對圖像質(zhì)量無特殊要求。
本文研究的三角環(huán)工業(yè)標(biāo)志符高精度定位算法基于凸包分割技術(shù),算法流程為:對三角環(huán)標(biāo)志符圖像進(jìn)行二值化處理后,獲取其內(nèi)環(huán)和外環(huán)的初始輪廓點集;對外環(huán)輪廓進(jìn)行處理,研究凸包和凸點的幾何特征用于輪廓分割,生成外環(huán)的輪廓段集合;對輪廓段集合中的所有輪廓段分別進(jìn)行直線擬合,并利用其斜率特征進(jìn)行聚類,得到外環(huán)三條邊各自的有效點集;構(gòu)建偏離值直方圖,設(shè)定合理閾值,進(jìn)一步剔除有效點集中引起細(xì)微凹凸和毛刺的干擾像素點,獲取用于擬合的原型邊點集;基于最小距離直線擬合,高精度重構(gòu)三角環(huán)外環(huán)直線邊,求得外環(huán)的精確幾何中心。類似地,獲得內(nèi)環(huán)的精確幾何中心,進(jìn)而通過數(shù)學(xué)平均求得三角環(huán)標(biāo)志符的精確幾何中心坐標(biāo),實現(xiàn)高精度定位。算法流程如圖2所示。
圖2 三角環(huán)標(biāo)志符定位算法流程圖Fig.2 Flowchart of triangle ring mark positioning algorithm
在工業(yè)現(xiàn)場環(huán)境中,由于受光照、曝光等因素的影響,所獲標(biāo)志符圖像不可避免含有噪聲,首先進(jìn)行去噪處理[14]。然后采用OTSU 算法進(jìn)行二值化閾值計算[15],該算法是一種全局化的動態(tài)二值化方法,其基本思想是設(shè)定一個閾值將灰度圖像根據(jù)灰度的大小分成前景和背景兩個部分,當(dāng)這兩個類的類內(nèi)方差最小和類間方差最大時,得到的閾值為最優(yōu)的二值化閾值[16]。據(jù)此原理得到二值圖像Ib=f(x,y),其中1 為背景像素,0 為標(biāo)志符圖像。采用Canny 算子進(jìn)行邊緣提?。?7],獲取三角環(huán)標(biāo)志符的初始輪廓集T為
式中:k=1 表示三角環(huán)標(biāo)志符的外輪廓;k=2 表示三角環(huán)標(biāo)志符的內(nèi)輪廓。
在對獲取的圖像進(jìn)行預(yù)處理后,三角環(huán)標(biāo)志符的內(nèi)、外輪廓均為像素構(gòu)成的點集。對于二維平面上的點集,包含某個點集所有點的最小凸多邊形稱為凸包,凸包上的所有頂點稱為凸點。如圖3 所示,對于五角星區(qū)域的點集G,五邊形V1V2V3V4V5為點集G的凸包,5 個頂點V1、V2、V3、V4和V5為凸點,本文利用凸包和凸點的性質(zhì)[18]研究三角環(huán)標(biāo)志符的輪廓分割方法。首先提取三角環(huán)標(biāo)志符外環(huán)輪廓的凸點集合,利用凸點集合對外環(huán)輪廓進(jìn)行分割,獲得外環(huán)輪廓的輪廓段集合。
圖3 凸包及凸點示意圖Fig.3 Schematic diagram of convex hull and convex points
在放大狀態(tài)下觀察,由于實拍三角環(huán)標(biāo)志符圖像中,三角環(huán)標(biāo)志符頂角處的輪廓并非理想的直線夾銳角形狀,而是銳角退化為類似于圓弧狀的拐角,如圖4 所示,此時若將拐角附近的像素點引入三角環(huán)直線邊的擬合計算中,將影響直線邊斜率的擬合精度??紤]到拐角處的凸點較多,且相鄰兩凸點的距離較小,利用凸點進(jìn)行分割,外環(huán)輪廓將被分割為長短不一的輪廓段,拐角附近的輪廓段短小。篩除長度較小的輪廓段即可消除圓弧狀拐角對擬合三角環(huán)直線邊的影響,極大提高算法的精度。
圖4 三角環(huán)標(biāo)志符的弧狀頂角Fig.4 Arc corners of triangle ring mark
首先尋找外環(huán)輪廓的所有凸點:在外環(huán)輪廓上的所有點中尋找坐標(biāo)x,y最小的點C0(x0,y0),其余點記為Pi(xi,yi),i為[1,Q-1]區(qū)間的整數(shù),Q為外環(huán)輪廓上點的總數(shù)量。計算Pi與C0點的連線與x軸之間的幅角α為
依照幅角α從小到大的順序?qū)Ω鱾€點進(jìn)行排序,當(dāng)α相同時,距離點C0更近點優(yōu)先排序,即為P1,P2,P3,…,PQ-1。
將點C0和P1放入外環(huán)輪廓凸點集合C中,設(shè)len為集合C中點的數(shù)目,從 點P2(x2,y2)開始遍歷,記遍歷點為Pi(xi,yi),若Pi與Clen(xlen,ylen)、Clen-1(xlen-1,ylen-1)滿足
則確定將點Pi放入凸點集合C中,len值加1;否則將Clen(xlen,ylen) 從凸點集合C中移除,len值減1。遍歷所有點Pi之后得到外環(huán)輪廓凸點集合C為
式中:Cc為凸點集合C中的第c個凸點(xc,yc)。此時,可利用凸點分割外環(huán)輪廓并篩除長度小的輪廓段。
將凸點集合中的所有凸點及其8 鄰域像素置為背景值1,即
式中p,q= -1,0,1。此時外環(huán)輪廓被分割為若干輪廓段,計算所有輪廓段的長度,為保證在直線擬合階段和的有效生成,并減少極端數(shù)據(jù)對直線擬合效果的影響,篩除長度小于6 個像素點的輪廓段,初步得到用于直線擬合的輪廓段集合D為
式中:Dk為輪廓段集合D中的第k個輪廓段;Qk為輪廓段的個數(shù)。
對集合D中的輪廓段進(jìn)行基于距離的直線擬合,依據(jù)斜率特征,對擬合直線進(jìn)行聚類,從而實現(xiàn)對應(yīng)輪廓段的分類,得到三角環(huán)標(biāo)志符外環(huán)3 條邊的3 個有效點集。
(1)對外環(huán)輪廓段集合D 中的所有輪廓段分別進(jìn)行直線擬合。設(shè)集合D 中任一輪廓段的待擬合直線L 的斜截式方程為
則這條輪廓段上的任一點(xi,yi)到直線L的最小距離為
設(shè)基于最小距離擬合的目標(biāo)函數(shù)為
分別對F求偏導(dǎo),令,可解得
記
對式(11)進(jìn)一步分析,求出參數(shù)k為
根據(jù)式(10)求出參數(shù)b為
將直線的斜截式方程轉(zhuǎn)換成單位化的一般式,可得
由式(12,13)求出參數(shù)
因為n-k≥3,故取a∈EXT (u),則存在邊取b∈EXT (v),b≠a,則存在邊令I(lǐng)=
對輪廓段集合D中的所有輪廓段進(jìn)行上述相同操作,得到每個輪廓段的擬合直線段。
(2)依照直線斜率特征,利用得到的擬合直線參數(shù),對直線進(jìn)行聚類。對于集合D中任意兩個輪廓段的擬合直線Ls和Lt,若它們的斜率滿足式(18),則將它們合并。
式中:θs和θt分別為擬合直線Ls、Lt與x正半軸的夾角;θmin為兩直線最小夾角的閾值,一般設(shè)為60°。
(3)對外環(huán)輪廓段集合D中的所有輪廓段進(jìn)行上述合并操作,直至不存在任意兩個輪廓段的擬合直線滿足式(18),聚類結(jié)束。
取外環(huán)輪廓段集合D中元素數(shù)目最大的3 個輪廓段作為三角環(huán)標(biāo)志符外環(huán)3 條邊的有效點集,記為S1、S2和S3。
上述得到的有效點集S1、S2和S3去除了外環(huán)輪廓中的弧狀拐角和凸點等對三角環(huán)直線邊擬合精度影響大的部分,剩余部分像素點呈良好的直線狀分布,但仍帶有細(xì)微的凹凸和毛刺,如圖5 所示。針對這一問題,提出偏離值直方圖的概念,進(jìn)一步對有效點集進(jìn)行優(yōu)化,去除其中偏離較大的點,以提高三角環(huán)各邊直線擬合的精度。
圖5 三角環(huán)標(biāo)志符上的凹凸和毛刺Fig.5 Bumps and burrs in triangle ring mark
以S1為例,設(shè)其對應(yīng)邊的擬合直線為l1,根據(jù)直線方程(14),l1的一般形式為
對S1中的任意一點pi(xi,yi)到直線l1的偏離值δi為
計算S1中所有點到直線的偏離值,構(gòu)成偏離值直方圖,使用寬度為h的滑動窗口獲取偏離值密度最大區(qū)間,得到偏離值閾值(δl,δh)。將S1中所有δi小于δl或大于δh的點從S1中剔除,得到優(yōu)化后的原型邊點集Sa。對于另外2 個有效點集S2和S3進(jìn)行上述相同操作,獲取優(yōu)化后的原型邊點集Sb和Sc。
按照上述擬合方法,利用原型邊點集Sa、Sb和Sc對三角環(huán)外環(huán)3 條邊分別進(jìn)行最小距離直線擬合,高精度重構(gòu)三角環(huán)直線邊,得到3 條邊的擬合直線方程。3 邊直線方程兩兩相交,計算獲得標(biāo)志符3 個擬合頂點的坐標(biāo)值A(chǔ)(xA,yB)、B(xB,yB)和C(xC,yC),標(biāo)志符外環(huán)的精確幾何中心點坐標(biāo)O1(X1,Y1)為
對三角環(huán)標(biāo)志符的內(nèi)環(huán)進(jìn)行和外環(huán)相同的處理,獲得內(nèi)環(huán)的精確幾何中心O2(X2,Y2)。由內(nèi)環(huán)和外環(huán)的幾何中心坐標(biāo)確定三角環(huán)標(biāo)志符的精確幾何中心坐標(biāo)Oc(Xc,Yc),即
本文針對印刷電路板和鋼網(wǎng)模板上的三角環(huán)標(biāo)志符進(jìn)行定位實驗,設(shè)備視覺系統(tǒng)的檢測定位誤差要求小于10 μm。算法程序運行的操作系統(tǒng)為Windows10 64 位系統(tǒng),處理器為英特爾Core i7?8700K,工作頻率為3.70 GHz,內(nèi)存為16 GB,編程語言是C++,編程軟件環(huán)境使用的是Microsoft Visual Stu?dio 2017,依賴庫為圖像處理視覺庫OpenCV3.4.1。視覺系統(tǒng)采用單色遠(yuǎn)心鏡頭工業(yè)相機,分辨率為6 μm,相機視覺區(qū)域為8.5 mm×5 mm。
為了驗證算法的定位精度,在仿真實驗中,模擬實拍圖像,制作了由灰色背景、黑色待檢測三角環(huán)標(biāo)志符組成的仿真圖像,圖像為1 280 像素×960 像素大小、8 bit 深度的BMP 格式圖像。仿真圖像包括不同灰色背景,以及不同位置、大小和旋轉(zhuǎn)角度的待檢測三角環(huán)標(biāo)志符,共計30 幅,并分別向其中加入密度為(0,0.02)、(0,0.03)、(0,0.04)的高斯噪聲和密度為0.2、0.3、0.4 的椒鹽噪聲,所有圖像構(gòu)成仿真實驗數(shù)據(jù)集,用于驗證算法的正確性、精確性和魯棒性。圖6 為仿真圖像示例,其中:圖6(a)為一個原始圖像;圖6(b)的中心位置相對于圖6(a)的偏移量為(-96,68),縮放比例為1∶0.64,相對旋轉(zhuǎn)角度-14.2°;圖6(c)的中心位置相對偏移量為(82,58),縮放比例為1∶0.58,相對旋轉(zhuǎn)角度為-14.2°;圖6(d)的中心位置相對偏移量為(-109,-22),縮放比例為1∶0.58,相對旋轉(zhuǎn)角度為13.0°。位置相對偏移量的單位均為像素。
圖6 仿真實驗圖像示例Fig.6 Images used in simulation experiment
實驗中,采用直線擬合法和Hough 變換法對仿真圖像進(jìn)行中心定位,與本算法定位結(jié)果進(jìn)行比較。加入不同密度噪聲的仿真圖像實驗結(jié)果如表1 所示,其中定位結(jié)果在X、Y方向與標(biāo)準(zhǔn)幾何中心的偏差的平均值分別定義為
在X、Y方向的偏差的均方根誤差分別定義為
式中:(xi0,yi0)為第i個仿真圖像的標(biāo)準(zhǔn)幾何中心坐標(biāo);(xi,yi)為第i個仿真圖像幾何中心的定位值;(?xi,?yi)為第i個仿真圖像的定位偏差;N為仿真圖像的個數(shù),此處N=30。
表1 中本文方法中滑動窗口寬度設(shè)定為4 像素。實驗1 圖像的椒鹽噪聲密度為0.2,高斯噪聲密度為0.02;實驗2 圖像的椒鹽噪聲密度為0.3,高斯噪聲密度為0.03;實驗3 圖像的椒鹽噪聲密度為0.4,高斯噪聲密度為0.04。由于視覺系統(tǒng)定位誤差要求小于10 μm,遠(yuǎn)心鏡頭工業(yè)相機分辨率為6 μm,而10 μm /6 μm =1.667 像素,因此算法精確度應(yīng)保證小于1.667 像素。
表1 仿真圖像實驗結(jié)果Table 1 Experimental results of simulation images
從實驗結(jié)果可以看出,在3 種方法中,直線擬合法的耗時較短,但定位精度差,其原因一方面是由于三角環(huán)頂角退化為弧角時使擬合精度變差,另一方面噪聲密度的增加使三角環(huán)邊緣輪廓凹凸情況加重,再次影響了擬合精度。Hough 檢測法檢測精度較好,面對不同程度的噪聲具有一定的魯棒性,但算法耗時較長,影響設(shè)備工作效率,不適合實時檢測要求高的應(yīng)用。在不同噪聲情況下,本文三角環(huán)定位法耗時短,均可精確地定位到三角環(huán)標(biāo)志符的中心位置。以實驗3 為例具體分析,正態(tài)分布是一種廣泛存在的分布模型,在工程檢測中常用3σ 原則進(jìn)行數(shù)據(jù)分析。根據(jù)3σ 檢驗原則計算可得,實驗3 中直線擬合法的中心定位x坐標(biāo)偏差范圍為(1.603,4.087),y坐標(biāo)偏差范圍為(0.181,0.997),x坐標(biāo)偏差已無法滿足精度要求;Hough 變換法的中心定位x坐標(biāo)偏差范圍為(0.340,1.222),y坐標(biāo)偏差范圍為(0.093,0.171),本文算法的中心定位x坐標(biāo)偏差范圍為(0.118,1.072),y坐標(biāo)偏差范圍為(0.091,0.175),對比Hough 變換法,本文算法的綜合檢測效果更佳,且平均耗時比Hough 變換法少得多。綜上所述,本文算法對三角環(huán)標(biāo)志符的中心定位在精度和速度上的性能最優(yōu)。
在仿真實驗的基礎(chǔ)上,本文采用工業(yè)場景下的實拍三角環(huán)標(biāo)志符圖像進(jìn)行了實測實驗,實驗中間過程如圖7 所示。其中,圖7(a)為實拍三角環(huán)標(biāo)志符圖像,圖7(b)為經(jīng)過圖像預(yù)處理后三角環(huán)初始輪廓集,圖7(c)為三角環(huán)外輪廓的輪廓段集合,圖7(d)為三角環(huán)外輪廓三條邊的有效點集,圖7(e)為去除偏移較大點后的3 條邊的原型邊點集。內(nèi)輪廓遵循相同的操作,不再列出。圖7(f)為對外、內(nèi)輪廓的3條邊進(jìn)行直線擬合并計算出三角環(huán)中心坐標(biāo)的最終結(jié)果。圖8 為實際檢測的定位結(jié)果示例,其中用矩形框標(biāo)示三角環(huán)標(biāo)志符的位置。
圖7 實驗環(huán)節(jié)展示Fig.7 Demonstration of experimental process
圖8 實拍圖像定位結(jié)果Fig.8 Positioning results of images taken by camera
采用3 種算法對圖8(a)標(biāo)志符的中心定位結(jié)果如表2 所示。其中x、y方向的標(biāo)準(zhǔn)差分別定義為
式中:M為對一張實拍圖像進(jìn)行定位的次數(shù),此處M=9;(xˉ,yˉ)為實拍圖像M次定位數(shù)據(jù)的算數(shù)平均值,即平均中心坐標(biāo),(xi,yi)為第i次檢測值。從表2 中數(shù)據(jù)可以看出,直線擬合法的標(biāo)準(zhǔn)差最大,耗時居中;Hough 變換法的標(biāo)準(zhǔn)差居中,耗時長;本文三角環(huán)定位算法標(biāo)準(zhǔn)差最小,耗時最短。說明本文算法定位結(jié)果的離散度最小,算法的重復(fù)性最佳,檢測定位性能穩(wěn)定且耗時少,在高速實時檢測要求的基礎(chǔ)上,實現(xiàn)了高精度定位。
表2 實拍圖像實驗結(jié)果Table 2 Experimental results of images taken by camera
通過各項實驗可以看出,本文算法對三角環(huán)標(biāo)志符實現(xiàn)了快速準(zhǔn)確定位,并且對實驗圖像的質(zhì)量要求不高,魯棒性好,能夠滿足實際工業(yè)檢測中不同工況下的快速高精度定位。
本文針對表面貼裝設(shè)備中三角環(huán)標(biāo)志符定位技術(shù)不能同時滿足精度高、魯棒性強的問題,提出一種基于凸包分割的定位算法,實現(xiàn)了三角環(huán)標(biāo)志符的高精度快速自動檢測定位。該算法將三角環(huán)標(biāo)志符的內(nèi)環(huán)和外環(huán)三角形提取出來,分別獨立處理,并利用凸包的幾何特征將三角環(huán)輪廓中的弧狀拐角和凸點等剔除掉,避免了圓角效應(yīng)和位置偏離大的像素點對三角環(huán)直線邊擬合精度的影響。然后,進(jìn)一步構(gòu)建偏離值直方圖概念,依此設(shè)定合理閾值,剔除細(xì)微的凹凸和毛刺,對用于直線邊擬合的數(shù)據(jù)集進(jìn)行更精細(xì)的優(yōu)化,提高了擬合數(shù)據(jù)集的質(zhì)量。在上述基礎(chǔ)上,使用最小距離直線擬合算法完成三角環(huán)直線邊的高精度重構(gòu),從而計算出三角環(huán)標(biāo)志符的精確幾何中心坐標(biāo),實現(xiàn)了三角環(huán)標(biāo)志符的高精度快速定位,能夠滿足實際應(yīng)用的需求。