李致金,錢百青,顧 鵬,武 鵬,張 亮
(南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇南京 210044)
在PCB板的制作流程中,為了對PCB板進(jìn)行焊接,需將其固定,尤其是雙面板焊接時,通常使用多個支撐柱將其固定,但是對于支撐柱的固定位置有要求,不可以頂住PCB板有元器件的位置,否則容易壓損元器件,所以不同型號的PCB板支撐柱放置的位置不同?,F(xiàn)在市場上有如下常見的支撐方法:第一種通過磁性頂針進(jìn)行支撐,需要人為確定支撐點(diǎn),放置磁性頂針,利用磁性吸附進(jìn)行固定。第二種按不同的PCB板配置相應(yīng)的支撐治具。第三種采用萬能軟PIN支撐。第一種方法通過人為方式插入頂針,換機(jī)種時操作過慢,難以滿足生產(chǎn)線快速生產(chǎn)的要求,而且沒有防呆機(jī)制,很容易產(chǎn)生人為錯誤。第二種方法不具有普適性,每個機(jī)種都配置對應(yīng)支撐治具,不但顯著增加了成本,而且更換支撐治具時非常繁瑣。第三種方法由于是軟PIN不考慮是否頂住元器件,當(dāng)貼片氣壓過大時,軟PIN的回彈力會損傷元器件[1-2]。為了解決以上問題,設(shè)計了基于圖像識別的PCB板定位支撐系統(tǒng)[3],通過攝像頭采集圖像信息,經(jīng)由上位機(jī)進(jìn)行圖像預(yù)處理、圖像分割、模板匹配等一系列的處理后,將支撐柱的坐標(biāo)數(shù)據(jù)通過串口傳遞給STM32單片機(jī),單片機(jī)通過控制TFTLCD以及點(diǎn)亮目標(biāo)坐標(biāo)指示燈,引導(dǎo)人工完成插入支撐柱的工作,此過程中有紅外傳感以及聲光報警防呆。在插入支撐柱的過程中,TFTLCD顯示操作過程中的狀態(tài),并將狀態(tài)反饋給上位機(jī)進(jìn)行實時監(jiān)控,具有很好的人機(jī)交互功能。
本文的總體框圖主要包括圖像采集模塊、上位機(jī)操作界面、下位機(jī)處理模塊、電源模塊、顯示模塊以及防呆模塊。通過圖像采集模塊采集PCB樣板圖像,經(jīng)上位機(jī)圖像識別后輸出支撐柱坐標(biāo)給下位機(jī)模塊處理,下位機(jī)處理模塊通過顯示模塊和指示燈引導(dǎo)人工插入支撐柱,并且通過防呆模塊確保人工執(zhí)行準(zhǔn)確性,并將工作狀態(tài)逐級反饋給下位機(jī)、上位機(jī)。整體結(jié)構(gòu)框圖如圖1所示。
圖1 整體結(jié)構(gòu)框圖
本文的處理器模塊為STM32F103系列芯片,其內(nèi)核為ARM的32位Cortex-M3,CPU的最大時鐘頻率為72 MHz[4],資源豐富并且性能優(yōu)越。
電源模塊主要為處理器模塊、防呆模塊以及顯示模塊供電,通過AMS117-3.3V芯片將輸入的5 V電壓降至3.3 V,輸入端串聯(lián)一個二極管防止電流倒灌損壞電路,電源電路如圖2所示。
圖2 電源電路圖
本文圖像采集模塊選用感光像素為640像素×480像素的OV7670數(shù)字?jǐn)z像頭,圖像輸出格式為RGB,圖像采集速率高達(dá)30幀/s,內(nèi)含數(shù)字處理器,可以對圖像進(jìn)行邊緣銳化、降噪、鏡頭補(bǔ)償?shù)?,提高圖像的質(zhì)量,此外其還具有靈敏度高、體積小等特點(diǎn)。
防呆模塊主要包括矩陣式紅外傳感器模塊和聲光報警系統(tǒng),矩陣式紅外傳感器中單個電路如圖3所示。初始狀態(tài)時P1輸出低電平,P2輸出高電平,P3為輸入引腳,P4輸出高電平,三級管T1的UB (1) 式中:RT為回路總電阻,Ω;R2、R3、RL、RD為各支路電阻,Ω。 為了使三級管T1工作在放大區(qū),UBE>0.7 V,即: (2) 式中RBE為輸入電阻,Ω。 圖3 紅外傳感器模塊電路圖 經(jīng)公式推導(dǎo)和實驗驗證最終選取R1=750 Ω、R2=150 Ω、R3=200 Ω。紅外傳感器電路右邊的接收部分主要是利用了電路的分壓原理,當(dāng)紅外發(fā)射管不工作時,紅外接收管阻值大,分到的電壓多,輸入為高電平。當(dāng)紅外發(fā)射管工作時,紅外接收管阻值變小,分到電壓少,輸入為低電平,R4取值為10 kΩ。 顯示模塊采用ATK-7′TFTLCD電容觸摸屏,其分辨率為800像素×480像素,16位真彩顯示,可支持5點(diǎn)同時觸摸,操控性強(qiáng)。具有亮度好、對比度高、層次感強(qiáng)、顏色鮮艷等特點(diǎn)[5]。 本文圖像處理的目的是將PCB板中無元器件覆蓋的底板部分(目標(biāo)區(qū))與有元器件覆蓋的區(qū)域(非目標(biāo)區(qū))區(qū)分,再通過圖像識別獲得合適的支撐區(qū)域坐標(biāo)。 3.2.1 構(gòu)建HSV彩色模型 首先對彩色圖像進(jìn)行預(yù)處理,通過中值濾波去除圖像中可能存在的鹽、胡椒等噪聲,預(yù)處理后圖像如圖4所示。 圖4 預(yù)處理后圖像 在PCB的生產(chǎn)流程中,大多數(shù)的PCB板所采用的底板顏色是與元器件顏色區(qū)分開來的,這是為了給后期的PCB板檢查帶來便利,可以利用顏色分布特性進(jìn)行圖像的分割,將目標(biāo)區(qū)與非目標(biāo)區(qū)區(qū)分。前文提到圖像采集模塊獲得的圖像是RGB類型的,但是RGB模型中顏色是由R、G、B 3個分量共同決定的,并且3個分量都受亮度的影響,所以至少有4個變量來影響顏色的變化,這樣給基于顏色的圖像處理帶來很大的難度。而HSV模型中3個分量的相關(guān)性遠(yuǎn)低于RGB模型,HSV模型中顏色主要由H分量所決定,通過HSV模型可以建立單個變量與顏色的關(guān)系,極大簡化了基于顏色的圖像處理的難度。所以本文采用將RGB模型轉(zhuǎn)換成HSV模型的方法進(jìn)行顏色分割[6-8]。RGB模型轉(zhuǎn)HSV模型算法如下: (3) (4) (5) V=Cmax (6) 式中:H為色調(diào);S為飽和度;V為明度。 3.2.2 自適應(yīng)彩色圖像分割,形態(tài)學(xué)處理 大多數(shù)PCB板圖像中,底板的顏色應(yīng)該是圖像中單種顏色占據(jù)區(qū)域最多的,對應(yīng)到圖像矩陣中即為占據(jù)像素點(diǎn)最多的。將實驗圖像轉(zhuǎn)換成HSV模型,繪制出H分量的直方圖,如圖5所示。 圖5 H分量直方圖 從圖5可以看出,像素點(diǎn)的絕大部分分布在底板顏色綠色附近,通過H分量的直方圖求得像素最多的色調(diào)值為Hm,經(jīng)過多次試驗最終選取以Hm為中心、15為半徑的領(lǐng)域內(nèi),分別求解Hm左右兩側(cè)H斜率最大的點(diǎn)Hl、Hr的值,因為斜率大則說明相鄰色調(diào)之間的區(qū)分度越大,越適合作為顏色分割的閾值。將Hl、Hr作為左右閾值進(jìn)行圖像分割,當(dāng)Hm在Hl和Hr之間時,S=255、V=0轉(zhuǎn)化為RGB模型時為黑色,反之S=0、V=255轉(zhuǎn)化為RGB模型時為白色,此操作的目的是為了簡化后續(xù)的運(yùn)算具體公式如下: (7) (8) 式中:S為飽和度;V為明度;Hm為色調(diào)中像素點(diǎn)最多的值;Hl為Hm領(lǐng)域左側(cè)斜率最大的H值;Hr為Hm領(lǐng)域右側(cè)斜率最大的H值。 將處理后的HSV圖像轉(zhuǎn)換到RGB模型中,再轉(zhuǎn)化為灰度圖像,最終將圖像轉(zhuǎn)化為二值圖像,其中目標(biāo)區(qū)域像素點(diǎn)的值為0,非目標(biāo)區(qū)域像素點(diǎn)值為1。二值圖像如圖6所示。 圖6 顏色分割處理后的二值圖像 對分割所得二值圖像進(jìn)行形態(tài)學(xué)處理,通過PCB板圖像的特征(如形狀、大小等),對二值圖像進(jìn)行篩選完成分割,形態(tài)學(xué)處理后的圖像如圖7所示。 圖7 形態(tài)學(xué)處理后的二值圖像 將采集到的圖像轉(zhuǎn)化為易于運(yùn)算的二值圖像后,需要定位圖像中可以插入支撐柱的位置。首先進(jìn)行模板匹配,設(shè)支撐柱橫截面大小對應(yīng)到圖像中為p×q的矩形,對二值圖像進(jìn)行有效卷積運(yùn)算,卷積核為p×q的全1矩陣[9-10],具體運(yùn)算公式如下: (9) 式中:f為輸入的二值圖像;h為卷積核;m、n分別為特征映射矩陣的行數(shù)與列數(shù)。 在卷積運(yùn)算后所得的特征映射矩陣中,遍歷該矩陣中的所有元素,查找出所有滿足值為p×q的元素,利用元素坐標(biāo)計算可以求得滿足要求的支撐坐標(biāo)。但是該模板匹配算法會帶來2個問題:第一,由于非目標(biāo)區(qū)域與目標(biāo)區(qū)域分布的不均勻,導(dǎo)致目標(biāo)區(qū)域支撐柱分布的不合理,有些地方支撐柱分布過于密集。第二,在特征映射矩陣中逐個遍歷尋找滿足要求的元素,含有算法復(fù)雜度過大、運(yùn)行時間過長等問題。針對這個問題,本文提出了中心擴(kuò)散查找算法。將特征映射矩陣均勻劃分為幾塊相同子矩陣,設(shè)子矩陣的行數(shù)和列數(shù)分別為l、w,以將特征映射矩陣分割成4等份的子矩陣為例,選取每個子矩陣中心元素的坐標(biāo),設(shè)中心元素坐標(biāo)為a(x,y),則按如下公式進(jìn)行查找: (10) 式中:a(p,q)為需要查找的子矩陣的坐標(biāo);n為以中心像素向外擴(kuò)散的層數(shù)。 每塊子矩陣中找到滿足要求的矩陣元素就退出循環(huán),顯示定位的支撐柱位置。最終結(jié)果如圖8所示。圖像分割模式由上位機(jī)人為選擇。此算法不僅減少了運(yùn)算時間,而且使得支撐柱放置區(qū)域盡可能落在每個區(qū)域的中心,提高了支撐的穩(wěn)定性,經(jīng)過實驗證明具有很好的魯棒性。 圖8 最終標(biāo)記圖像 下位機(jī)軟件系統(tǒng)是在Windows環(huán)境下使用Keil uVision5軟件進(jìn)行開發(fā)的,采用C語言進(jìn)行模塊化的編程思路,將不同的模塊獨(dú)立封裝在各自的C文件中,通過包含頭文件的方式進(jìn)行調(diào)用,使得程序更加簡明清晰,增加了程序的可讀性。 給設(shè)備供電后,串口讀取上位機(jī)的坐標(biāo)集數(shù)據(jù)給主控芯片,通過串口將數(shù)據(jù)傳給主控芯片,主控芯片接收到數(shù)據(jù)后,將對應(yīng)坐標(biāo)指示燈點(diǎn)亮,利用FSMC來控制屏幕顯示坐標(biāo)。主控芯片通過矩陣式紅外傳感器模塊不斷掃描監(jiān)視輸入端口的狀態(tài)來判斷是否有支撐柱插入,若有支撐柱插入則調(diào)用自檢程序,判斷支撐柱位置,若放置正確則將對應(yīng)坐標(biāo)指示燈熄滅,顯示屏上對應(yīng)坐標(biāo)顯示完成,若放置錯誤則會觸發(fā)聲光報警,提醒操作者放置錯誤。放置正確后再判斷是否所有的坐標(biāo)都插入支撐柱,若沒有則繼續(xù)監(jiān)視端口狀態(tài),等待下次頂針的插入,反之,屏幕顯示全部插入完成,單次插入支撐柱任務(wù)完成,通過觸摸屏按鍵開啟下一次操作。程序總體流程圖如圖9所示。 圖9 程序總體流程圖 圖10是通過QT軟件編寫的上位機(jī)操作系統(tǒng),右側(cè)圖片開始時為攝像頭采集的動態(tài)圖像,待目標(biāo)物體放置完成后可通過點(diǎn)擊確認(rèn)圖像按鈕將其變?yōu)殪o態(tài)圖像,來作為待處理圖像。上位機(jī)需要人為選定圖像分割模式,依據(jù)實際需求開發(fā)了5種分割模式,分別為4、6、9、12、16分割模式。界面左邊顯示的是處理后的二值圖像,右邊顯示的是目標(biāo)識別后的原圖像。圖片下方顯示支撐區(qū)域的坐標(biāo),經(jīng)過人為審查滿意后,將數(shù)據(jù)發(fā)送給下位機(jī),并且可以通過上位機(jī)檢測支撐柱放置的狀態(tài)。 圖10 PCB板識別定位輔助監(jiān)控平臺圖 為了驗證系統(tǒng)的可行性,采用10 000張PCB板圖片作為實驗樣本進(jìn)行檢測,分別用5種分割模式一次進(jìn)行實驗,實驗測試結(jié)果如表1所示。 表1 圖像識別測試結(jié)果 從表1可以看出對圖像分割越密集,識別率越低。圖像分割最密集的16分割模式,識別率可達(dá)98.13%。 系統(tǒng)采用圖像識別算法對PCB板進(jìn)行識別定位,將圖像的RGB模型轉(zhuǎn)換成HSV模型,利用顏色進(jìn)行圖像的分割,針對實際問題提出了基于彩色圖像的自適應(yīng)分割算法和中心擴(kuò)散查找算法,完成圖像的識別并且簡化實際問題中的復(fù)雜運(yùn)算,圖像識別率高達(dá)98%以上。下位機(jī)的防呆模塊和指示模塊能夠很好地引導(dǎo)人工完成工作,保證工作的準(zhǔn)確性。此系統(tǒng)還具有反應(yīng)靈敏、可靠性好、普適性強(qiáng)等特點(diǎn)。2.5 顯示模塊
3 圖像識別處理
3.1 圖像處理目的
3.2 顏色識別
3.3 模板匹配
4 下位機(jī)軟件設(shè)計
5 上位機(jī)系統(tǒng)
6 系統(tǒng)測試
7 結(jié)束語