張索銘,喻擎蒼,何家旺
(浙江理工大學(xué)信息科學(xué)與工程學(xué)院,浙江 杭州 310018)
電子制造技術(shù)和人工智能等技術(shù)的進(jìn)步,帶動(dòng)了PCB(Printed Circuit Board)電路板制造業(yè)崛起。隨之而來的問題之一就是元器件裝配缺陷中的浮高檢測,通過檢測元器件頂端到PCB 裸板的高度是否達(dá)到某高度值,以此來判斷電路板是否存在浮高的問題。
浮高檢測問題可以轉(zhuǎn)化為測距問題。目前常見的測距方法有單目[1],雙目[2],結(jié)構(gòu)光[3]三類方法。單目方法計(jì)算速度快,但誤差較高;雙目的方法計(jì)算速度慢,誤差低;而結(jié)構(gòu)光的方法速度快且誤差低,但是,結(jié)構(gòu)光設(shè)備昂貴,并不適合大部分生產(chǎn)場景。
目前國內(nèi)對(duì)PCB 的三維檢測方案針對(duì)不同的應(yīng)用場景需要設(shè)計(jì)不同的檢測方案,如文獻(xiàn)[3]中對(duì)小型SMT(Surface Mounted Technology)表面貼裝元器件采用的結(jié)構(gòu)光方案,雖然對(duì)于小型元器件的測量精度高,設(shè)備成本高,不能應(yīng)用在小型生產(chǎn)線上;文獻(xiàn)[4]中對(duì)流水線上的接插元器件采用改進(jìn)SGM(Semi-Global Matching)算法[2]對(duì)連續(xù)采集的圖片進(jìn)行偽雙目深度測量,由于是對(duì)整塊板進(jìn)行匹配重建,算法部分仍然采用雙目測距的方法,算法耗時(shí)長,無法達(dá)到需要快速檢測浮高的車間需求。
考慮到設(shè)備成本和流水線上的生產(chǎn)環(huán)境,應(yīng)該采用更加快速的算法完成浮高檢測任務(wù),由于三維重建過程精度高,耗時(shí)長,且對(duì)生產(chǎn)車間考察后可了解到大型電器類PCB 的浮高可接受2mm 內(nèi)的誤差。文獻(xiàn)[1]中的基于圖像面積計(jì)算的單目測距方法滿足快速檢測的需求,但是原文中方法采用投影面積和距離的關(guān)系較為不穩(wěn)定。因此可拍攝左右兩張圖像,應(yīng)用形態(tài)學(xué)處理[5],邊緣提取[6],霍夫檢測[7],特征點(diǎn)提取[8]等圖像處理算法獲取元器件上相同的特征點(diǎn)。元器件上的部分特征點(diǎn)計(jì)算像素平移距離代替面積,應(yīng)用最小二乘法[9]擬合像素距離和相機(jī)平面到元器件頂端平面高度之間的關(guān)系,即可快速低成本完成接插類元器件的浮高檢測需求。因此本文提出一種基于像素距離變化的單目元器件高度檢測方案。
視覺方案的設(shè)計(jì)包括圖像采集,圖像處理算法,擬合距離關(guān)系三個(gè)步驟。圖像采集部分的任務(wù)是由工廠流水線上的AOI(Automated Optical Inspection)設(shè)備完成的,隨后用來計(jì)算浮高指標(biāo)的圖片為兩個(gè)位置的PCB 圖片。將左右位置的圖片分別利用圖像處理算法完成對(duì)元器件上穩(wěn)定位置的特征點(diǎn)提取,再用特征點(diǎn)的像素坐標(biāo)計(jì)算相同的PCB 板上元器件的像素平移距離,以備后續(xù)計(jì)算像素平移距離與元器件到相機(jī)距離的關(guān)系。通過記錄多組像素平移距離和元器件相機(jī)距離關(guān)系,利用最小二乘法確定系數(shù)來完成擬合標(biāo)定。其具體流程如圖1所示。
圖1 視覺方案流程圖
目前應(yīng)用AOI 光學(xué)檢測設(shè)備完成流水線上的PCB 圖像采集。檢測設(shè)備包括由板狀LED 燈源組成的無影燈箱,工業(yè)相機(jī),計(jì)算機(jī),警報(bào)燈以及操作鍵盤組成。整體設(shè)備置于生產(chǎn)PCB 的傳送帶上,在傳送過程中在固定的兩個(gè)位置完成左右兩張圖片的采集。圖像采集平臺(tái)結(jié)構(gòu)如圖2所示。
圖2 圖像采集平臺(tái)結(jié)構(gòu)圖
在圖像采集后,需要對(duì)圖像采集場景的測距模型進(jìn)行分析。如圖3 所示,對(duì)流水線上PCB 以及元器件位于傳送帶上,上方的相機(jī)對(duì)傳送帶左右兩個(gè)位置進(jìn)行拍攝,元器件和板子位于不同高度,對(duì)相機(jī)上成像的點(diǎn)也是不一樣的。在相同的移動(dòng)距離下,元器件和板子的像素平移距離也不同,可以通過擬合的方式計(jì)算像素平移距離和高度之間的關(guān)系,從而完成距離測量。
圖3 視距場景圖
由于圖像采集平臺(tái)采集的初始圖片包含很多無關(guān)的背景因素,所以需要進(jìn)行感興趣區(qū)域提取,以便后續(xù)算法處理。首先需要在圖像中找到PCB 板,然后在已經(jīng)裁剪好的圖片上尋找指定的元器件,其流程如圖4 所示。相同型號(hào)的板子和元器件形狀比較固定,因此,采用基于模板匹配方法即可完成感興趣區(qū)域提取。如圖5 示例圖,用此方法在傳送帶背景下可以精確的找到指定的PCB 板,隨后用同樣的方法可找到指定元器件,示例元器件為圓形電容也可應(yīng)用相同的方法處理方形接插件。
圖4 感興趣區(qū)域提取流程圖
圖5 感興趣區(qū)域提取示例圖
通過感興趣區(qū)域提取后,可獲得PCB 板上指定元器件的圖片,但是需要完成元器件頂端距離的測量任務(wù),還需要更精確地提取元器件上的特征點(diǎn)。將圖像二值化閾值分割處理后即可得到精確的區(qū)域。由于邊緣算子計(jì)算后仍然存在部分無效的輪廓,所以需要對(duì)輪廓的圖像進(jìn)行幾何特征驗(yàn)證,采用霍夫檢測算法進(jìn)行驗(yàn)證,從而確定電容的頂部區(qū)域以便后續(xù)的特征點(diǎn)提取,具體流程見圖6 所示。如圖7 示例圖,在獲取到元器件區(qū)域圖片后進(jìn)行算法檢測提取后可得到輪廓圖案。
圖6 輪廓提取檢測流程圖
圖7 輪廓提取示例圖
應(yīng)用輪廓提取方法獲取到只包含元器件的二值圖,將二值圖與原圖像進(jìn)行與操作,再對(duì)有效部分進(jìn)行SIFT 特征點(diǎn)提取。特征提取算法處理左右兩幅圖像過后會(huì)分別獲得特征點(diǎn),保留左右匹配度最高的點(diǎn)用于后續(xù)計(jì)算像素平移距離,算法流程見圖8 所示。如圖9示例圖分別對(duì)左右位置的板子上相同元器件進(jìn)行特征點(diǎn)提取并篩選。
圖8 特征點(diǎn)提取篩選流程圖
圖9 特征點(diǎn)篩選示例圖
在圖像處理之后,可以獲取到左右兩幅圖片上相同特征點(diǎn)的平移距離,而不同高度下相同平移距離產(chǎn)生的投影距離并不相同。uv 坐標(biāo)系為圖像平面坐標(biāo)系,XYZ為世界坐標(biāo)系,x為左側(cè)開發(fā)板到右側(cè)開發(fā)板的水平距離,也是元器件左側(cè)至右側(cè)的水平距離,L1R1對(duì)應(yīng)板上的左右位姿特征點(diǎn),L2R2對(duì)應(yīng)板上元器件頂部左右位姿特征點(diǎn),d1為相機(jī)光心到板上的垂直距離,d2為相機(jī)光心到元器件頂點(diǎn)的垂直距離,p1為相機(jī)平面投影的裸板上的左右位姿特征點(diǎn)像素距離,p2為相機(jī)平面投影的元器件頂部位置左右位姿特征點(diǎn)像素距離,詳見圖10簡化光路圖。
圖10 簡化光路圖
相機(jī)到指定平面高度距離計(jì)算公式:
由此可看出在相機(jī)焦距f和左右圖像移動(dòng)距離固定的情況下高度d和像素平移距離p成反比。反比函數(shù)在分母較小時(shí)求解系數(shù)誤差過大,因此可將原函數(shù)轉(zhuǎn)化為多項(xiàng)式。
n階的多項(xiàng)式公式:
采用最小二乘法,通過代入多組d和p的數(shù)據(jù)即可求解超定方程,從而求出系數(shù)矩陣ki。
在對(duì)30cm 到50cm 之間不同高度下50 組的左右圖片采集后最后完成最小二乘擬合,散點(diǎn)表示實(shí)際數(shù)據(jù),連線為擬合曲線,橫軸對(duì)應(yīng)公式中的像素距離p,縱軸對(duì)應(yīng)公式中的高度距離d。擬合的數(shù)據(jù)與實(shí)際數(shù)據(jù)絕對(duì)值平均誤差為0.32mm,均方誤差為0.16mm,最大誤差為0.91mm,如圖11 所示。再將20 組400mm 到350mm之間的元器件測量數(shù)據(jù)帶入驗(yàn)證,如圖12所示。
圖11 擬合高度與像素平移距離關(guān)系曲線圖
圖12 測試高度與像素平移距離關(guān)系曲線圖
測試的數(shù)據(jù)與實(shí)際數(shù)據(jù)絕對(duì)值平均誤差為0.41mm,均方誤差為0.21mm,最大誤差為0.98mm。平均處理速度為0.32s。從精確度和處理速度來看,算法滿足小型生產(chǎn)線上的需求。
最后在生產(chǎn)環(huán)境下測量元器件到開發(fā)板之間的高度,將7mm 的標(biāo)準(zhǔn)元器件和8mm 的浮高元器件分別采集20組數(shù)據(jù),用算法分別測量相機(jī)到板子的高度和相機(jī)到元器件之間的高度,其差值為元器件到板子之間的高度。選取其中5 組元器件高度測量數(shù)據(jù),如表1所示。
表1 元器件高度測量數(shù)據(jù)
本文用單目方法分別獲取同一PCB 板的左右兩幅圖像,通過計(jì)算左右圖像上相同元器件上特征點(diǎn)的像素平移距離,應(yīng)用最小二乘法的方式求解像素平移距離與相機(jī)到元器件頂端的高度的關(guān)系方程,從而完成對(duì)元器件的高度檢測。圖像處理算法耗時(shí)短,平均處理時(shí)長為0.32s,最大誤差為0.98mm,平均誤差為0.41mm,基本滿足的生產(chǎn)線上的實(shí)時(shí)檢測需求,低成本地實(shí)現(xiàn)了元器件浮高檢測的問題,具有一定的工業(yè)應(yīng)用價(jià)值。