遵義醫(yī)科大學(xué) 陳錦秋 左安康
“爆珠”是指嵌在卷煙過(guò)濾嘴內(nèi)的一顆液體小膠珠,它包裹了不同類型香料的液體,如果吸煙者在吸煙過(guò)程中將其捏爆,珠內(nèi)液體流出,將會(huì)使得香煙的口感更豐富、香潤(rùn)。在卷煙爆珠的生產(chǎn)過(guò)程中,由于設(shè)備和工藝的影響,可能會(huì)生產(chǎn)出有著氣泡、連體、帶帽、過(guò)大過(guò)小等缺陷的不良品。為使得卷煙爆珠滿足質(zhì)量要求,需要進(jìn)行缺陷檢測(cè),挑選出質(zhì)量不合格的爆珠,缺陷檢測(cè)是卷煙爆珠制造過(guò)程中一個(gè)必不可少的環(huán)節(jié)。
針對(duì)卷煙爆珠的“氣泡”缺陷,本文利用爆珠工業(yè)生產(chǎn)過(guò)程中采集的爆珠圖像數(shù)據(jù)集,構(gòu)建基于YOLOv3 Tiny算法的缺陷檢測(cè)模型,用于卷煙爆珠生產(chǎn)過(guò)程中的氣泡缺陷檢測(cè)。
實(shí)現(xiàn)卷煙爆珠缺陷檢測(cè)需要建立一套計(jì)算機(jī)視覺(jué)處理系統(tǒng),系統(tǒng)由吸附桿、工業(yè)相機(jī)、圖像處理單元以及電控系統(tǒng)組成。具體的實(shí)現(xiàn)流程為:首先將爆珠吸附于吸附桿上,然后由工業(yè)相機(jī)對(duì)吸附桿上的爆珠進(jìn)行拍照,并將拍到的照片傳輸?shù)綀D像處理單元,圖像處理單元對(duì)爆珠照片進(jìn)行分析,識(shí)別出不符合常規(guī)形狀、顏色、大小的不良品,最后將信號(hào)傳遞給電控系統(tǒng),通過(guò)高速脈沖電磁閥剔除不合格產(chǎn)品。圖像處理單元是缺陷檢測(cè)系統(tǒng)的核心,缺陷檢測(cè)算法的識(shí)別率影響著最后分揀效果的好壞。
傳統(tǒng)的人工缺陷檢測(cè)方法存在效率低、成本高、主觀性強(qiáng)等缺點(diǎn),并且容易出現(xiàn)誤檢、漏檢等情況。將圖像處理、模式識(shí)別等機(jī)器視覺(jué)技術(shù)應(yīng)用到工業(yè)產(chǎn)品的缺陷檢測(cè)上,是工業(yè)自動(dòng)化的趨勢(shì)。相比于傳統(tǒng)的機(jī)器視覺(jué)方法,深度學(xué)習(xí)可以減少手動(dòng)提取特征對(duì)識(shí)別精確度的影響,具有檢測(cè)速度快、精確度高等特點(diǎn),現(xiàn)已逐漸被應(yīng)用于工業(yè)品缺陷檢測(cè)。
深度學(xué)習(xí)中用于目標(biāo)檢測(cè)的算法大致可分為兩類:一類是基于候選區(qū)域的目標(biāo)檢測(cè)算法,如R-CNN、Fast R-CNN、Faster R-CNN等;另一類是基于回歸的目標(biāo)檢測(cè)算法,如SSD、YOLO等。基于候選區(qū)域的目標(biāo)檢測(cè)算法由區(qū)域提取和目標(biāo)分類兩步構(gòu)成,首先需要將輸入圖像分割為多個(gè)候選區(qū)域,然后分別將每個(gè)候選區(qū)域送入神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,這種方法雖然檢測(cè)精度較高,但是存在訓(xùn)練步驟復(fù)雜,檢測(cè)速度較慢等問(wèn)題。基于回歸的目標(biāo)檢測(cè)算法去掉了產(chǎn)生候選區(qū)域這一步驟,將物體定位和目標(biāo)分類問(wèn)題轉(zhuǎn)化為回歸問(wèn)題,將兩個(gè)步驟合二為一,實(shí)現(xiàn)了端到端的訓(xùn)練,簡(jiǎn)化了訓(xùn)練過(guò)程,大大提高了檢測(cè)速度。為了快速精準(zhǔn)地分揀出帶有“氣泡”缺陷的爆珠,本文選擇YOLOv3 Tiny算法來(lái)構(gòu)建氣泡缺陷檢測(cè)模型。
YOLOv3 Tiny算法的模型主要由13層卷積層和6層最大池化層構(gòu)成,采用的歸一化方法為Batch Normalization,激活函數(shù)為L(zhǎng)ReLU函數(shù)。模型的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

圖1 YOLOv3 Tiny網(wǎng)絡(luò)結(jié)構(gòu)
在YOLOv3 Tiny的網(wǎng)絡(luò)結(jié)構(gòu)圖中,Conv表示卷積層,Pool表示池化操作層,Upsample表示上采樣操作,Concat表示張量拼接操作。上采樣操作會(huì)擴(kuò)大特征圖的尺寸,張量拼接操作是在特征圖的通道維度上進(jìn)行連接。YOLOv3 Tiny模型利用2種不同尺寸的特征圖進(jìn)行目標(biāo)檢測(cè),分別對(duì)輸入圖像的32倍降采樣特征圖和16倍降采樣特征圖進(jìn)行目標(biāo)檢測(cè)。
本實(shí)驗(yàn)的數(shù)據(jù)來(lái)源于某煙草企業(yè),卷煙爆珠的直徑在2mm-5mm范圍內(nèi),通過(guò)工業(yè)相機(jī)對(duì)爆珠進(jìn)行拍照,采集到100張爆珠圖像,圖像的分辨率為1600×1200,為減少模型的計(jì)算量,將原始數(shù)據(jù)分割為416×416的圖像塊作為實(shí)驗(yàn)數(shù)據(jù),并使數(shù)據(jù)量由100張擴(kuò)充到200張。
爆珠圖像中包括了正常和缺陷兩類爆珠,本實(shí)驗(yàn)構(gòu)建的模型只針對(duì)爆珠的“氣泡”缺陷。如圖2所示,一個(gè)吸附桿上有5個(gè)爆珠,用紅框標(biāo)注的爆珠為有“氣泡”缺陷的樣本,其余的爆珠為正常樣本。

圖2 樣本數(shù)據(jù)(一)
每張樣本圖像中都有5個(gè)爆珠,圖像中的爆珠存在著兩種情況:
(1)圖像中沒(méi)有缺陷爆珠,如圖3所示,圖像中的爆珠全為正常爆珠。

圖3 樣本數(shù)據(jù)(二)
(2)圖像中有一個(gè)或多個(gè)缺陷爆珠,如圖4所示,5個(gè)爆珠中有4個(gè)爆珠為“氣泡”缺陷。

圖4 樣本數(shù)據(jù)(三)
通過(guò)觀察發(fā)現(xiàn),“氣泡”缺陷爆珠有明顯的紋理特征,在視覺(jué)上表現(xiàn)為黑色的“圓圈”,根據(jù)這一特征,我們利用標(biāo)注工具LabelImg,對(duì)圖像數(shù)據(jù)進(jìn)行人工標(biāo)注,以“defect”代表缺陷爆珠,實(shí)驗(yàn)數(shù)據(jù)集有200張圖像數(shù)據(jù),共標(biāo)注了303個(gè)缺陷目標(biāo)。
我們按照7:3的比例將實(shí)驗(yàn)數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集。訓(xùn)練集和測(cè)試集中正常爆珠和缺陷爆珠的數(shù)量如表1所示,訓(xùn)練集中包含140張圖像數(shù)據(jù),共有480個(gè)正常爆珠和220個(gè)缺陷爆珠;測(cè)試集中包含60張圖像數(shù)據(jù),共有217個(gè)正常爆珠和83個(gè)缺陷爆珠。

表1 正常爆珠和缺陷爆珠的數(shù)量
本文基于Tensorflow框架訓(xùn)練YOLOv3 Tiny模型,具體的實(shí)驗(yàn)環(huán)境為:Cuda9.0加速,Nvidia GeForce GTX 1660Ti顯卡,顯卡內(nèi)存為6G,CPU內(nèi)存為16G,操作系統(tǒng)為CentOS7。
實(shí)驗(yàn)中的超參數(shù)設(shè)置如表2所示,根據(jù)模型的參數(shù)量和實(shí)驗(yàn)平臺(tái)硬件資源情況,將批次大小設(shè)置為6;基于模型訓(xùn)練的調(diào)參經(jīng)驗(yàn),將學(xué)習(xí)率設(shè)置為0.001,訓(xùn)練迭代次數(shù)設(shè)置為100。

表2 超參數(shù)
模型在訓(xùn)練100次后,損失趨于平穩(wěn),本實(shí)驗(yàn)用模型訓(xùn)練100次時(shí)的權(quán)重進(jìn)行目標(biāo)檢測(cè)。
將測(cè)試數(shù)據(jù)集的圖像輸入模型,模型在圖像中畫出預(yù)測(cè)框,并預(yù)測(cè)出目標(biāo)類別和類別的置信度。將如圖5所示的樣本數(shù)據(jù)輸入模型進(jìn)行檢測(cè),得到的檢測(cè)結(jié)果如圖6所示。模型在輸入樣本中檢測(cè)出3個(gè)有“氣泡”缺陷的目標(biāo),在圖像上分別用3個(gè)預(yù)測(cè)框標(biāo)注,“氣泡”缺陷目標(biāo)的置信度分別為0.9、0.99、1。

圖5 輸入樣本

圖6 檢測(cè)結(jié)果
為了評(píng)估模型的檢測(cè)性能,我們選取準(zhǔn)確率(Accuracy)、精確率(Precision)、誤檢率(FPR)、漏檢率(FNR)以及平均檢測(cè)時(shí)間(Time)作為評(píng)價(jià)指標(biāo),計(jì)算公式如(1)-(5)所示。

其中,TP表示測(cè)試樣本中被模型正確檢測(cè)出的缺陷爆珠個(gè)數(shù),F(xiàn)N表示測(cè)試樣本中沒(méi)有被檢測(cè)出的缺陷爆珠個(gè)數(shù),F(xiàn)P表示測(cè)試樣本中被誤檢出的缺陷爆珠個(gè)數(shù),TN表示測(cè)試樣本中沒(méi)有被誤檢成缺陷爆珠的正常爆珠個(gè)數(shù)。分別表示模型在第k個(gè)樣本上開(kāi)始檢測(cè)和結(jié)束檢測(cè)的時(shí)間,n表示樣本數(shù)量。
本實(shí)驗(yàn)中,我們將置信度的閾值設(shè)為0.7,即當(dāng)預(yù)測(cè)框的置信度超過(guò)0.7則為正確識(shí)別,不高于0.7則為錯(cuò)誤識(shí)別。在測(cè)試數(shù)據(jù)集上進(jìn)行試驗(yàn),模型的檢測(cè)結(jié)果如表3所示。

表3 模型檢測(cè)結(jié)果
根據(jù)公式(1)-(5)得出模型的性能評(píng)估,如表4所示。

表4 模型性能評(píng)估
模型的準(zhǔn)確率為97.36%,精確率為94.94%,誤檢率為1.79%,漏檢率為5.06%,平均檢測(cè)時(shí)間為45.31ms。從模型性能評(píng)估結(jié)果中可以看出,對(duì)于檢測(cè)卷煙爆珠“氣泡”缺陷,模型的準(zhǔn)確率和精確率較高,誤檢率和漏檢率較低,并且平均檢測(cè)時(shí)間較少,達(dá)到了預(yù)期的檢測(cè)效果。