羅宇哲 萬(wàn)艷 謝秀齊 何曉昀
[摘? ? 要]本文以紅棗的缺陷檢測(cè)為對(duì)象,研究了深度學(xué)習(xí)算法在圖像缺陷檢測(cè)中的應(yīng)用。首先建立紅棗的缺陷檢測(cè)環(huán)境,拍攝一定數(shù)量缺陷紅棗圖片并對(duì)圖中缺陷進(jìn)行標(biāo)注,然后在服務(wù)器上使用 YOLO-Tiny深度網(wǎng)絡(luò)模型對(duì)標(biāo)注樣本進(jìn)行訓(xùn)練,最后在NVIDIA Jetson TK1嵌入式設(shè)備上對(duì)模型的缺陷檢測(cè)效果進(jìn)行驗(yàn)證。實(shí)驗(yàn)結(jié)果表明深度學(xué)習(xí)算法對(duì)紅棗缺陷檢測(cè)準(zhǔn)確度可達(dá)91%,檢測(cè)速度可達(dá)12幀/s,可滿足紅棗缺陷自動(dòng)檢測(cè)的需求。
[關(guān)鍵詞]缺陷檢測(cè);深度學(xué)習(xí);機(jī)器視覺(jué);YOLO-Tiny
[中圖分類(lèi)號(hào)]TP317.4 [文獻(xiàn)標(biāo)志碼]A [文章編號(hào)]2095–6487(2020)06–00–03
Application of Deep Learning Algorithm in Automatic Defect Detection
Luo Yu-zhe, Wan Yan, Xie Xiu-qi, He Xiao-yun
[Abstract]This article takes the defect detection of red dates as the object, and studies the application of deep learning algorithms in image defect detection. First, establish a defect detection environment for jujubes, take a certain number of defective jujube pictures and mark the defects in the images, then use the YOLO-Tiny deep network model on the server to train the marked samples, and finally run the model on the NVIDIA Jetson TK1 embedded device The defect detection effect is verified. Experimental results show that the accuracy of the deep learning algorithm for jujube defect detection can reach 91%, and the detection speed can reach 12 frames per second, which can meet the needs of automatic detection of jujube defects.
[Keywords]defect detection, deep learning, machine vision, YOLO-Tiny
目前對(duì)缺陷紅棗的篩選主要采用人工篩選,但人工篩選的缺點(diǎn)相當(dāng)明顯,一是工作量大,二是效率低。其中人為因素對(duì)篩選結(jié)果的影響很大。例如,工人在篩選時(shí)注意力不集中,導(dǎo)致紅棗的品質(zhì)分類(lèi)錯(cuò)誤。為了提高紅棗的篩選質(zhì)量和效率,使紅棗的品質(zhì)滿足產(chǎn)品的加工要求,采樣機(jī)器自動(dòng)篩選已成為未來(lái)主流發(fā)展趨勢(shì)。
1 深度學(xué)習(xí)與機(jī)器視覺(jué)
近年來(lái),深度學(xué)習(xí)算法在圖像缺陷識(shí)別中的應(yīng)用日益成熟,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)已成為圖像檢測(cè)科技發(fā)展的主流?;谏疃葘W(xué)習(xí)算法的人工智能技術(shù)廣泛應(yīng)用于攝像機(jī)自動(dòng)定位對(duì)焦人臉、自動(dòng)駕駛障礙物檢測(cè)等領(lǐng)域?;谏疃葘W(xué)習(xí)的圖像檢測(cè)技術(shù)在工業(yè)檢測(cè)領(lǐng)域得到了廣泛應(yīng)用。
基于深度學(xué)習(xí)的圖像檢測(cè)技術(shù)同樣適用于紅棗缺陷檢測(cè)需求。它能有效地在復(fù)雜圖像中找到紅棗缺陷位置??紤]到檢測(cè)速度、準(zhǔn)確率和分配效率的平衡,本文選擇YOLO算法作為項(xiàng)目的核心算法。該算法可以對(duì)特征提取和分類(lèi)器進(jìn)行整體端對(duì)端訓(xùn)練。與其他算法相比,YOLO算法具有運(yùn)行速度優(yōu)勢(shì)的同時(shí)更適合紅棗檢測(cè)的實(shí)時(shí)性要求。
2 YOLO-Tiny算法
YOLO(You Only Look Once)是一種基于深度神經(jīng)網(wǎng)絡(luò)的對(duì)象識(shí)別和定位算法,其最大的特點(diǎn)是運(yùn)行速度快,可以用于實(shí)時(shí)系統(tǒng)[1]。YOLO-Tiny是YOLO的簡(jiǎn)化版本,YOLOv3-Tiny網(wǎng)絡(luò)相比常規(guī)的 YOLOv3將網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了壓縮,沒(méi)有使用res層(殘差層),保留了2個(gè)獨(dú)立預(yù)測(cè)分支,只使用了兩個(gè)不同尺度的YOLO輸出層。其優(yōu)勢(shì)在于訓(xùn)練后的模權(quán)重較小,檢測(cè)速度更快,對(duì)硬件要求不高,弊端是準(zhǔn)確率有所下降。
2.1 bounding box預(yù)測(cè)
在目標(biāo)檢測(cè)時(shí),YOLO使用bounding box對(duì)檢測(cè)目標(biāo)進(jìn)行定位,但檢測(cè)的目標(biāo)框與已經(jīng)標(biāo)記好的目標(biāo)框未必就是一致的,總會(huì)存在一定偏移。YOLOv3網(wǎng)絡(luò)通過(guò)k-means[2]生成多個(gè)anchor box的目的在于訓(xùn)練自動(dòng)分類(lèi)系統(tǒng)更加輕松的、準(zhǔn)確的識(shí)別。首先對(duì)每個(gè)anchor box預(yù)測(cè)類(lèi)別以及偏移量,接著根據(jù)預(yù)測(cè)的偏移量調(diào)整anchor box位置從而得到符合紐扣缺陷的預(yù)測(cè)邊界框(即bounding box),最后篩選需要輸出的紐扣缺陷的預(yù)測(cè)邊界框。YOLO通過(guò)計(jì)算每個(gè)bounding box的置信度,bounding box的置信度意味著它是否包含對(duì)象且位置準(zhǔn)確的程度。置信度高表示這里存在一個(gè)對(duì)象且位置比較準(zhǔn)確,置信度低表示可能沒(méi)有對(duì)象或者即便有對(duì)象也存在較大的位置偏差。
每個(gè)bounding box只對(duì)應(yīng)一個(gè)目標(biāo)得分,通過(guò)logistic回歸計(jì)算。如滿足以下兩個(gè)條件則認(rèn)定目標(biāo)得分為1:
(1)某個(gè)bounding box與ground truth的重合度比其他bounding box都高;(2)某個(gè)bounding box與ground truth的重合度不是最大的,但超過(guò)某個(gè)閾值,例如:0.5。
2.2 基本的損失函數(shù)
“損失”是指網(wǎng)絡(luò)實(shí)際輸出值與樣本標(biāo)簽值之間的偏差,MSE作為常用的損失函數(shù)[3],這是最簡(jiǎn)單,也是比較經(jīng)典的損失函數(shù),見(jiàn)式(1)和(2)所示。
Binary_crossentropy交叉熵?fù)p失函數(shù),這是針對(duì)概率的損失函數(shù),概率相差越大,loss就越大,見(jiàn)式(3)和(4)所示
2.3 YOLOv3-Tiny
YOLOv3-Tiny目標(biāo)檢測(cè)模型是YOLO系列中用于移動(dòng)設(shè)備和邊緣計(jì)算的輕型目標(biāo)檢測(cè)網(wǎng)絡(luò),具有簡(jiǎn)單、高實(shí)時(shí)性和高檢測(cè)精度的特點(diǎn)[4]。YOLOv3-Tiny主干網(wǎng)絡(luò)為YOLOV3的簡(jiǎn)化,由13個(gè)卷積層,6個(gè)最大池化層,1個(gè)連接層構(gòu)成。Tiny-YOLOV3目標(biāo)檢測(cè)網(wǎng)絡(luò)輸入圖像分辨率416×416,經(jīng)一系列卷積、最大池化、連接、上采樣操作對(duì)圖像進(jìn)行特征提取。YOLOv3-Tiny檢測(cè)層根據(jù)輸入的圖像數(shù)據(jù),分別在13×13,26×26,這2個(gè)檢測(cè)尺度上運(yùn)用回歸分析法輸出圖像數(shù)據(jù)的多個(gè)滑動(dòng)窗口位置及該窗口中檢測(cè)到的目標(biāo)類(lèi)別,設(shè)置多個(gè)錨點(diǎn)框檢測(cè)目標(biāo)。在目標(biāo)識(shí)別完成后,引入非極大值抑制消除冗余的檢測(cè)框,使得每個(gè)目標(biāo)都是一個(gè)唯一的檢測(cè)框,使其位置信息更精確,置信度更高[5]。目標(biāo)檢測(cè)網(wǎng)絡(luò)具有簡(jiǎn)單、實(shí)時(shí)性高的特點(diǎn),適合于嵌入式邊緣計(jì)算平臺(tái)的應(yīng)用。
3 紅棗缺陷自動(dòng)檢測(cè)系統(tǒng)
紅棗缺陷自動(dòng)檢測(cè)系統(tǒng)的圖像識(shí)別處理流程是:首先將工業(yè)相機(jī)采集的圖像實(shí)時(shí)輸出傳送到AI圖像處理模塊,然后在AI圖像處理模塊上使用深度學(xué)習(xí)算法實(shí)時(shí)批量檢測(cè)出紅棗表面的缺陷,最后在顯示屏上標(biāo)注缺陷位置并且標(biāo)注識(shí)別結(jié)果的置信度。為了實(shí)現(xiàn)上述目標(biāo),本文設(shè)計(jì)了一套基于深度學(xué)習(xí)框架的缺陷自動(dòng)檢測(cè)系統(tǒng),包括圖像采集、數(shù)據(jù)標(biāo)注、模型訓(xùn)練和缺陷識(shí)別等的各個(gè)功能模塊。
3.1 紅棗缺陷檢測(cè)系統(tǒng)硬件平臺(tái)
紅棗檢測(cè)系統(tǒng)的硬件平臺(tái)采用工業(yè)相機(jī)+NvidiaJetsonTk1嵌入式人工智能平臺(tái)[6]。
首先,考慮到系統(tǒng)檢測(cè)速度和圖像質(zhì)量的平衡,系統(tǒng)采用度申公司的工業(yè)相機(jī),相機(jī)分辨率為1280*1024。
其次,考慮到項(xiàng)目成本和運(yùn)行速度,采用Nvidia Jetson TK1嵌入式設(shè)備作為紅棗檢測(cè)系統(tǒng)的算法平臺(tái)。NVIDIA Jetson TK1是一款針對(duì)嵌入式系統(tǒng)的移動(dòng)超級(jí)計(jì)算機(jī),其成本相對(duì)于普通計(jì)算機(jī)價(jià)格更便宜,能夠快速開(kāi)發(fā)和部署用于計(jì)算機(jī)視覺(jué)、機(jī)器人以及醫(yī)學(xué)等領(lǐng)域的計(jì)算密集型系統(tǒng)。
該系統(tǒng)接入顯示器即可顯示檢測(cè)結(jié)果,也可以通過(guò)遠(yuǎn)程通信方式將檢測(cè)結(jié)果傳送到服務(wù)器實(shí)現(xiàn)遠(yuǎn)程控制。系統(tǒng)可靠性高、成本低廉,適用于工業(yè)環(huán)境下對(duì)紅棗的檢測(cè)需求。
3.2 服務(wù)器的配置
為了完成紅棗缺陷網(wǎng)絡(luò)模型的訓(xùn)練,在深度學(xué)習(xí)服務(wù)器上對(duì)事先采集和標(biāo)注后的缺陷圖像使用YOLOv3-Tiny網(wǎng)絡(luò)進(jìn)行訓(xùn)練。深度學(xué)習(xí)服務(wù)器的硬件配置為:處理器為酷睿i7-9700k,處理器為16?m工藝,擁有8核心8線程,主頻4.9GH;顯卡采用了英偉達(dá)GeForce GTX 1080 Ti,擁有3584個(gè)流處理器單元和11GB顯存;另外服務(wù)器搭配了2條16GB的DDR4內(nèi)存條和1TB的三星固態(tài)硬盤(pán)。
深度學(xué)習(xí)服務(wù)器安裝了Ubuntu 16.04操作系統(tǒng)、Opencv4.3.0圖像處理模塊和darknet深度學(xué)習(xí)框架,為了得到更高的訓(xùn)練速度安裝了CUDA和Cudnn等用于顯卡計(jì)算加速的軟件。
3.3 圖像采集和模型訓(xùn)練過(guò)程
深度學(xué)習(xí)的目標(biāo)檢測(cè)過(guò)程可以分為訓(xùn)練和檢測(cè)2部分,具體流程如圖1所示。
其中對(duì)模型訓(xùn)練流程如下:
(1)首先需要收集一定數(shù)量的帶有缺陷的紅棗圖像,裁剪為適當(dāng)大小的樣本圖像,根據(jù)缺陷類(lèi)型將圖像分類(lèi)。
(2)使用LabelImg標(biāo)注工具對(duì)裁剪后圖像中進(jìn)行手工標(biāo)注,標(biāo)注紅棗缺陷的位置和缺陷類(lèi)型。標(biāo)注工具會(huì)生成與裁剪圖像同名帶標(biāo)注的XML文件,用于下一步的深度網(wǎng)絡(luò)訓(xùn)練。
(3)使用YOLO-Tiny深度網(wǎng)絡(luò)模型在計(jì)算機(jī)上完成深度網(wǎng)絡(luò)模型訓(xùn)練,為了提高訓(xùn)練速度,可使用GPU進(jìn)行硬件加速。
(4)在NVIDIA Jetson TK1平臺(tái)上,利用上一步訓(xùn)練好的網(wǎng)絡(luò)模型對(duì)采集到的紅棗圖像或者視頻進(jìn)行實(shí)時(shí)的檢測(cè),找出紅棗缺陷的位置并在圖像中標(biāo)注出來(lái),如圖2所示。
4 實(shí)驗(yàn)結(jié)果與分析
4.1 圖像檢測(cè)結(jié)果分析
為了實(shí)現(xiàn)紅棗檢測(cè)系統(tǒng)的功能,首先使用在服務(wù)器上對(duì)標(biāo)注好的100個(gè)樣本進(jìn)行網(wǎng)絡(luò)訓(xùn)練。訓(xùn)練過(guò)程中100個(gè)樣本圖片中會(huì)隨機(jī)分為2組數(shù)據(jù),80張用于訓(xùn)練,20張用于測(cè)試。網(wǎng)絡(luò)訓(xùn)練過(guò)程如圖3所示,從圖中可以看出隨著訓(xùn)練次數(shù)的不斷增加,損失曲線逐漸降低,經(jīng)過(guò)80次迭代后趨于穩(wěn)定。
網(wǎng)絡(luò)訓(xùn)練完成后,將訓(xùn)練好的網(wǎng)絡(luò)模型安裝到NvidiaJetsonTk1上對(duì)采集到的100張測(cè)試圖像進(jìn)行識(shí)別,當(dāng)置信度閾值設(shè)置為60的時(shí)候,91張圖片識(shí)別正確,9張圖片無(wú)法識(shí)別缺陷,正確率為91%。為了測(cè)試準(zhǔn)確的檢測(cè)速度,NvidiaJetsonTk1連接工業(yè)相機(jī)對(duì)視頻進(jìn)行了在線檢測(cè),檢測(cè)速度達(dá)到了12幀/秒。
5 結(jié)束語(yǔ)
本文以棗樹(shù)缺陷檢測(cè)為研究對(duì)象,研究了深度學(xué)習(xí)算法在缺陷自動(dòng)檢測(cè)中的應(yīng)用效果。實(shí)驗(yàn)通過(guò)建立棗樹(shù)檢測(cè)的產(chǎn)業(yè)環(huán)境,拍攝一定數(shù)量的缺陷棗樹(shù)圖像,并對(duì)缺陷位置進(jìn)行標(biāo)記,利用深度網(wǎng)絡(luò)模型在服務(wù)器上對(duì)樣本圖像進(jìn)行訓(xùn)練,最后在NVIDIA Jetson TK1嵌入式設(shè)備上完成驗(yàn)證。結(jié)果表明,深度學(xué)習(xí)算法在紅棗檢測(cè)過(guò)程中的準(zhǔn)確率可達(dá)91%,檢測(cè)速度可達(dá)12幀/s,可滿足紅棗缺陷自動(dòng)檢測(cè)的需求。
參考文獻(xiàn)
[1] Redmon,J.& Farhadi,A.(2018). YOLOv3:An Incremen-tal Improvement[J]. ArXiv,abs/1804.02767.
[2] 張榮,李偉平,莫同.深度學(xué)習(xí)研究綜述[J].信息與控制,2018,47(4):385-397,410.
[3] GEIGER A , LENZ P , STILLER C , et al. Vision meets robotics: The KITTI dataset[J].The International Journal of Robotics Research,2013,32(11):1231-1237.
[4] 易詩(shī),沈練,周思堯,等.基于增強(qiáng)型Tiny-YOLOV3模型的野雞識(shí)別方法[J].農(nóng)業(yè)工程學(xué)報(bào),2020,36(13):141-147.
[5] Neubeck A, Van Gool L. Efficient non-maximum suppression[C]//18th International Conference on Pattern Recognition (ICPR).Springer:Berlin, German, 2006, 3: 850-855.
[6] 殷帥,胡越黎,劉思齊,等.基于YOLO網(wǎng)絡(luò)的數(shù)據(jù)采集與標(biāo)注[J].儀表技術(shù),2018(12):22-25+52.
[7] 李萍, 宋波, 毛捷,等. 深度學(xué)習(xí)在超聲檢測(cè)缺陷識(shí)別中的應(yīng)用與發(fā)展[J]. 應(yīng)用聲學(xué), 2019(3):458-464.
[8] 黃寅. 基于深度學(xué)習(xí)網(wǎng)絡(luò)模型與大數(shù)據(jù)自動(dòng)訓(xùn)練的工件缺陷識(shí)別算法研究[J]. 齊齊哈爾大學(xué)學(xué)報(bào)(自然科學(xué)版), 2020, v.36(2):24-27,42.
[9] 趙志勇, 葉林, 桑紅石,等. 深度學(xué)習(xí)在布匹缺陷檢測(cè)中的應(yīng)用[J]. 國(guó)外電子測(cè)量技術(shù), 2019, v.38;No.297(8):116-122.
[10] 顧佳晨, 高雷, 劉路璐,等. 基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法在冷軋表面缺陷檢測(cè)中的應(yīng)用[J]. 冶金自動(dòng)化, 2019, v.43;No.259(6):25-28,33.