安勝彪,楊 旭,陳書旺,趙立欣,李亞航,白 宇
(河北科技大學(xué) 信息科學(xué)與工程學(xué)院,河北 石家莊 050018)
隨著無人駕駛、5G和物聯(lián)網(wǎng)等新興技術(shù)的發(fā)展,芯片被廣泛應(yīng)用在計(jì)算機(jī)、移動(dòng)電話、智能終端和其他數(shù)字電器等設(shè)備中。芯片排序、出廠前的缺陷質(zhì)量檢測、芯片封裝前的定位和尺寸檢測等都需要對芯片進(jìn)行識(shí)別。常用的芯片識(shí)別方法可分為經(jīng)典的圖像處理方法和深度學(xué)習(xí)方法。傳統(tǒng)圖像處理方法中如周偉等[1]改進(jìn)Harris角點(diǎn)檢測算法,求得芯片的角度信息并對圖像進(jìn)行校正;Hou等[2]利用模板匹配和鄰域比較算法實(shí)現(xiàn)芯片缺陷檢測。深度學(xué)習(xí)方法中如肖磊[3]將全局平均池化層與Alexnet[4]卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,對6種缺陷類型的壓敏電阻進(jìn)行缺陷分類;Zhu等[5]在對IC芯片圖像進(jìn)行預(yù)處理后獲得單個(gè)字符圖像,改進(jìn)輕量化的LeNet-5[6]對2個(gè)方向的芯片表面字符進(jìn)行檢測。
由于芯片種類較多,傳統(tǒng)圖像處理算法需要對每種芯片設(shè)計(jì)特定的特征提取算法,耗費(fèi)大量的人力物力,效率較低。而深度學(xué)習(xí)方法可以自動(dòng)從樣本中學(xué)習(xí)特征,無需人工提取特征和參數(shù)設(shè)置,與傳統(tǒng)方法相比更加具有適應(yīng)性,可以減小外界客觀因素造成的誤檢情況。因此本文基于深度學(xué)習(xí)的方法對芯片進(jìn)行識(shí)別定位。
近年來基于深度學(xué)習(xí)的目標(biāo)檢測方法被大量提出,其中具有代表的有單階段的YOLO[7-10]系列和雙階段的Faster R-CNN[11]。本文的圖像來自智能排料系統(tǒng)中的芯片,運(yùn)動(dòng)控制模塊根據(jù)芯片的位置和角度對芯片進(jìn)行轉(zhuǎn)移排序。常用的水平目標(biāo)檢測并不能檢測出物體的角度,因此有學(xué)者提出了旋轉(zhuǎn)目標(biāo)檢測方法,如Liu等[12]提出的R2CNN方法使用Faster R-CNN[11]框架,設(shè)計(jì)了帶斜框的非極大值抑制操作;Ma等[13]采用RRPN將旋轉(zhuǎn)因素融入到區(qū)域提取網(wǎng)絡(luò)中實(shí)現(xiàn)多方向的文字檢測,將RoI Pooling[11]改為帶角度的RoI Pooling,提取旋轉(zhuǎn)目標(biāo)特征。旋轉(zhuǎn)目標(biāo)檢測大多用于遙感圖像和文字檢測中,目前沒有文獻(xiàn)將旋轉(zhuǎn)目標(biāo)檢測應(yīng)用在芯片檢測中,且很多旋轉(zhuǎn)目標(biāo)檢測方法是基于二階段的Faster R-CNN[11]檢測網(wǎng)絡(luò),在區(qū)域建議部分引入旋轉(zhuǎn)錨框得到旋轉(zhuǎn)候選區(qū)域,大量的旋轉(zhuǎn)候選區(qū)域在后續(xù)的計(jì)算和非極大值抑制過程中大大增加了計(jì)算量,降低了檢測速度。
本文以排料系統(tǒng)中的芯片為實(shí)驗(yàn)對象,求得芯片位置和角度信息,為自動(dòng)化抓取模塊提供準(zhǔn)確的數(shù)據(jù)支持,提出了一種級(jí)聯(lián)式卷積神經(jīng)網(wǎng)絡(luò)的芯片檢測方法,主要貢獻(xiàn)有以下3點(diǎn):
① 采用級(jí)聯(lián)的工作方式將芯片檢測分為目標(biāo)檢測和角度檢測2個(gè)階段。第1級(jí)網(wǎng)絡(luò)為芯片目標(biāo)檢測網(wǎng)絡(luò),采用改進(jìn)的YOLOv5s模型檢測芯片位置;第2級(jí)網(wǎng)絡(luò)為關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò),對芯片的4個(gè)角頂點(diǎn)進(jìn)行回歸求取角度信息。第1級(jí)網(wǎng)絡(luò)可以為第2級(jí)網(wǎng)絡(luò)的任務(wù)提供輸入圖像,級(jí)聯(lián)的工作方式通用性強(qiáng)、靈活性高。
② 在第2級(jí)網(wǎng)絡(luò)中,提出使用關(guān)鍵點(diǎn)回歸的方式求取角度信息。根據(jù)芯片的顯著形狀特征,回歸出芯片的4個(gè)角頂點(diǎn),再對角頂點(diǎn)進(jìn)行計(jì)算得到角度信息。這種方式可以避免傳統(tǒng)圖像處理中的特征設(shè)計(jì)環(huán)節(jié),同時(shí)減少深度學(xué)習(xí)算法中旋轉(zhuǎn)目標(biāo)檢測復(fù)雜的旋轉(zhuǎn)錨框計(jì)算。
③ 針對大尺寸目標(biāo)密集型圖像,提出疊加式裁剪算法進(jìn)行數(shù)據(jù)預(yù)處理,在不改變圖像質(zhì)量的同時(shí)引入較少的計(jì)算量。在數(shù)據(jù)整合和YOLOv5s模型的預(yù)測框篩選階段使用DIou-NMS[14],提高了小目標(biāo)和密集目標(biāo)的檢測精度。
本文采用級(jí)聯(lián)的工作方式,第1級(jí)網(wǎng)絡(luò)為芯片目標(biāo)檢測網(wǎng)絡(luò),第2級(jí)網(wǎng)絡(luò)為關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)??傮w框架設(shè)計(jì)如圖1所示,大尺寸圖像為原始數(shù)據(jù)集。首先對大尺寸圖像進(jìn)行疊加式裁剪處理,得到小尺寸的子圖作為芯片目標(biāo)檢測網(wǎng)絡(luò)的輸入。芯片目標(biāo)檢測網(wǎng)絡(luò)利用結(jié)合DIoU-NMS[14]的YOLOv5s模型對子圖進(jìn)行檢測,將子圖檢測結(jié)果進(jìn)行數(shù)據(jù)整合處理后獲得大尺寸圖像上每個(gè)芯片的水平目標(biāo)框。接下來對水平目標(biāo)框進(jìn)行擴(kuò)邊處理后將只包含單個(gè)芯片的圖像裁剪下來作為關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)的輸入。芯片的表面結(jié)構(gòu)主要由塑封體和引腳組成,顏色單一,且位于中心的塑封體多為黑色的正方形或長方形,特征單調(diào)。因此,第2級(jí)網(wǎng)絡(luò)將芯片的4個(gè)角頂點(diǎn)作為回歸對象,最后根據(jù)回歸出的4個(gè)角頂點(diǎn)計(jì)算每個(gè)芯片的角度。求得芯片位置和角度后,將信息傳給后續(xù)的運(yùn)動(dòng)控制系統(tǒng)來完成芯片的轉(zhuǎn)移。
圖1 總體框架Fig.1 Overall architecture
1.2.1 芯片目標(biāo)檢測網(wǎng)絡(luò)
為更好地滿足工業(yè)上對檢測速度和精度的要求,芯片目標(biāo)檢測網(wǎng)絡(luò)選用輕量化的YOLOv5s模型。YOLOv5s沒有使用 RPN生成候選區(qū)域,而是直接在卷積神經(jīng)網(wǎng)絡(luò)中提取特征來預(yù)測物體分類和位置信息,是一種端到端的目標(biāo)檢測算法,主要分為主干網(wǎng)絡(luò)、neck層和預(yù)測層。其中,主干網(wǎng)絡(luò)采用CSPDarknet53結(jié)構(gòu),同時(shí)引入Focus模塊,大大減少層數(shù)和參數(shù)量;neck網(wǎng)絡(luò)包含PAN[15]和SPP[16]模塊,將高層特征信息與不同層的輸出特征進(jìn)行聚合,加強(qiáng)特征融合能力。經(jīng)過特征提取后,預(yù)測層共得到3種不同尺度的特征圖。YOLOv5s中引入了自適應(yīng)錨框,直接在特征圖上設(shè)置大小不同的錨框并進(jìn)行回歸和分類。
YOLOv5共有4種不同深度和寬度的模型,為考慮工業(yè)中的部署條件,本文采用模型最小的YOLOv5s進(jìn)行訓(xùn)練,模型結(jié)構(gòu)如圖2所示。其中CBL由Conv,BN和LeakyRelu組成,CSP1結(jié)構(gòu)與YOLOv4[10]中的CSP結(jié)構(gòu)一致。實(shí)際應(yīng)用中,芯片種類復(fù)雜但形狀上具有一定的相似性,如塑封芯片多由矩形塑封體和數(shù)量不等的引腳組成。某些特殊情況下芯片同為矩形且引腳數(shù)目也相同,此時(shí)需要根據(jù)更細(xì)節(jié)的信息如表面的數(shù)字標(biāo)識(shí)來判斷類型。YOLOv5在類間差異較小的情況下可能會(huì)造成類型的誤檢,因此本文把不同類型的芯片歸為一類,專注識(shí)別芯片的位置。網(wǎng)絡(luò)的預(yù)測層(YOLOHead)輸出為S×S×(5+C)×K,其中S為3種不同尺度的特征圖大小,分別為80,40,20,C為對象類別數(shù),取值為1,K為每種尺度下的錨框個(gè)數(shù),取值為3。以輸出的最大特征圖為例,網(wǎng)絡(luò)的預(yù)測層輸出大小為(80 pixel×80 pixel×18)。
圖2 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 YOLOv5s network structure
在采用YOLOv5s模型對子圖進(jìn)行目標(biāo)檢測后,使用數(shù)據(jù)整合處理對子圖上的結(jié)果進(jìn)行整合,得到大尺寸圖像上每個(gè)芯片的位置。首先根據(jù)芯片位置將單個(gè)芯片圖像裁剪下來并進(jìn)行保存,之后按照裁剪順序?qū)D像傳給關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)進(jìn)行檢測。
1.2.2 關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)芯片的形狀特征,本文將單個(gè)芯片的4個(gè)角頂點(diǎn)作為檢測對象,專注識(shí)別芯片的4個(gè)角頂點(diǎn)。關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)的具體結(jié)構(gòu)如圖3所示。
圖3 關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Key points regression network structure
該模型采用全卷積的結(jié)構(gòu),網(wǎng)絡(luò)的輸入端為128 pixel×128 pixel×3大小的圖像。經(jīng)過多個(gè)大小為3×3的卷積操作和卷積核大小為2×2的最大池化操作來提取芯片特征和降低特征圖大小。網(wǎng)絡(luò)最后輸出為大小1×1、通道數(shù)為8的特征圖,8通道代表4個(gè)關(guān)鍵點(diǎn)坐標(biāo)po=(x1,y1;x2,y2;x3,y3;x4,y4)。網(wǎng)絡(luò)最后一層用1×1的卷積替代了全連接層,減小了計(jì)算參數(shù)。損失函數(shù)采用smoothL1,計(jì)算如下:
(1)
式中,x為真實(shí)的點(diǎn)坐標(biāo)和預(yù)測出的點(diǎn)坐標(biāo)的差值。smoothL1使損失函數(shù)值對于離群點(diǎn)更加魯棒[23],相比于L2損失函數(shù),其對離群點(diǎn)、異常值不敏感,可以有效解決梯度爆炸問題。
疊加式裁剪算法是芯片目標(biāo)檢測網(wǎng)絡(luò)的數(shù)據(jù)預(yù)處理過程。本文的芯片盛放在透明亞克力防靜電成像專用托盤,該托盤同時(shí)還是一個(gè)翻轉(zhuǎn)機(jī)構(gòu)。為給后續(xù)的檢測任務(wù)提供高清數(shù)據(jù)集,采用工業(yè)CCD掃描儀進(jìn)行拍攝,得到的圖像大小為14 032 pixel×10 208 pixel。其中最小的芯片為140 pixel×70 pixel,最大的為482 pixel×482 piexl。將大尺寸圖像輸入到Y(jié)OLOv5s模型中,32倍下采樣后的特征圖為438 pixel×319 pixel,大于最小芯片所占的像素,由于下采樣倍數(shù)太大無法保證小目標(biāo)的檢測精度。下采樣倍數(shù)過小(為8倍)時(shí),網(wǎng)絡(luò)前向傳播需要在內(nèi)存中保存大尺寸的特征圖,會(huì)大量耗費(fèi)GPU資源,容易造成顯存爆炸,無法進(jìn)行正常的訓(xùn)練及推理。因此在圖像輸入到網(wǎng)絡(luò)之前,對大尺寸圖像進(jìn)行了疊加式裁剪處理,在保證圖像質(zhì)量的同時(shí)引入較少的計(jì)算量,適用于檢測不同大小的芯片。該算法的輸入為1張14 032 pixel×10 208 pixel大小的圖像,輸出為49張877 pixel×638 pixel大小的子圖。在裁剪前,需要先將高分辨率圖像的長寬都縮小為原來的1/4,圖像大小變?yōu)? 016 pixel×5 104 pixel,7 106記作ho,5 104記作wo。裁剪步驟如下:
① 將長寬比4∶4進(jìn)行圖像裁剪,確定出子圖大小為877 pixel×638 pixel,877記作hs,638記作ws;
② 將wo的左右2端各留出ws/2的距離,對剩下的寬邊(wo-ws)進(jìn)行三等分,對長邊進(jìn)行四等分;
③ 將ho的左右2端留出hs/2的距離,對剩下的長邊(ho-hs)進(jìn)行三等分,對寬邊進(jìn)行四等分;
④ 將wo,ho的左右2端各留出ws/2,hs/2的距離,對剩余圖像的長寬進(jìn)行三等分。
本文的疊加式裁剪算法使圖像之間的重疊程度變?yōu)?0%,加大了重疊面積,減少了位于圖像邊緣的冗余子圖,可以確保不同大小的芯片都能完整地出現(xiàn)在每一張子圖上,減少漏檢情況。圖4是對實(shí)際圖像進(jìn)行裁剪后的效果圖,圖4(a)為原圖,圖4(b)~(e)為按上述4步切割后的子圖。該方法適同樣用于其他大尺寸的圖像,只需要確定出子圖的標(biāo)準(zhǔn)長寬,即可生成相應(yīng)的子圖。
(a) 原始圖像
(b) 裁剪1
(c) 裁剪2
(d) 裁剪3
(e) 裁剪4
關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)的輸入圖像中只包含單個(gè)芯片,為確保芯片的4個(gè)角頂點(diǎn)都能完整地出現(xiàn)在圖像中,避免芯片4個(gè)角頂點(diǎn)位于圖片邊緣而影響檢測效果,本文需要裁剪出只包含單個(gè)芯片的圖像。該方法作為關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)的數(shù)據(jù)預(yù)處理過程,以芯片的原始水平框?yàn)榛鶞?zhǔn),將水平目標(biāo)框的長寬向外擴(kuò)展最大邊長的10%。圖5為裁剪示例,即將圖中紅色水平框擴(kuò)展為綠色水平框,并將綠色水平框所包含的圖像裁剪下來進(jìn)行保存。
圖5 單個(gè)芯片裁剪示例Fig.5 Example of cutting out a single chip
在訓(xùn)練階段需要求得對應(yīng)于裁剪圖像中芯片的4個(gè)角頂點(diǎn)坐標(biāo)信息。推理測試階段,第1級(jí)網(wǎng)絡(luò)的檢測結(jié)果進(jìn)行單個(gè)芯片裁剪處理后將作為第2級(jí)網(wǎng)絡(luò)的輸入數(shù)據(jù)。
本文拍攝的圖像尺寸較大,因此在推理測試過程中,先使用疊加式裁剪算法對大尺寸圖像進(jìn)行裁剪得到子圖,再調(diào)用YOLOv5s對每張子圖進(jìn)行目標(biāo)檢測。數(shù)據(jù)整合處理是將每張子圖的檢測結(jié)果根據(jù)裁剪規(guī)律映射到其對應(yīng)的大尺寸圖像上,由于子圖間有疊加且芯片比較密集,同一個(gè)芯片在不同子圖上可能會(huì)被重復(fù)檢測到,存在一個(gè)目標(biāo)有多個(gè)預(yù)測框的情況。針對這種情況,傳統(tǒng)的NMS只利用IoU作為評(píng)判標(biāo)準(zhǔn),對大于閾值的框進(jìn)行剔除,該閾值的選取是靠經(jīng)驗(yàn)選取,且IoU的計(jì)算只考慮了2個(gè)框的重疊面積,對于重疊預(yù)測框的關(guān)系表達(dá)不夠全面。因此在數(shù)據(jù)整合階段,選用DIoU-NMS[14]進(jìn)行預(yù)測框的篩選,DIoU計(jì)算如下:
(2)
式中,d為預(yù)測框和真實(shí)框的中心點(diǎn)之間的距離;c為預(yù)測框和真實(shí)框組成的最小外接矩形的對角線長度。DIoU考慮了2個(gè)預(yù)測框中心點(diǎn)的距離,若相鄰框的中心點(diǎn)越靠近當(dāng)前最大得分框的中心點(diǎn),則更有可能是冗余框,對重疊的目標(biāo)框有較好的篩選效果,DIoU的原理如圖6所示。利用DIoU-NMS[14]對整合后的預(yù)測框進(jìn)行篩選即可得到圖像上每個(gè)芯片的水平目標(biāo)框。
圖6 DIoU原理Fig.6 DIoU principle diagram
數(shù)據(jù)集包括3種不同類型芯片,分別為小外形晶體管、中形封裝芯片和無引腳芯片載體。使用rolabelimg對大尺寸圖像進(jìn)行標(biāo)記,可根據(jù)標(biāo)記信息求出每個(gè)芯片的4個(gè)角頂點(diǎn)坐標(biāo)。為獲取兩級(jí)網(wǎng)絡(luò)的輸入數(shù)據(jù)集,首先對大尺寸圖像進(jìn)行疊加式裁剪共得到7 840張子圖,類別統(tǒng)一設(shè)置為0,作為第1級(jí)網(wǎng)絡(luò)的輸入。其次,根據(jù)高分辨率圖像的標(biāo)記信息進(jìn)行單個(gè)芯片裁剪處理,得到6 000張包含單個(gè)芯片的圖像,同時(shí)生成帶有芯片角頂點(diǎn)坐標(biāo)的txt文件,作為第2級(jí)網(wǎng)絡(luò)的訓(xùn)練輸入。2個(gè)網(wǎng)絡(luò)所用的數(shù)據(jù)集都按8∶1∶1的比例劃分成訓(xùn)練集、驗(yàn)證集和測試集。
本文的網(wǎng)絡(luò)訓(xùn)練在GeForce GTX 2080硬件平臺(tái)下進(jìn)行。芯片目標(biāo)檢測網(wǎng)絡(luò)的輸入圖像大小為640 pixel×640 pixel,關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)輸入圖像大小為128 pixel×128 pixel。均采用Adam優(yōu)化方法,初始學(xué)習(xí)率設(shè)置為0.001,學(xué)習(xí)率采用指數(shù)衰減方式,批量大小設(shè)置為64。
本文的芯片大小不一,無引腳芯片體積約是小外形晶體管體積的2~3倍,密集程度也不相同。YOLOv5s中引入了FPN[17]和PAN[15]結(jié)構(gòu)進(jìn)行多尺度預(yù)測,將高層次的語義信息和低層次的位置信息進(jìn)行融合,同時(shí)利用DIoU-NMS對預(yù)測框進(jìn)行篩選,提高了小目標(biāo)及密集物體檢測的精度,能夠滿足芯片檢測的要求。
小外形晶體管和無引腳芯片的部分檢測結(jié)果如圖7所示,當(dāng)芯片大于其面積的一半出現(xiàn)在圖像中時(shí),芯片都可以被檢測出來。中型封裝器件的子圖檢測結(jié)果經(jīng)過數(shù)據(jù)整合后,得到大尺寸圖像中的每個(gè)芯片的位置,結(jié)果如圖8所示。
(a) 小外形晶體管
(b) 無引腳芯片
圖8 數(shù)據(jù)整合結(jié)果Fig.8 Data integration results
關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)的損失函數(shù)變化情況如圖9所示,經(jīng)過200輪訓(xùn)練后網(wǎng)絡(luò)逐漸穩(wěn)定,訓(xùn)練集損失約0.06,驗(yàn)證集損失約0.08。
圖9 損失函數(shù)曲線Fig.9 Loss function curve
芯片的旋轉(zhuǎn)角度根據(jù)點(diǎn)計(jì)算得到:
θ=arctan((y2-y1)/(x2-x1)),
(3)
式中,θ為所求的角度;(x1,y1),(x2,y2)分別為芯片的左上角坐標(biāo)及其順時(shí)針方向的第1個(gè)點(diǎn)坐標(biāo)值,如圖10所示。若y2-y1<0,則角度θ為負(fù)值,反之θ為正值。物料排序系統(tǒng)中只需要把芯片擺正即可,因此沒有考慮字符方向,式(3)求的角度為相對角度。
圖10 角度計(jì)算示例Fig.10 Angle solution example
關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)的點(diǎn)回歸結(jié)果如圖11中的第1行所示。由圖可知,網(wǎng)絡(luò)較為準(zhǔn)確地回歸出了芯片的4個(gè)角頂點(diǎn)。利用式(3)求得圖11 (a)~(c)的3個(gè)芯片的角度分別為39°,13°,-20°。得到角度后,利用旋轉(zhuǎn)矩陣函數(shù)來驗(yàn)證角度[18]是否正確。旋轉(zhuǎn)后的結(jié)果如圖11(d)~(f)所示,3個(gè)圖像中的芯片都已歸正。
圖11 關(guān)鍵點(diǎn)回歸檢測結(jié)果Fig.11 Key point regression detection results
為驗(yàn)證級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)對芯片的檢測效果,選取3種不同類型的芯片各40張,一共120張圖片進(jìn)行實(shí)驗(yàn),分別以平均角度誤差、平均精度、推理時(shí)間、模型大小、計(jì)算量(GFLOPs)作為實(shí)驗(yàn)的評(píng)價(jià)指標(biāo)。角度誤差是圖像的真實(shí)角度與預(yù)測角度之間的差值,平均精度(AP)是精確率(Precision)與召回率(Recall)曲線與坐標(biāo)軸圍成的面積,計(jì)算如下:
(4)
(5)
(6)
式中,TP為真正例;TN為真反例;FP為假正例;FN為假反例。本文將YOLOv5s模型應(yīng)用于第1級(jí)網(wǎng)絡(luò)進(jìn)行芯片目標(biāo)檢測。在相同配置條件下使用相同數(shù)量的測試集,與目前常用的雙階段目標(biāo)檢測方法Faster R-CNN[9]和單階段目標(biāo)檢測方法YOLOv3[9]進(jìn)行了對比實(shí)驗(yàn),分別從平均精度、推理時(shí)間和模型大小3個(gè)方面進(jìn)行比較。在進(jìn)行芯片識(shí)別定位時(shí),先對大尺寸圖像進(jìn)行疊加式裁剪處理,即3個(gè)模型的輸入都為小尺寸子圖,再對子圖的結(jié)果進(jìn)行數(shù)據(jù)整合,因此本文的推理時(shí)間指的是裁剪、檢測和數(shù)據(jù)整合共同需要的時(shí)間。具體實(shí)驗(yàn)結(jié)果如表1所示。
表1 多種目標(biāo)檢測模型結(jié)果對比Tab.1 Comparison of results of multiple target detection models
由表1可以看出,YOLOv5模型的檢測精度最高,達(dá)到91.5%,其模型遠(yuǎn)遠(yuǎn)小于 Faster R-CNN和YOLOv3,檢測時(shí)間也相對較短。驗(yàn)證了單階段目標(biāo)檢測模型的檢測速度優(yōu)于雙階段的目標(biāo)檢測。從工業(yè)上對檢測精度和速度的要求出發(fā),本文選用YOLOv5s進(jìn)行檢測。
為驗(yàn)證疊加式切割算法和DIoU-NMS方法對YOLOv5s模型檢測效果的影響,進(jìn)行了消融實(shí)驗(yàn)。第1組實(shí)驗(yàn)中對大尺寸圖像不進(jìn)行任何處理,直接輸入到模型中進(jìn)行檢測,后3組實(shí)驗(yàn)為分別加入不同改進(jìn)方法后的結(jié)果,從平均精度和參數(shù)量2個(gè)方面進(jìn)行評(píng)估。實(shí)驗(yàn)結(jié)果如表2所示。
表2 不同改進(jìn)方法的結(jié)果對比Tab.2 Comparison of the results of different improved methods
由表2可以看出,當(dāng)直接將大尺寸圖像輸入到Y(jié)OLOv5s模型中時(shí),檢測精度相對較低為81.7%,計(jì)算量為264 GFLOPs。經(jīng)觀察發(fā)現(xiàn),該方法對小外形晶體管的檢測效果較差,可能是由于將大尺寸圖像進(jìn)行32倍下采樣時(shí),造成了小目標(biāo)信息的丟失,在8倍下采樣中,由于輸入尺寸較大,需要保留較大的特征圖,造成了計(jì)算量相對較大。在對大尺寸圖像進(jìn)行疊加式裁剪后, AP值提高了9.8%,計(jì)算量為16.5 GFLOPs,經(jīng)過疊加式裁剪處理后模型檢測的是小尺寸的子圖,因此計(jì)算量大大減少;加入DIoU-NMS后,AP值提高了7.6%;同時(shí)加入2種方法后AP值為94.6%,計(jì)算量為17 GFLOPs。由實(shí)驗(yàn)結(jié)果可知,DIoU-NMS提高了重疊物體和密集物體的檢測效果,雖然加入DIoU-NMS后帶來了0.5 GFLOPs的計(jì)算量,但從精度和計(jì)算量2個(gè)角度綜合考慮,本文選用疊加式裁剪和DIoU-NMS結(jié)合的方式。
為驗(yàn)證第2級(jí)網(wǎng)絡(luò)關(guān)鍵點(diǎn)回歸方法對角度的檢測效果,將關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)與傳統(tǒng)圖像處理方法中的Hough變換、最小外接矩形法在角度誤差和推理時(shí)間上進(jìn)行對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表3所示。
表3 不同角度求解方法的檢測結(jié)果Tab.3 Detection results of different angle solution methods
由表3可以看出,Hough變換求解傾斜角度時(shí)間為321.4 ms,最小外接矩形法求解傾斜角度時(shí)間為126.2 ms,本文提出的關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)的方法僅使用43.5 ms就完成了角度求解,且平均角度誤差小于其他2種方法。Hough變換根據(jù)物體的直線進(jìn)行角度求解,若圖像中有其他干擾芯片出現(xiàn),檢測結(jié)果會(huì)大大降低;使用最小外接矩形算法時(shí),需要對圖像先進(jìn)行一定的降噪處理,該方法受圖像質(zhì)量的影響較大。關(guān)鍵點(diǎn)回歸網(wǎng)絡(luò)利用較強(qiáng)的泛化能力,不需要對檢測圖像做其他處理就可以對不同類型的芯片進(jìn)行檢測。
級(jí)聯(lián)后的模型大小為126.3 MB,比原始YOLOv3模型要小很多,完成1張大尺寸圖像的位置和角度檢測的時(shí)間為0.5 s,滿足排料需求。最后部署到Jetson Agx Xavier上,將檢測到的位置和角度傳送給后續(xù)的運(yùn)動(dòng)控制裝置。
本文從提高排料系統(tǒng)自動(dòng)化裝配效率和排料準(zhǔn)確度出發(fā),提出了1種級(jí)聯(lián)式卷積神經(jīng)網(wǎng)絡(luò)的芯片檢測方法。該方法采用級(jí)聯(lián)方式,分步檢測芯片的位置和角度,第1級(jí)網(wǎng)絡(luò)基于改進(jìn)的YOLOv5s模型檢測芯片位置,并給第2級(jí)網(wǎng)絡(luò)提供輸入圖像。第2級(jí)網(wǎng)絡(luò)通過關(guān)鍵點(diǎn)回歸的方式,以更簡潔快速的方法求得芯片角度。針對大尺寸圖像設(shè)計(jì)了疊加式裁剪算法,在YOLOv5s的預(yù)測框篩選和數(shù)據(jù)整合階段加入了DIoU-NMS,提高了小目標(biāo)和密集型目標(biāo)的檢測精度。實(shí)驗(yàn)結(jié)果表明,基于級(jí)聯(lián)式的芯片檢測方法的檢測精度高達(dá)94.6%,單張圖片的檢測時(shí)間為0.5 s,能夠滿足排料系統(tǒng)中對檢測精度和速度的要求。提升級(jí)聯(lián)網(wǎng)絡(luò)的檢測速度,設(shè)計(jì)輕量化模型結(jié)構(gòu)將是下一階段的研究方向。