寧 娟,周慶華,曾小為
(1.長沙理工大學(xué)物理與電子科學(xué)學(xué)院,湖南 長沙 410114;2.納威爾智能科技有限公司,湖南 長沙 410007)
西林瓶是一種采用膠塞封口的玻璃管制藥劑瓶,被藥品制造廠廣泛應(yīng)用于各類口服液、凍干、粉劑等藥品的包裝中[1]。西林瓶由瓶體、膠塞、鋁塑蓋3 個(gè)部分構(gòu)成,軋蓋機(jī)是將各種規(guī)格的西林瓶瓶口加鋁蓋或鋁塑蓋,鎖緊封口,來達(dá)到密封的作用,以保證藥品不受污染[2]。在封蓋環(huán)節(jié),由于機(jī)械外力的作用,密封后的軋蓋部位極容易產(chǎn)生開裂、擦傷、脫蓋、變形等缺陷。近年來,由于GMP[3](Good Manufacture Practice of Medical Products)藥品生產(chǎn)質(zhì)量管理規(guī)范規(guī)定的嚴(yán)格實(shí)施,在封蓋環(huán)節(jié)產(chǎn)生的缺陷產(chǎn)品必須經(jīng)過檢測剔除。目前工業(yè)缺陷檢測系統(tǒng)在西林瓶裝藥品生產(chǎn)線上被廣泛應(yīng)用,但針對西林瓶軋蓋部位的缺陷檢測還少有人研究,業(yè)內(nèi)主流的檢測系統(tǒng)只有西林瓶制造廠對瓶體及鋁塑蓋質(zhì)量的檢測,以及藥廠對裝藥后西林瓶膠塞氣密性檢測[4]。
機(jī)器視覺技術(shù)是一種用機(jī)器代替人眼做測量和判斷的技術(shù)[5]。機(jī)器視覺的檢測方法是一種自動(dòng)化檢測方法,相較于傳統(tǒng)檢測方法,它有非接觸性、速度快、準(zhǔn)確性高等優(yōu)點(diǎn)[6]。隨著計(jì)算機(jī)學(xué)科的發(fā)展,機(jī)器視覺的缺陷檢測方法逐漸取代了人工檢測方法,被應(yīng)用于工業(yè)生產(chǎn)檢測環(huán)節(jié)[7]。
深度學(xué)習(xí)的方法是目前計(jì)算機(jī)視覺領(lǐng)域應(yīng)用較廣泛的方法,利用卷積神經(jīng)網(wǎng)絡(luò)提取特征,構(gòu)建有效的網(wǎng)絡(luò)模型,在缺陷檢測領(lǐng)域取得了有效的成果。當(dāng)前工業(yè)界應(yīng)用較多的目標(biāo)檢測算法大致可分為2 類,以Faster R-CNN 為代表的兩階段檢測算法和以SSD、YOLO 為代表的單階段檢測算法。李玉等[8]通過對Faster R-CNN 的特征提取網(wǎng)絡(luò)進(jìn)行改進(jìn),并增加了特征金字塔網(wǎng)絡(luò),有效提高了對鋼板表面低對比度的缺陷檢測能力。劉群坡等[9]對SSD 算法進(jìn)行了改進(jìn),利用深度殘差結(jié)構(gòu)和自頂向下的多尺度特征融合方法,來增強(qiáng)精密玻璃裝電連接器表面微小缺陷特征提取和融合能力,檢測精度達(dá)到91.28%。YOLO 系列網(wǎng)絡(luò)是缺陷檢測任務(wù)中表現(xiàn)較優(yōu)的網(wǎng)絡(luò),沈希忠等[10]通過改進(jìn)YOLOv5模型,并在訓(xùn)練過程中引入遷移訓(xùn)練的方法進(jìn)行多次遷移訓(xùn)練,提升了短期訓(xùn)練的模型檢測精度,對鋁型材料表面缺陷的小缺陷檢測效果有明顯提升。YOLOv7[11]模型是YOLO系列最新成果,在繼承原有YOLO 模型優(yōu)勢的基礎(chǔ)上,通過可擴(kuò)展的高效層聚合網(wǎng)絡(luò)E-ELAN[11]結(jié)構(gòu)來加速模型收斂,設(shè)計(jì)了模型重參化來實(shí)現(xiàn)模型在訓(xùn)練中精度與速度的權(quán)衡,采用輔助訓(xùn)練頭和標(biāo)簽分配器來提升目標(biāo)檢測器在多任務(wù)訓(xùn)練上的性能。這些網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練策略技巧使其具有更優(yōu)的檢測精度和更快的推理速度[12]。然而,原始YOLOv7算法由于缺少高效的特征提取和特征融合的策略,存在無法高效地從低對比度背景中提取細(xì)粒度特征的問題。西林瓶軋蓋缺陷存在目標(biāo)缺陷較小、特征不清和多尺度等特點(diǎn),直接使用YOLOv7 算法進(jìn)行西林瓶軋蓋缺陷檢測存在對小目標(biāo)缺陷的漏檢和誤檢的問題。對此,業(yè)內(nèi)常用卷積塊注意力模型來提高小目標(biāo)特征的表現(xiàn)能力,進(jìn)一步提高待檢測目標(biāo)的顯著度。戚玲瓏等[13]利用ACmix 注意力模塊來改進(jìn)YOLOv7 網(wǎng)絡(luò),增加網(wǎng)絡(luò)對小尺度目標(biāo)敏感度,降低了小目標(biāo)檢測的漏檢率。但是西林瓶軋蓋缺陷存在多種尺度,上述方法對目標(biāo)缺陷仍存在漏檢問題。本文在引入注意力機(jī)制的基礎(chǔ)上增加自適應(yīng)特征融合模塊,進(jìn)一步提高缺陷檢測的精度,解決西林瓶軋蓋缺陷檢測中的漏檢問題。
在長沙納威爾智能科技有限公司的真實(shí)工業(yè)傳送帶環(huán)境下搭建一個(gè)西林瓶軋蓋的圖像采集系統(tǒng)。西林瓶鋁塑蓋材質(zhì)光滑,易反光,經(jīng)過軋蓋機(jī)封裝后,其性質(zhì)保持不變。光源會(huì)影響圖像的灰度值的大小及分布,采用合適的光源可以使缺陷像素的亮度和梯度變化更明顯[14]。通過研究西林瓶軋蓋的材料及光反射情況,采用環(huán)形光源的打光方案,環(huán)形光源能提高圖像檢測的對比度[15],對西林瓶軋蓋表面的缺陷有良好的檢測效果。由于西林瓶軋蓋呈柱體曲面,其缺陷可能出現(xiàn)在軋蓋的任意位置,在固定方向運(yùn)動(dòng)的傳送帶上,單個(gè)相機(jī)無法捕捉全部缺陷,從而導(dǎo)致工件表面存在檢測盲區(qū),對檢測結(jié)果造成重要影響[16]。為解決這個(gè)問題,實(shí)驗(yàn)采用3 臺(tái)CMOS 面陣相機(jī)從不同角度采集圖像,相機(jī)組之間的夾角為120°,高度與西林瓶頸部高度保持一致,如圖1(a)所示,圖1(b)為圖像采集系統(tǒng)的實(shí)物架構(gòu)圖。
圖1 圖像采集系統(tǒng)架構(gòu)圖
圖1 (a)中LC1、LC2、LC3 鏡頭選用日本康標(biāo)達(dá)(Computar)鏡頭,其焦距為12 mm;相機(jī)選用德國巴斯勒(Basler)acA1300-60gm 黑白相機(jī),像素為130 萬像素,分辨率為1280×1024像素,像素位深為12 bits;使用GigE Vision 接口進(jìn)行圖像傳輸,提升取圖速率。3臺(tái)相機(jī)從不同角度共采集到984張西林瓶軋蓋缺陷圖像,將其統(tǒng)一重新編號(hào)為格式“0000X.bmp”。
西林瓶軋蓋常見缺陷包括劃痕(Scratches)、缺帽(Missing Cap)、凹裂(Concave-crack)、復(fù)合缺陷(Composite Defect)這4 種,圖2 是采集到的4 種西林瓶軋蓋缺陷圖像的一些例子。
圖2 西林瓶軋蓋缺陷圖像的一些例子
本文實(shí)驗(yàn)實(shí)際采集了984 張西林瓶軋蓋缺陷圖像,為了提高網(wǎng)絡(luò)模型的魯棒性和泛化能力,分別采用基于HSV 域變換和基于幾何變換及Mosaic 數(shù)據(jù)增強(qiáng)的方法對缺陷圖像數(shù)據(jù)規(guī)模進(jìn)行擴(kuò)充。
1)基于HSV域變換的數(shù)據(jù)增強(qiáng)。
HSV 模型是使用色相(Hue)、飽和度(Saturation)、明度(Value)來表示色彩的一種方式,直觀反映人眼對色彩的感知,可適用于對視覺信息的分析處理[17]。由于西林瓶軋蓋是光滑的柱面鋁質(zhì)材料,呈高適光性,光線反射以鏡面反射為主,其鏡面反射點(diǎn)附近容易出現(xiàn)光亮集中區(qū)域[18],對缺陷部位的檢測有干擾,容易造成誤判。為了提高網(wǎng)絡(luò)對圖像亮度變化的魯棒性,對采集圖像總數(shù)的80%的圖像進(jìn)行HSV 域擾動(dòng)處理[19]。首先將RGB 顏色圖像轉(zhuǎn)換成HSV 圖像,然后將色相值固定,再分別隨機(jī)改變圖像的飽和度(S)和明度(V)的值,最后得到1574 張擴(kuò)充圖像。
2)基于幾何變換的數(shù)據(jù)增強(qiáng)。
基于幾何變換的數(shù)據(jù)增強(qiáng)是從圖像數(shù)據(jù)形態(tài)進(jìn)行數(shù)據(jù)擴(kuò)充[20],可以提高網(wǎng)絡(luò)模型的泛化性。將原始圖像總數(shù)的70%的圖像,隨機(jī)進(jìn)行翻轉(zhuǎn)、旋轉(zhuǎn)、移位、裁剪、變形、縮放、仿射等幾何變換得到662 張擴(kuò)充圖像。
通過上述2 種方法的數(shù)據(jù)增強(qiáng)后,將原始的984張圖像擴(kuò)充到3220 張圖像,數(shù)據(jù)集中各類缺陷樣本數(shù)量如表1 所示。用LabelImg 開源標(biāo)注工具對西林瓶軋蓋缺陷圖像進(jìn)行人工標(biāo)注,并將標(biāo)注結(jié)果保存為YOLO 格式,生成.TXT 格式的標(biāo)注文件,得到了YOLO格式的西林瓶軋蓋缺陷圖像數(shù)據(jù)集。
表1 數(shù)據(jù)集中各類缺陷樣本數(shù)單位:個(gè)
3)Mosaic數(shù)據(jù)增強(qiáng)。
本文在訓(xùn)練網(wǎng)絡(luò)時(shí)還采用Mosaic 數(shù)據(jù)增強(qiáng)的方法以進(jìn)一步提高模型的性能[21]。Mosaic 數(shù)據(jù)增強(qiáng)是在YOLOv4網(wǎng)絡(luò)中提出的一種數(shù)據(jù)增強(qiáng)方法[22],其思想是將4張圖像進(jìn)行隨機(jī)裁剪,再拼接得到一張圖像,作為新生成的訓(xùn)練數(shù)據(jù),來豐富原始圖像數(shù)據(jù)。具體流程是從數(shù)據(jù)集里,抽取一批西林瓶軋蓋缺陷圖像,隨機(jī)選取4張圖像,進(jìn)行隨機(jī)縮放、裁剪、切割,并以隨機(jī)排布的方式拼接成一張新的圖像,然后重復(fù)上述操作;最后,將生成的批量圖像輸入神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
西林瓶軋蓋損傷面積一般較小,另外工業(yè)生產(chǎn)需要滿足實(shí)時(shí)性要求。YOLO 網(wǎng)絡(luò)是為了彌補(bǔ)兩階段檢測網(wǎng)絡(luò)在檢測速度上難以滿足實(shí)時(shí)要求的缺點(diǎn),而設(shè)計(jì)一次完成目標(biāo)類別的判定和邊界的預(yù)測,使得檢測效率得到極大提升[23];它具有更快的檢測速度和較高的檢測精度的優(yōu)點(diǎn),且經(jīng)歷了不同版本的演變,文獻(xiàn)[24]整理了YOLOv1~YOLOv5 各版本的網(wǎng)絡(luò)結(jié)構(gòu)和應(yīng)用場景。YOLOv7 是YOLO 模型的最新成果,文獻(xiàn)[24]中詳細(xì)介紹了它的網(wǎng)絡(luò)架構(gòu)和優(yōu)化效果。本文在YOLOv7 網(wǎng)絡(luò)中加入注意力機(jī)制和自適應(yīng)特征融合機(jī)制,并將其應(yīng)用到西林瓶軋蓋的缺陷檢測中,通過該算法,藥品制造廠可以實(shí)時(shí)獲得西林瓶裝藥品的封蓋情況和軋蓋損傷情況。
1)融入注意力機(jī)制。
由于西林瓶軋蓋缺陷圖像中背景與前景相似,且部分缺陷面積較小、特征不清,為了提高模型對軋蓋缺陷部分的特征表達(dá)能力,在網(wǎng)絡(luò)中引入注意力機(jī)制。卷積注意力機(jī)制(Convolution Block Attention Module,CBAM)是一個(gè)輕量級(jí)的注意力模塊,可以在通道和空間維度進(jìn)行注意力操作,通道注意模塊(CAM)使網(wǎng)絡(luò)更多地關(guān)注圖像的前景和有意義的信息,空間注意模塊(SAM)使網(wǎng)絡(luò)更多地關(guān)注目標(biāo)的位置信息[25]。SE(Squeeze and Excitation)注意力機(jī)制是使網(wǎng)絡(luò)更關(guān)注通道特征信息,在特征提取中自動(dòng)學(xué)習(xí)特征圖的通道權(quán)重,來突出重要特征通道,抑制不重要通道信息[26]。高效通道注意力機(jī)制(Efficient Channel Attention,ECA)是在SE 注意力機(jī)制的基礎(chǔ)上改進(jìn),使用一維卷積的方法來代替降維操作,有效捕獲跨通道交互信息[27],來提升模型性能。文獻(xiàn)[28]將3 種注意力機(jī)制引入人體關(guān)鍵點(diǎn)檢測網(wǎng)絡(luò),其研究結(jié)果表明,融合CBAM 注意力模塊的網(wǎng)絡(luò)模型性能表現(xiàn)較好。為了提高網(wǎng)絡(luò)對小目標(biāo)缺陷的提取能力,如西林瓶軋蓋上細(xì)小的劃痕缺陷,本文選擇在YOLOv7的骨干網(wǎng)絡(luò)末端引入CBAM注意力模塊。
2)融入自適應(yīng)特征融合機(jī)制。
由于西林瓶軋蓋缺陷尺寸分布廣,且一張圖像中可能存在既有大目標(biāo)缺陷又有小目標(biāo)缺陷。而YOLOv7 里采用PANet 結(jié)構(gòu)對特征進(jìn)行融合,是將不同層的特征圖先變換成相同尺寸再相加,當(dāng)不同特征的尺度不一致時(shí),將導(dǎo)致融合特征圖的噪聲增大[29],影響檢測效果。文獻(xiàn)[30]提出了一種自適應(yīng)特征融合機(jī)制(ASFF),讓網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)過濾掉其它層無用的信息,保留有用信息實(shí)現(xiàn)高效融合特征。對于某一層的特征,在融合前先將其他層特征尺寸調(diào)整成與它一致,然后通過模型訓(xùn)練,學(xué)習(xí)到最佳的融合方式。其實(shí)驗(yàn)表明,融入ASFF 后,YOLOv3 模型性能顯著提升。本文在YOLOv7 模型原有的多尺度特征提取的基礎(chǔ)上,繼續(xù)融入自適應(yīng)特征融合ASFF機(jī)制,來高效融合在不同尺度的感受野下西林瓶軋蓋缺陷特征信息。圖3 為增加CBAM 和ASFF 模塊的改進(jìn)YOLOv7網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖3 增加CBAM和ASFF模塊的改進(jìn)YOLOv7網(wǎng)絡(luò)結(jié)構(gòu)
本文實(shí)驗(yàn)平臺(tái)是采用搭載有Intel Core i5-12400F 處理器和NVIDIA GeForce RTX3060 型12 GB 顯存GPU 的64 位Windows 10 操作系統(tǒng)的計(jì)算機(jī)進(jìn)行模型訓(xùn)練,使用Pytorch 1.8.1 版、Python 版和CUDA版。
實(shí)驗(yàn)將之前得到的3220張缺陷圖像,按照8∶2劃分訓(xùn)練集和測試集,訓(xùn)練集包含2559 張缺陷圖像,測試集包含661張缺陷圖像。
訓(xùn)練過程中的訓(xùn)練參數(shù)如表2 所示。設(shè)置初始學(xué)習(xí)率為0.001,最小學(xué)習(xí)率設(shè)置為0.00001,使用Adam 優(yōu)化器,動(dòng)量參數(shù)設(shè)置為0.937,并使用余弦退火函數(shù)來動(dòng)態(tài)降低學(xué)習(xí)率。訓(xùn)練中改進(jìn)前后的YOLOv7網(wǎng)絡(luò)的損失曲線如圖4所示。
表2 訓(xùn)練參數(shù)設(shè)置表
圖4 改進(jìn)前后YOLOv7的訓(xùn)練Loss曲線
為了評(píng)估模型的性能,本文采用精準(zhǔn)率(P)表示模型正確識(shí)別西林瓶軋蓋缺陷的占比,召回率(R)表示識(shí)別圖片中軋蓋缺陷目標(biāo)的涵蓋程度[26];采用平均精度均值(Mean Average Precision,mAP)表示所有缺陷類別的平均識(shí)別精度;采用每秒實(shí)際達(dá)到的檢測幀數(shù)(Frames Per Second,F(xiàn)PS)來評(píng)價(jià)模型識(shí)別缺陷的速度。
為了驗(yàn)證改進(jìn)后YOLOv7 網(wǎng)絡(luò)中各模塊的檢測效果,在西林瓶軋蓋缺陷檢測中,設(shè)置了消融實(shí)驗(yàn),將改進(jìn)YOLOv7 網(wǎng)絡(luò)中的改進(jìn)模塊逐個(gè)添加進(jìn)行訓(xùn)練,并分別將測試集輸入給訓(xùn)練得到的4 個(gè)網(wǎng)絡(luò),針對測試集的消融實(shí)驗(yàn)結(jié)果如表3所示。
表3 消融實(shí)驗(yàn)結(jié)果
從表3中可以看出,YOLOv7融入了ASFF模塊后mAP 比原來提高了1.2 個(gè)百分點(diǎn),加入CBAM 模塊后mAP 比原來提高了1.8 個(gè)百分點(diǎn),表明引入ASFF 模塊和CBMA 模塊對YOLOv7 網(wǎng)絡(luò)提升目標(biāo)檢測性能有積極效果。結(jié)果表明,同時(shí)融合CBAM 注意力機(jī)制和ASFF 自適應(yīng)特征融合機(jī)制的網(wǎng)絡(luò),相比原YOLOv7網(wǎng)絡(luò),在檢測速度僅降低10%的情況下,精確率提高了2.3 個(gè)百分點(diǎn),召回率提高了2.1 個(gè)百分點(diǎn),mAP 提高了1.9 個(gè)百分點(diǎn),且檢測速率仍能滿足工業(yè)實(shí)時(shí)檢測的要求。另外為了對比各模型對于無缺陷圖像的識(shí)別性能,將400 張無缺陷圖像分別輸入上述4 個(gè)網(wǎng)絡(luò),結(jié)果表明,其中對無缺陷圖像,原始YOLOv7 的識(shí)別準(zhǔn)確率是99.5%,而改進(jìn)后的3 個(gè)網(wǎng)絡(luò),均能100%正確判定無缺陷圖像。
為了進(jìn)一步了解模型對西林瓶軋蓋各類缺陷的識(shí)別效果,融合2 種模塊對不同缺陷識(shí)別的平均檢測精度的均值mAP 如表4 所示。結(jié)果表明,同時(shí)融合2種模塊的網(wǎng)絡(luò)對不同缺陷類別的識(shí)別效果均有提升,其中對劃痕缺陷的mAP提升效果最好,從96.4%提升到98.9%,提升了2.5 個(gè)百分點(diǎn);而對復(fù)合缺陷的識(shí)別精度提升相對較低,主要原因可能是訓(xùn)練集中復(fù)合缺陷的實(shí)例數(shù)少于其他3 種缺陷,其中訓(xùn)練集中劃痕缺陷實(shí)例有1120 個(gè),缺帽缺陷實(shí)例有643 個(gè),凹裂缺陷實(shí)例有996個(gè),復(fù)合缺陷實(shí)例有639個(gè)。
表4 對不同缺陷的mAP/%消融實(shí)驗(yàn)結(jié)果
為了驗(yàn)證本文方法的有效性,在相同的實(shí)驗(yàn)環(huán)境下,采用其他方法進(jìn)行西林瓶軋蓋缺陷檢測實(shí)驗(yàn),表5 是實(shí)驗(yàn)結(jié)果,表中采用檢測精度mAP 作為評(píng)估指標(biāo)。文獻(xiàn)[8]提出在Faster R-CNN 網(wǎng)絡(luò)中增加特征金字塔網(wǎng)絡(luò)FPN,但檢測速較慢且漏檢率高。文獻(xiàn)[9]提出利用深度殘差結(jié)構(gòu)(DR)和自頂向下的多尺度特征融合(FM)的方法改進(jìn)SSD 網(wǎng)絡(luò),但檢測慢的問題仍需解決。根據(jù)工業(yè)檢測的實(shí)時(shí)性需求,一般要求FPS/(f/s)達(dá)到30 以上,分析實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)只有YOLO 系列算法的檢測速度能滿足實(shí)時(shí)性需求。文獻(xiàn)[10]提出在YOLOv5 模型的基礎(chǔ)上引入遷移訓(xùn)練,但檢測速度和檢測精度均低于文獻(xiàn)[13]提出的改進(jìn)YOLOv7 方法。本文方法雖然在檢測速度上稍低于文獻(xiàn)[13],但在西林瓶軋蓋各類缺陷的檢測精度上有明顯優(yōu)勢,故本文方法是解決工業(yè)西林瓶軋蓋缺陷檢測問題的較好的選擇。
表5 本文方法與其他方法進(jìn)行西林瓶軋蓋缺陷檢測的結(jié)果對比
本文構(gòu)建了一個(gè)用于訓(xùn)練西林瓶軋蓋缺陷檢測算法的數(shù)據(jù)集。該數(shù)據(jù)集有984 張?jiān)既毕輬D像,加上擴(kuò)充后的圖像共3220 張缺陷圖像,其中包括劃痕、缺帽、凹裂、復(fù)合缺陷4類常見缺陷。本文在YOLOv7算法基礎(chǔ)上引入CBAM 注意力模塊和ASFF自適應(yīng)特征融合機(jī)制,提高了網(wǎng)絡(luò)的特征提取能力,提升了算法的檢測性能。實(shí)驗(yàn)表明,改進(jìn)后的算法在西林瓶缺陷檢測中應(yīng)用效果較好,對無缺陷圖像的識(shí)別率為100%,對有缺陷圖像的mAP 達(dá)到99.3%,降低了漏檢率,使得檢測精度和檢測速率均符合工業(yè)生產(chǎn)線的檢測要求,為西林瓶工業(yè)生產(chǎn)檢測提供了新思路。