文獻標識碼: 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)