李 俊
(安徽理工大學電氣與信息工程學院,淮南 232000)
自集成電路被應用于生產(chǎn)商業(yè)產(chǎn)品以來,工業(yè)生產(chǎn)過程對其每一步的生產(chǎn)和檢測不斷地進行更新迭代,其中對生產(chǎn)過程中印制電路板(Printed Circuit Board,PCB)的外觀缺陷檢測尤為重要,它關(guān)系著產(chǎn)品最后的品質(zhì)。所以在PCB 板的工業(yè)生產(chǎn)的每一個環(huán)節(jié)都要進行缺陷檢測,確保在貼片之前,貼片區(qū)域無異物、破損,進入回焊爐之前,元器件都完好等等,因為只要其中一個環(huán)節(jié)出了錯,這個PCB 板就報廢了,這對企業(yè)來說無疑是重大損失?,F(xiàn)在PCB 板集成度高,成本更貴。目前中國大陸的PCB 產(chǎn)值已占全球50%以上,隨著電子產(chǎn)品的不斷更新?lián)Q代,3C 產(chǎn)品對PCB 的需求逐漸加大,而在3C 產(chǎn)品中手機的更新?lián)Q代最為頻繁,銷售量也是最大的。所以,針對手機部件從內(nèi)到外的檢測貫穿手機生產(chǎn)的每個環(huán)節(jié),其中最為重要的是對手機主板生產(chǎn)過程中各種缺陷的檢測。本文主要針對手機主板在生產(chǎn)過程中產(chǎn)生的缺陷進行檢測,以提高生產(chǎn)效率。
PCB 的功能是提供完成第一層級構(gòu)裝的元器件與其它必須的電子電路零件結(jié)合的基地,以組成一個具有特定功能的模組或者產(chǎn)品。所以PCB 在整個電子產(chǎn)品中,扮演著整合連結(jié)其它所有功能的角色,因此當電子產(chǎn)品功能故障時,最先被考慮的往往就是PCB。所以針對PCB 的檢測一直以來是人們熱門研究的課題。改革開放以來,我國工業(yè)化生產(chǎn)速度也大幅度加快,其中印制板是電子信息產(chǎn)業(yè)的基礎(chǔ),已成為電子信息的支柱產(chǎn)業(yè)。
然而,手機PCB 板生產(chǎn)的檢測還存在短板,拖累生產(chǎn)效率。圖1 為手機主板PCB 工業(yè)生產(chǎn)流程圖,其中AOI部分為視覺檢測部分,傳統(tǒng)方式為人工檢測、電氣檢測和自動光學設(shè)備檢測。目前大多數(shù)工業(yè)流水線基本都是采用人工配合機器進行生產(chǎn)檢測,太依賴于人的精神狀況,易使人視覺疲勞,而產(chǎn)生漏檢。電氣檢測投資成本大,不適于小批量生產(chǎn),且電氣檢測設(shè)備安裝調(diào)試時間長,不滿足手機迭代頻繁的需求。雖然自動光學檢測設(shè)備,可以解決人工檢測的一些弊端,但它嚴重依賴圖像處理算法,如果圖像處理算法效果不佳,會產(chǎn)生大量誤判,且可移植性不強,開發(fā)難度大。
圖1 手機主板生產(chǎn)流程圖
近年來隨著GPU 算力的增加,處理圖像的速度大幅度提高,深度學習在圖像領(lǐng)域發(fā)展迅速。為了滿足工業(yè)生產(chǎn)對PCB 缺陷檢測的需求,本文將深度學習的槪念引入PCB 板缺陷檢測中。其中工業(yè)生產(chǎn)主要檢測手機主板在生產(chǎn)流程中貼片區(qū)域是否存在飛件、臟污、元器件是否破損、異物、劃痕等影響PCB 板電氣特性的現(xiàn)象,以及外觀的一些缺陷。如圖2 所示,其中(a)為飛件,(b)為連接器破損,(c)為異物。通過這種技術(shù),不僅可以有效避免人工檢測中易疲勞,主觀性強和效率低下的缺點,還可以實現(xiàn)24 h全天候的檢測。
圖2 缺陷類型
機器視覺(machine vision)是人工智能的一個分支,是通過相機拍取的圖像聯(lián)合計算機代替人眼和大腦對目標進行定位、識別、跟蹤、測量等一系列任務,使處理后的信息更有利于人和機器的判斷處理。工業(yè)相機主要有CMOS和CCD 兩種,機器視覺系統(tǒng)將相機拍攝到的圖像輸入給圖像處理系統(tǒng),得到拍攝對象的形態(tài)信息,根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字化信號;圖像系統(tǒng)對這些信號進行各種運算來抽取目標的特征,進而根據(jù)判別的結(jié)果來控制現(xiàn)場的設(shè)備動作。機器視覺的目標檢測任務為計算機視覺領(lǐng)域中最基礎(chǔ)的任務之一,但由于圖像質(zhì)量,光照,相機分辨率的不同導致目標檢測也成為最具挑戰(zhàn)性的任務。
目標檢測算法主要有圖像特征提取、候選區(qū)域生成與候選區(qū)域分類三個步驟。視覺檢測技術(shù)分為傳統(tǒng)技術(shù)與深度學習方法,傳統(tǒng)算法基于人工設(shè)計的特征算子來提取圖像,這些算子普遍基于底層視覺特征來設(shè)計,因此很難獲取復雜圖像的語義信息,嚴重影響了算法的泛化性。而且由于背景相似等原因,無法檢測出目標缺陷的位置。當數(shù)據(jù)量越來越大的時候,傳統(tǒng)算法的劣勢就越發(fā)明顯。因此引入深度學習模型引入顯得尤為重要。
基于深度的目標檢測算法主要分為兩個流派:①以R-CNN 系列為代表的兩階段算法;②以YOLO,SSD為代表的一階段算法。具體來說,兩階段算法是先在圖像上生成候選區(qū)域,然后對每一個候選區(qū)域依次進行分類與回歸。一階段算法是直接在整張圖像上完成所有目標的定位和分類,直接回歸,略去了生成候選區(qū)域這一操作。本文采用的目標檢測算法為一階段檢測算法中的代表算法SSD。
SSD(single shot multibox detector)是2016 年由Liu 等人提出的一種單階段目標檢測算法,其主要思路是利用卷積網(wǎng)絡提取特征后,均勻地在圖片的不同位置進行密集抽樣,抽樣時采用不同尺度和長寬比,目標的分類和預測框的回歸同時進行,整個過程只需要一步,所以其優(yōu)勢是速度快。SSD 網(wǎng)絡以VGG-16 為主干網(wǎng)絡,并將VGG16的兩個全連接層轉(zhuǎn)化為卷積層,使其成為一個全卷積網(wǎng)絡(FCN),網(wǎng)絡結(jié)構(gòu)如圖3所示。
圖3 SSD網(wǎng)絡結(jié)構(gòu)
主干網(wǎng)絡作用到conv5_3 的輸出結(jié)果,作為接下來卷積層的輸入。采用多尺度Feature Map的預測,在預測的時候針對6個不同的尺度進行分別預測,這6個尺度的結(jié)果,分別作為后續(xù)檢測層的輸入,6 個連線代表6 個feature map,其中從19*19 到10*10 通過下采樣的操作來完成。下采樣時會采用padding 來進行補充,最后通過NMS(non maximum suppression)對檢測結(jié)果進行合并和篩選。對每一層進行Default bounding boxes 的提取,每一個Default bounding boxes 都會針對每個類別的分數(shù)的預測以及相應的偏量值。
如何平衡網(wǎng)絡模型的大小和計算資源之間的關(guān)系,這是設(shè)計網(wǎng)絡需要考慮的地方。因此對VGGNet 而言,除了num_output 數(shù)量龐大以外,主要采用多卷積進行堆疊的方式來構(gòu)造網(wǎng)絡結(jié)構(gòu),為了加快網(wǎng)絡inference 的時間,本文在保證檢測精度的同時采用減少網(wǎng)絡參數(shù)、去除一些網(wǎng)絡層的做法達到檢測目的。
實驗基于Caffe 深度學習框架進行,設(shè)備為工廠工控機,其配置為CPU Core i7-9750H,顯卡NVIDIA 3080 10 G 顯存,物理內(nèi)存為32 G,使用編程語言版本為Python 3.8.2,操作系統(tǒng)為Ubuntu18.04。
本文的數(shù)據(jù)收集自工業(yè)生產(chǎn)過程中AOI 實時拍攝的照片,在AOI 設(shè)備運行過程中機器視覺系統(tǒng)發(fā)揮圖像處理與檢測的作用,根據(jù)運動控制的傳感信號飛拍每一幀畫面,將在每一個點位拍攝的圖片拼接成一副完整的圖片。根據(jù)客戶出具的檢測區(qū)域需求,先通過模板匹配定位PCB 上固定不變的兩個點,通過矩形框畫出需要檢測的區(qū)域,通過位置仿射完成整個區(qū)域位置的標出,通過Halcon 對每個區(qū)域進行裁剪,將寬度和長度最大的尺度作為這個待檢缺陷的尺寸,同樣使用Halcon 將同一個待檢缺陷類別區(qū)域擴張為統(tǒng)一大小。將裁剪得到的小圖統(tǒng)一導入到精靈標注助手中,完成缺陷標注,數(shù)據(jù)集劃分。由于待檢區(qū)域眾多,缺陷類別復雜,為了簡化檢測任務,每個AOI 由兩個及以上缺陷檢測模型檢測,裁剪的目的也是為了將檢測任務簡化為二分類問題。接下來針對飛件異物模型進行訓練。
實驗將含有飛件的NG圖片和無缺陷的OK圖片共2025張,按照訓練集和測試集的比例為7∶3劃分,總共進行600 次迭代。實驗結(jié)果如圖4 和表1所示。
圖4 實驗結(jié)果
表1 實驗結(jié)報表
bbox_accuracy 標注框類別,值越高說明學習效率越好;loc_loss_bbox 定位框位置回歸的loss,值越低學習效果越好;loc_loss_cls 定位框類別和位置回歸的loss,值越低學習效果越好;loss_bbox 實際類別分類和位置二次修正的loss,值越低學習效果越好;loss_cls 實際類別數(shù)分類和位置二次修正的loss,值越低學習效果越好。
雖然降低網(wǎng)絡參數(shù)和減少網(wǎng)絡層數(shù)可以加快網(wǎng)絡推理時間,滿足客戶對于CT 與檢測的要求,但同時帶來了由于深層次信息的丟失和小目標檢測效果不好所導致的漏檢,過檢的問題,比如現(xiàn)場生產(chǎn)產(chǎn)生的毛絲等這些小尺度缺陷目標,檢測效果不好。因此,在后期優(yōu)化網(wǎng)絡的時候可以考慮從以下方面進行改進:①數(shù)據(jù)打包的時候可以考慮多加入一些小樣本信息;②訓練樣本規(guī)模盡可能增大,可以嘗試獲取合并多個不同數(shù)據(jù)集;③采用ResNet 網(wǎng)絡和FPN 等特征的主干網(wǎng)絡;④采用更好的loss進行訓練。