付 磊,任德均,胡云起,郜 明,邱 呂
(四川大學(xué)機(jī)械工程學(xué)院,四川 成都 610065)
隨著醫(yī)藥產(chǎn)業(yè)升級,醫(yī)用輸液瓶逐漸對以往廣泛使用的無密封玻璃瓶、半密封玻璃瓶與半密封塑料瓶乃至全密封塑瓶進(jìn)行了全面的更替[1],由于無法完全保證注塑工藝的一致性和穩(wěn)定性,在實際塑瓶生產(chǎn)過程中存在一些產(chǎn)品缺陷,主要缺陷體現(xiàn)為以下3種情況:1)受熱不均導(dǎo)致的瓶身氣泡;2)非精確吹塑導(dǎo)致的無吊環(huán)塑瓶;3)吹氣過程中底部氣壓不均導(dǎo)致的積料。傳統(tǒng)的人工檢測在生產(chǎn)量大的情況下檢測精度低,檢測結(jié)果不穩(wěn)定。機(jī)器學(xué)習(xí)[2-3]、深度學(xué)習(xí)[4-5]具有對大數(shù)據(jù)處理與學(xué)習(xí)的優(yōu)勢,其在制藥行業(yè)中缺陷檢測的應(yīng)用逐漸增多。
目前塑瓶檢測往往采用基于“Halcon”的傳統(tǒng)圖像處理算法[6-8],通常按照選取圖片中物體的位置,對圖片進(jìn)行預(yù)處理,進(jìn)而采用模板匹配或者差分方法的方式來檢測缺陷[9-11],但其無法準(zhǔn)確判斷所檢測的缺陷種類,且要求圖像的缺陷與背景的灰度對比較大。伴隨著深度學(xué)習(xí)浪潮的興起,采用卷積神經(jīng)網(wǎng)絡(luò)對圖片進(jìn)行分類與定位的效果也得到很好的驗證[12-15]。采用卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點是:
1)不需要人為的設(shè)計特征,避免了設(shè)計人員經(jīng)驗不足所造成的局部最優(yōu)特征。
2)檢測精度高。2015年深度學(xué)習(xí)在圖像分類方面已經(jīng)低于人工標(biāo)注的5%錯誤率[16]。
3)相對于傳統(tǒng)圖像檢測方法,基于深度學(xué)習(xí)的檢測方法對圖片質(zhì)量的要求較低。但是深度學(xué)習(xí)由于對硬件要求高,要達(dá)到實時性處理需要一定的計算能力。目前隨著計算機(jī)性能的提升及算法的進(jìn)步,深度學(xué)習(xí)也逐漸滿足在工業(yè)、嵌入設(shè)備上的應(yīng)用需求。
本文對瓶底積料、氣泡的缺陷特征進(jìn)行評估,鑒于傳統(tǒng)圖像處理的局限性而采用深度學(xué)習(xí)方法,采用ResNet[17]為骨干的分類網(wǎng)絡(luò)檢測積料缺陷,采用基于ResNet演化的RetinaNet[18]為骨干的目標(biāo)檢測網(wǎng)絡(luò)檢測氣泡缺陷。
視覺檢測系統(tǒng)一般包括成像系統(tǒng)、軟件處理系統(tǒng)和機(jī)器控制系統(tǒng)。成像系統(tǒng)包括照明部分、光源控制部分、圖像采集部分;軟件處理系統(tǒng)包括軟件操作界面、圖像處理算法;機(jī)器控制系統(tǒng)包括醫(yī)用塑瓶的傳輸裝置、光電控制器、不合格產(chǎn)品剔除裝置。由傳輸裝置將塑瓶輸入到成像系統(tǒng)中,觸發(fā)光源控制器發(fā)出信號給塑瓶“打光”,同時圖像采集部分采集圖片,然后將圖片傳入圖像處理算法中判別塑瓶是否合格,最后將不合格的塑瓶信號傳給剔除裝置,將不合格的產(chǎn)品剔除。檢測系統(tǒng)的圖像獲取裝置如圖1所示。
在實驗過程中發(fā)現(xiàn):醫(yī)用塑瓶的底部由于其厚度的不均勻性導(dǎo)致瓶底部分對光的反射有明顯的差異,為了讓圖片呈現(xiàn)更明顯的缺陷區(qū)域特征,減少局部區(qū)域“過曝”的現(xiàn)象,在塑瓶底部采用低角度的環(huán)形光源。由于透光率較高,塑瓶的氣泡缺陷與實體不存在明顯色差,經(jīng)多次實驗確定采用背面“打光”方式,拍攝的氣泡邊緣呈現(xiàn)灰色,而其余區(qū)域為白色。同時考慮生產(chǎn)效率、檢測速度及檢測成本,本文采用130萬像素的“Basler”工業(yè)相機(jī)。
圖1 檢測系統(tǒng)圖像獲取裝置
ResNet是由He等人[17]在2015年的ImageNet挑戰(zhàn)賽中提出的網(wǎng)絡(luò)結(jié)構(gòu),緩解了隨著網(wǎng)絡(luò)深度的加深,網(wǎng)絡(luò)的性能反而退化的問題,ResNet網(wǎng)絡(luò)學(xué)習(xí)的殘差特征為:
F(x)=H(x)-x
(1)
其中,H(x)為融合后的特征,x為輸入特征,F(xiàn)(x)為殘差塊內(nèi)處理后的特征。
圖2 ResNet網(wǎng)絡(luò)結(jié)構(gòu)
(a) 通道不變殘差結(jié)構(gòu)
(b) 結(jié)合通道間信息的殘差結(jié)構(gòu)
該網(wǎng)絡(luò)通過學(xué)習(xí)恒等映射的擾動來降低學(xué)習(xí)新網(wǎng)絡(luò)的難度,補(bǔ)充上層特征后使下層特征更加豐富來增強(qiáng)其性能。在“Halcon”現(xiàn)有的深度學(xué)習(xí)包里面就采用了ResNet50網(wǎng)絡(luò),說明其在工業(yè)檢測具有一定的可靠性,因此本文采用ResNet為骨干網(wǎng)絡(luò),結(jié)合通道間信息來檢測積料缺陷。網(wǎng)絡(luò)結(jié)構(gòu)知圖2所示,其由卷積、池化、改進(jìn)殘差塊與線性分類器組成。殘差塊如圖3所示,圖3(a)為ResNet原殘差塊,輸入特征經(jīng)過卷積、批量正則化、池化、再重復(fù)上述的流程,最后將輸出與輸入特征按像素進(jìn)行疊加作為下一次的輸入;改進(jìn)殘差塊[19]如圖3(b)所示,在卷積過后提取每個通道所占的重要性,使其與卷積過后的特征層進(jìn)行相乘,最后與輸入特征進(jìn)行相加,從而使卷積獲得局部區(qū)域的空間與通道的融合信息。
2.2.1 檢測算法框架
在目標(biāo)檢測中,隨著卷積層數(shù)的增加,獲取的信息由原來的細(xì)節(jié)信息逐漸變成語義信息,導(dǎo)致在檢測過程中高層的特征對分類具有很好的性能,但是在定位檢測上容易漏檢一些尺寸較小的物體,而RetinaNet的分類定位層采用該層的圖像卷積特征,再與上級特征的上采樣特征層相加,獲取更加準(zhǔn)確的目標(biāo)信息,同時逐特征層預(yù)測,進(jìn)一步增強(qiáng)對不同尺度目標(biāo)檢測的魯棒性。圖4為RetinaNet網(wǎng)絡(luò)結(jié)構(gòu),其采用ResNet網(wǎng)絡(luò)的基本骨架(去除全連接層同時增加了2個卷積層),輸出5層不同的特征,保留最后的2層卷積層,剩余3層采用上采樣并融合當(dāng)前層的特征獲取更具魯棒性的特征層,最后分別采用4個卷積進(jìn)行定位與分類。
圖4 RetinaNet網(wǎng)絡(luò)結(jié)構(gòu)
2.2.2 算法關(guān)鍵點闡述
在目標(biāo)檢測中,正負(fù)樣本的選擇上RetinaNet借鑒了SSD[20]以及Fast-RCNN[21]演化為Faster-RCNN[22]中的關(guān)于anchor思想,在上述得到的5個不同的特征層上生成候選區(qū)域,并將候選區(qū)域的每個像素格子的中點映射到原圖,然后在原圖上產(chǎn)生一定大小的矩形框??紤]到檢測物體的形狀與大小而采用多尺寸多面積的錨框,其中大小上采用{20,21/3,22/3}這3種尺度,在形狀上采用{1:2,1:1,2:1}這3種長寬比。圖4中的第7層為最小候選區(qū)域,對應(yīng)的錨框的面積最大,值為512×512,圖4中的層數(shù)逐漸下降,其所對應(yīng)原圖錨框的面積逐層減少4倍。
在分類與定位網(wǎng)絡(luò)中傳入的是圖4中間的特征層,并進(jìn)行一系列的卷積池化生成對類別的預(yù)測與坐標(biāo)的預(yù)測。類別采用的損失函數(shù)為平滑損失函數(shù),而對于定位的損失采用Focal_loss損失函數(shù),較好地解決了正負(fù)樣本不均衡問題,該函數(shù)為:
FL(pt)=-αt(1-pt)γlog(pt)
(2)
(3)
(4)
其中,γ為聚焦參數(shù),p為模型估計類別為1的概率,α為類別為1的權(quán)重大小,其值為[0,1]。
通過αt來減少負(fù)樣本對訓(xùn)練損失的貢獻(xiàn)程度,γ用來減少簡單樣本對損失的貢獻(xiàn)程度與增加困難樣本對損失的貢獻(xiàn)程度。
本文采用的數(shù)據(jù)為某注塑企業(yè)生產(chǎn)過程中產(chǎn)生的有缺陷的醫(yī)用塑瓶及無缺陷的醫(yī)用塑瓶,缺陷包含底部積料、瓶身氣泡2類。瓶底積料、瓶身氣泡圖的分辨率均為1280×1024。
在積料檢測中,采用的有積料的圖片為1985幅,無積料的圖片為1815幅,共3800幅;其中訓(xùn)練集中無積料圖片有1600幅,有積料圖片有1850幅,其中“參雜”了些相似類型的積料圖,如圖5(a)所示;測試圖片中無積料圖片有215幅,積料圖片有135幅。在氣泡檢測中訓(xùn)練采用了600幅有氣泡的瓶身圖,通過LabelImg軟件對其進(jìn)行標(biāo)注,獲取每個氣泡在圖片的位置信息。
(a) 相似瓶底積料圖 (b) 檢測瓶底積料圖 (c) 瓶身氣泡圖
為了減少背景的干擾,增強(qiáng)圖片的檢測區(qū)域與背景的對比度,本文對圖片進(jìn)行預(yù)處理,提取圖片的積料環(huán)形區(qū),去除“采圖”時由環(huán)境造成的噪聲并且凸顯檢測區(qū)域。同時在訓(xùn)練時采用對圖片的隨機(jī)剪切、水平翻轉(zhuǎn)等來增強(qiáng)數(shù)據(jù),采用亮度、對比度、飽和度修改減少光照變化對缺陷識別的影響。具體的處理算法見圖6。而氣泡的圖像預(yù)處理方法與積料圖像類似,其中預(yù)處理中剪切后的塑瓶缺陷位置區(qū)域如圖6所示。
圖6 圖像預(yù)處理目標(biāo)區(qū)域提取流程
本實驗采用PyTorch深度學(xué)習(xí)框架來實現(xiàn)塑瓶缺陷的檢測,采用的電腦配置:GPU是英偉達(dá)的GeForce GTX1070,CPU是英特爾Core i5-8600,開發(fā)平臺為Pycharm和Python3.7。
為找到醫(yī)用塑瓶制造缺陷的相對最佳的檢測精度,本文設(shè)計不同層數(shù)、每層殘差塊不同數(shù)目的ResNet模型。在相同的參數(shù)條件下,網(wǎng)絡(luò)層數(shù)對檢測性能的影響如表1所示,括號里面為每層殘差塊的數(shù)目。
表1 網(wǎng)絡(luò)層數(shù)對檢測精度的影響 單位:%
從表1中可以看出,在數(shù)據(jù)集數(shù)目一定的情況下,隨著網(wǎng)絡(luò)層數(shù)的增加,平均檢測精度先增加再減少。本文采用單一變量法在最佳層數(shù)為4層時驗證每層殘差塊數(shù)目由1個~4個不同網(wǎng)絡(luò)性能的差異。殘差塊的數(shù)目對檢測性能的影響如表2所示。
表2 不同層中殘差塊數(shù)目對檢測精度的影響 單位:%
從表2可知,在不同層中,不同層數(shù)對檢測漏檢率與誤檢率有較大的影響,本文最終選擇網(wǎng)絡(luò)為4層、每層網(wǎng)絡(luò)由2個殘差塊組成的SE-ResNet18。為找到網(wǎng)絡(luò)的最好的參數(shù),本文設(shè)計正交實驗,驗證不同參數(shù)對積料缺陷檢測精度的影響。并且與SE-ResNet34、ResNet18、ResNet34、MobileNetV2[23]網(wǎng)絡(luò)的最佳性能進(jìn)行比較,因num_workers等對網(wǎng)絡(luò)性能的影響較小,本文正交實驗采用的因素是超參數(shù)學(xué)習(xí)率(Learning-Rate)、一次輸入圖片的數(shù)量(Batch_Size)、總的迭代次數(shù)(Epochs),設(shè)計的正交表如表3所示。
表3 實驗正交表
通過正交實驗,獲得不同的網(wǎng)絡(luò)在正交實驗下的相對最優(yōu)的檢測模型參數(shù),具體細(xì)節(jié)如表4所示。
表4 不同網(wǎng)絡(luò)在正交實驗下的最優(yōu)檢測結(jié)果
從表4可以看出,SE-ResNet18在正交實驗下積料缺陷的平均檢測精度最高,其值為99.7%,同時漏檢率為0.0%,檢測時間為29.7 ms;隨著網(wǎng)絡(luò)模型復(fù)雜性的增強(qiáng),其檢測時間逐漸增加,平均檢測精度不一定增加;在相同數(shù)據(jù)下,精簡網(wǎng)絡(luò)在積料缺陷檢測中效果較差,其值為96.4%,但是檢測時間最短,其值為21.1 ms;不同的網(wǎng)絡(luò)在正交實驗中獲得最佳的平均檢測精度的參數(shù)是不同的,對較小的網(wǎng)絡(luò)其學(xué)習(xí)率與總的訓(xùn)練次數(shù)均較大。在SE-ResNet18的實驗條件下,模型的誤檢與漏檢的瓶底圖片如圖7所示。
(a) 誤檢圖1 (b) 誤檢圖2 (c) 漏檢圖圖7 誤檢漏檢示例
考慮生產(chǎn)過程中缺陷產(chǎn)品的數(shù)量較少,本文驗證不同訓(xùn)練數(shù)據(jù)集對實驗中的SE-ResNet18網(wǎng)絡(luò)的檢測精度的影響,數(shù)據(jù)集對SE-ResNet18網(wǎng)絡(luò)的平均檢測精度的影響見表5。其中好代表無缺陷圖片,壞代表有積料缺陷圖片。實驗數(shù)據(jù)表明,隨著數(shù)據(jù)集的減少,積料缺陷的平均檢測精度從99.7%減少到95.8%,檢測時間基本不變;在圖片為2650幅時其平均檢測精度下降到99.2%,漏檢率為0.0%,誤檢率為1.4%,滿足工業(yè)現(xiàn)場中的漏檢率低于5%、誤檢率低于2%的檢測要求。
表5 不同數(shù)據(jù)集對積料檢測的結(jié)果
誤檢率與漏檢率之間存在著相反的相互依賴關(guān)系,對于氣泡檢測采用F1度量的一般形式Fβ作為其評價指標(biāo),其計算公式為:
(5)
其中,P表示查準(zhǔn)率,R表示查全率,本文中β的值為1.3,表示查全率占用更大的比重。
訓(xùn)練時輸入圖片的最小分辨率為640×640,增加了網(wǎng)絡(luò)對不同尺寸圖片的適應(yīng)能力,但是在檢測時輸入圖片的尺寸為640×640。氣泡的檢測采用多次實驗得出的最優(yōu)參數(shù),其參數(shù)的初始學(xué)習(xí)率為0.0001,每隔20輪訓(xùn)練次數(shù)學(xué)習(xí)率衰減一次,衰減率為0.1,總共訓(xùn)練數(shù)為60輪。測試圖片為2700幅,測得其查全率為99.5%,查準(zhǔn)率為99.5%,故Fβ的值為99.5%,單幅圖片的檢測時間為35.5 ms,滿足工業(yè)上的檢測精度與檢測時間的要求。其部分檢測效果如圖8所示,其中包含各種情況下的氣泡狀態(tài),對于尺寸為5 mm×5 mm以上的氣泡檢測效果顯著。
(a) 單個氣泡 (b) 連結(jié)氣泡 (c) 離散氣泡 (d) 多個氣泡
本文介紹了基于深度學(xué)習(xí)的缺陷檢測方法,在檢測系統(tǒng)采集圖像后,通過圖像預(yù)處理,再經(jīng)過深度學(xué)習(xí)算法判斷醫(yī)用塑瓶是否有缺陷,在判斷醫(yī)用塑瓶存在某一類缺陷后,將該瓶的處理信號傳遞給剔除裝置進(jìn)行剔除。
實際檢測中,該算法具有良好的實時性與檢測精度,對積料缺陷的檢測精度為99.7%,檢測時間為29.7 ms;對氣泡缺陷的檢測精度為99.5%,檢測時間為35.5 ms,較好地滿足了工業(yè)生產(chǎn)的檢測要求。