張洪波,隋文濤,袁 林,李長(zhǎng)安,逯海濱
(山東理工大學(xué) 機(jī)械工程學(xué)院,山東 淄博 255000)
口服液是一種中藥制劑,在國(guó)內(nèi)得到了眾多消費(fèi)者的青睞,有巨大的消費(fèi)市場(chǎng)。由于口服液產(chǎn)品在生產(chǎn)中設(shè)計(jì)多道工序,受生產(chǎn)工藝的影響,不可避免地會(huì)產(chǎn)生一些缺陷產(chǎn)品。如果這些缺陷產(chǎn)品在生產(chǎn)環(huán)節(jié)未能檢測(cè)出來(lái),不僅會(huì)影響產(chǎn)品質(zhì)量,更有甚者會(huì)嚴(yán)重危害消費(fèi)者身體健康,其中,壓蓋質(zhì)量尤為重要。在口服液灌封過(guò)程中,藥液灌入口服液瓶中,由壓蓋機(jī)自動(dòng)貼合至瓶口,由于存在機(jī)械系統(tǒng)不穩(wěn)定等因素,壓蓋過(guò)程會(huì)出現(xiàn)一定偏差,造成壓蓋不良等情況,瓶蓋可能會(huì)出現(xiàn)劃痕、刮花、表面卷曲、壓蓋破損等缺陷,因此需要將它們檢測(cè)出來(lái)并剔除?,F(xiàn)如今,口服液生產(chǎn)廠家使用的口服液瓶蓋一般為鋁塑撕開(kāi)蓋,整體分為兩個(gè)部分,上部分為塑料材質(zhì)的撕開(kāi)蓋,下部分為鋁制的壓蓋部分。如圖1所示,圖(a)為正常壓蓋圖像,圖(b)為劃痕缺陷,圖(c)為壓蓋卷曲缺陷,圖(d)為壓蓋破損缺陷,圖(e)為壓蓋不良缺陷,圖(f)為完全未壓蓋缺陷。
圖1 缺陷示意圖
最傳統(tǒng)檢測(cè)方法一般采用人工檢測(cè),但隨著傳統(tǒng)機(jī)器視覺(jué)檢測(cè)方法的迅猛發(fā)展,很快被淘汰。因機(jī)器視覺(jué)檢測(cè)具有成本低、效率高等優(yōu)點(diǎn)而被廣泛應(yīng)用于口服液生產(chǎn)檢測(cè)環(huán)節(jié)。近些年,一些國(guó)外、國(guó)內(nèi)公司生產(chǎn)的燈檢機(jī)大多也基于傳統(tǒng)機(jī)器視覺(jué)檢測(cè)。湖南大學(xué)劉學(xué)兵基于傳統(tǒng)機(jī)器視覺(jué)檢測(cè)方法,提出了一種基于水平截距投影的方法提取瓶蓋下邊緣點(diǎn)作為缺陷檢測(cè)信息,并提出了邊緣點(diǎn)均值和方差兩種數(shù)據(jù)特征作為缺陷判斷數(shù)據(jù)。雖然傳統(tǒng)機(jī)器視覺(jué)檢測(cè)雖說(shuō)已經(jīng)取得了不錯(cuò)的檢測(cè)成果,但只能針對(duì)特定的一類產(chǎn)品,若企業(yè)更新包裝則需重新編寫(xiě)特定程序。近幾年,深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理、語(yǔ)音識(shí)別等領(lǐng)域都取得了較好的成果,在缺陷檢測(cè)領(lǐng)域,基于深度學(xué)習(xí)的檢測(cè)方法也在迅猛發(fā)展,Allen Zhang等人使用深度學(xué)習(xí)網(wǎng)絡(luò)在瀝青表面自動(dòng)進(jìn)行像素級(jí)路面裂縫檢測(cè);CV Dung等人提出了基于深度學(xué)習(xí)技術(shù)的基于視覺(jué)的混凝土表面裂縫自動(dòng)檢測(cè)。這些深度學(xué)習(xí)檢測(cè)方法雖然在檢測(cè)方面很有效,但其都需要人工進(jìn)行數(shù)據(jù)標(biāo)注。在工業(yè)生產(chǎn)中,一是缺陷產(chǎn)生具有不確定性,二是缺陷產(chǎn)品相比于正常產(chǎn)品比例極低。因此,異常檢測(cè)中的無(wú)監(jiān)督檢測(cè)逐漸受到關(guān)注。
Bergmann P提出了一種基于結(jié)構(gòu)相似性與自編碼器結(jié)合的無(wú)監(jiān)督缺陷分割,用于織物缺陷檢測(cè),經(jīng)驗(yàn)證該方法可以有效地檢測(cè)織物缺陷;合肥工業(yè)大學(xué)羅月童等提出了一種卷積去噪自編碼器檢測(cè)芯片表面弱缺陷,實(shí)驗(yàn)驗(yàn)證了該方法在芯片表面弱缺陷檢測(cè)中有良好效果。綜上所述,深度學(xué)習(xí)在缺陷檢測(cè)方面取得了良好的效果,但還未有基于無(wú)監(jiān)督學(xué)習(xí)的檢測(cè)方法應(yīng)用在口服液瓶壓蓋質(zhì)量檢測(cè)中,另外口服液壓蓋缺陷具有缺陷與背景對(duì)比度低、缺陷較小等特點(diǎn),又給傳統(tǒng)檢測(cè)方法帶來(lái)了挑戰(zhàn)。因此,該文設(shè)計(jì)一種無(wú)監(jiān)督學(xué)習(xí)的深度卷積去噪自編碼器網(wǎng)絡(luò)模型用于口服液瓶壓蓋質(zhì)量檢測(cè),為口服液壓蓋質(zhì)量檢測(cè)提出一種新思路、新方法。
自編碼器(Autoencoder,AE)是一種無(wú)監(jiān)督學(xué)習(xí)方法。所謂無(wú)監(jiān)督學(xué)習(xí),就是不需要對(duì)目標(biāo)提前標(biāo)注的深度學(xué)習(xí)方式。自編碼器是通過(guò)訓(xùn)練來(lái)達(dá)到重構(gòu)數(shù)據(jù)自身的一種人工神經(jīng)網(wǎng)絡(luò),即一種典型的輸入等于輸出的無(wú)監(jiān)督神經(jīng)網(wǎng)絡(luò)模型。自編碼器通常包含三個(gè)部分:編碼器(Encoder)、隱藏層、解碼器(Decoder)。在自編碼器的訓(xùn)練過(guò)程中,輸入經(jīng)過(guò)編碼這一過(guò)程后,編碼器對(duì)輸入數(shù)據(jù)進(jìn)行編碼壓縮,并且將輸入數(shù)據(jù)壓縮映射為一特征向量,該特征向量雖然維度較低,但其包含著輸入數(shù)據(jù)的隱藏特征信息,解碼器會(huì)根據(jù)特征向量重構(gòu)出輸入數(shù)據(jù),先編碼再解碼這一過(guò)程即可學(xué)習(xí)到輸入數(shù)據(jù)的密集表征。在自編碼器三個(gè)部分中,隱藏層是最重要的部分,因?yàn)閿?shù)據(jù)的密集表征遠(yuǎn)比輸入數(shù)據(jù)維度低,相當(dāng)于用更少的特征去表達(dá)輸入數(shù)據(jù),這使得自編碼器可以用于降維壓縮,這在圖像分類上有重要意義,其原理圖如圖2所示。
圖2 自編碼器原理圖
編碼過(guò)程就是編碼器通過(guò)函數(shù)f
將原始輸入數(shù)據(jù)x
=[x
,x
,…,x
]映射到隱含層h
,解碼過(guò)程是解碼器通過(guò)解碼函數(shù)g
將隱含層作為輸入,得到重構(gòu)數(shù)據(jù)z
=[z
,z
,…,z
],其公式表達(dá)如下:h
=f
(W
x
+b
)(1)
z
=g
(W
h
+b
)(2)
式中,W
和b
分別是編碼器的權(quán)重和偏置,W
和b
是解碼器的權(quán)重和偏置。自編碼器在訓(xùn)練過(guò)程中,使得重構(gòu)數(shù)據(jù)與原始輸入盡量逼近,從而表明隱含層學(xué)到了原始數(shù)據(jù)另外一種潛在的表達(dá)方式。因此,給定一個(gè)數(shù)據(jù)集x
=[x
,x
,…,x
],自編碼器通過(guò)最小化以下函數(shù)來(lái)優(yōu)化模型參數(shù)θ
:(3)
其中,L
為重構(gòu)函數(shù),一般使用平方誤差損失函數(shù)或者交叉熵?fù)p失函數(shù)。x
=[x
,x
,…,x
],首先對(duì)輸入數(shù)據(jù)引入噪聲:(4)
(5)
式中,L
為重構(gòu)函數(shù),通常情況下,一般為逐像素誤差測(cè)量函數(shù),如L
損失函數(shù),其具體公式如下:(6)
L
損失函數(shù)計(jì)算的是兩幅圖像之間的像素距離,其缺陷十分明顯,當(dāng)重建圖像中,目標(biāo)物體的邊緣具有定位誤差時(shí),原始圖像與重構(gòu)圖像之間的像素距離增大,計(jì)算兩者之間的殘差圖時(shí),會(huì)出現(xiàn)大量殘差,但此時(shí)重構(gòu)圖像中目標(biāo)物體結(jié)構(gòu)特征與原始圖像中目標(biāo)物體相同。針對(duì)上述問(wèn)題,該文提出使用基于結(jié)構(gòu)相似性(structural similarity,SSIM)作為優(yōu)化模型的損失函數(shù)。SSIM通過(guò)比較兩幅圖像之間的三個(gè)參數(shù)進(jìn)行計(jì)算,包括:亮度(Luminance)、對(duì)比度(Contrast)和結(jié)構(gòu)(Structure),三個(gè)參數(shù)計(jì)算公式如下:(7)
(8)
(9)
式中,p
和q
為兩個(gè)大小為M
×N
的圖像塊,μ
為p
的均值,μ
為q
的均值,σ
為p
的方差,σ
為q
的方差,σ
為p
和q
的協(xié)方差,c
與c
為兩個(gè)常數(shù),避免公式作除零運(yùn)算,一般取c
=c
/
2。每次計(jì)算的時(shí)候都從圖片上取一個(gè)M
×N
的窗口,然后不斷滑動(dòng)窗口進(jìn)行計(jì)算,最后取平均值作為全局的SSIM。SSIM(p
,q
)=[l
(p
,q
)·c
(p
,q
)·s
(p
,q
)](10)將α
,β
,γ
設(shè)置為1時(shí),可得到:(11)
SSIM通過(guò)考慮亮度、對(duì)比度和結(jié)構(gòu)信息,而不是簡(jiǎn)單地比較單個(gè)像素值,相對(duì)于L
函數(shù),在重建過(guò)程中對(duì)小的定位誤差不太敏感,并且SSIM函數(shù)作為損失函數(shù),檢測(cè)出的缺陷表現(xiàn)在目標(biāo)物體結(jié)構(gòu)的變化,而不是像素強(qiáng)度之間的差異。卷積去噪自編碼器結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)中的卷積層池化層操作來(lái)進(jìn)行特征提取,能夠很好地保留圖像的空間信息,又能夠進(jìn)行無(wú)監(jiān)督式學(xué)習(xí),訓(xùn)練速度更快。該文使用基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)和多層感知器(MLP)組合的去噪自編碼器碼器,其結(jié)構(gòu)如圖3所示。
圖3 模型結(jié)構(gòu)
模型具體參數(shù)如下:
(1)輸入為128×128×1像素單通道PNG格式灰度圖像。
(2)編碼器:包含4個(gè)卷積層、4個(gè)最大池化層和4個(gè)多層感知器。池化層統(tǒng)一為最大池化層,可以最大限度保留瓶蓋上的缺陷。編碼器具體結(jié)構(gòu)見(jiàn)表1。
表1 編碼器結(jié)構(gòu)信息
(3)解碼器:解碼器與編碼器的相反版本。包含4個(gè)多層感知器、4個(gè)上采樣層和4個(gè)卷積層。4個(gè)卷積層中,卷積核Kernel都設(shè)為3×3。
(4)輸出為128×128×1像素單通道PNG灰度圖像。
在編碼器與解碼器中,除了解碼器最后一層Conv4-Deconder使用Sigmoid作為激活函數(shù),其余卷積層與MLP層皆使用Relu函數(shù)作為激活函數(shù)。另外在訓(xùn)練中,為防止過(guò)擬合,分別在編碼器Conv2與Conv4后,以及解碼器Conv1與Conv3后,增加Dropout層,其值設(shè)置為0.15。
模型超參數(shù)設(shè)置如表2所示,Epoch設(shè)置為250,Batch size設(shè)置為64。經(jīng)多次試驗(yàn)發(fā)現(xiàn),當(dāng)優(yōu)化器設(shè)置為Adam,學(xué)習(xí)率為0.002,每次參數(shù)更新后學(xué)習(xí)率衰減值設(shè)置為0.000 01時(shí),訓(xùn)練效果最好。
表2 模型超參數(shù)信息
2.1.1 實(shí)驗(yàn)數(shù)據(jù)集
本次實(shí)驗(yàn)在采集圖像過(guò)程中,每個(gè)樣品每旋轉(zhuǎn)30°采集一張圖像。如圖4所示,總計(jì)采集5 700幅圖片,其中4 700幅合格產(chǎn)品圖片,1 000幅次品圖片。后期給出了圖片的樣例,所提供測(cè)試的圖片包含了常見(jiàn)的缺陷,如:劃痕、刮花、表面卷曲、壓蓋破損等,測(cè)試圖像為專業(yè)人員挑選,確保涵蓋壓蓋過(guò)程中常見(jiàn)缺陷,具有代表性。如圖4所示,前兩行為合格產(chǎn)品,后兩行為缺陷產(chǎn)品,從左往右依次為壓蓋不良、劃痕、壓蓋破損、壓蓋卷曲缺陷。
圖4 數(shù)據(jù)集圖像
2.1.2 數(shù)據(jù)增強(qiáng)
使用數(shù)據(jù)增強(qiáng)從現(xiàn)有的數(shù)據(jù)集中生成更多的訓(xùn)練數(shù)據(jù),包括隨機(jī)水平翻轉(zhuǎn),在0~30范圍內(nèi)隨機(jī)旋轉(zhuǎn),隨機(jī)添加噪聲、隨機(jī)錯(cuò)切角度等,將數(shù)據(jù)集擴(kuò)充到10 000幅圖像,包括8 000幅合格產(chǎn)品圖像,2 000幅缺陷圖像。
2.1.3 圖像預(yù)處理
該文采取常用圖像預(yù)處理方式對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,流程如圖5所示。原始圖像使用高速相機(jī)拍攝的產(chǎn)品照片,為1 600×1 200像素24位彩色圖像,首先對(duì)其進(jìn)行圖像預(yù)處理。為了提高算法運(yùn)算速度,將圖片轉(zhuǎn)化為灰度圖,對(duì)圖像進(jìn)行高斯濾波,以消除圖像采集過(guò)程中不可避免的噪聲,然后經(jīng)尺寸變換轉(zhuǎn)換為像素值128×128×1的灰度圖像。經(jīng)檢驗(yàn),瓶蓋圖像在128×128×1像素時(shí),圖像不失真且能最大程度保留缺陷信息。
圖5 圖像預(yù)處理流程
2.1.4 網(wǎng)絡(luò)訓(xùn)練
在網(wǎng)絡(luò)訓(xùn)練階段用于訓(xùn)練的圖像全部為合格產(chǎn)品圖像,在去噪自編碼器中隨機(jī)添加高斯噪聲,并將輸入的像素值部分隨機(jī)設(shè)為零。經(jīng)多次實(shí)驗(yàn)驗(yàn)證發(fā)現(xiàn)高斯噪音幅度為0.15時(shí)效果較好。添加對(duì)比試驗(yàn)組,使用標(biāo)注后的數(shù)據(jù)集對(duì)卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。
2.2.1 損失函數(shù)對(duì)比試驗(yàn)
如表1介紹的去噪自編碼器,該文在此分別使用SSIM函數(shù)及L
函數(shù)作為卷積去噪自編碼器的優(yōu)化模型損失函數(shù),通過(guò)在數(shù)據(jù)集上進(jìn)行性能比較,結(jié)果如圖6所示。圖6 ROC曲線
圖中展示了SSIM與L
的CDAE模型在壓蓋數(shù)據(jù)集上ROC曲線及其各自的AUC值,使用SSIM作為損失函數(shù)比使用L
作為損失函數(shù)的自編碼器性能要好。僅通過(guò)改變損失函數(shù),在壓蓋圖像數(shù)據(jù)集上,實(shí)現(xiàn)的AUC從0.873提高到0.966。2.2.2 實(shí)驗(yàn)對(duì)比
本次實(shí)驗(yàn)采用VGG16卷積神經(jīng)網(wǎng)絡(luò)與卷積去噪自編碼器CDAE進(jìn)行對(duì)比實(shí)驗(yàn)。卷積神經(jīng)網(wǎng)絡(luò)與卷積去噪卷積自編碼器在驗(yàn)證集上的準(zhǔn)確率對(duì)比如圖7所示。
圖7 CDAE與VGG16準(zhǔn)確率對(duì)比
在VGG16卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí),在訓(xùn)練集中的表現(xiàn)為:30次迭代之前,正確率提升明顯,在160次迭代時(shí),準(zhǔn)確率達(dá)到89.6%。在驗(yàn)證集中的表現(xiàn)為:在30次迭代附近,準(zhǔn)確率迅速提高,隨后趨于穩(wěn)定。卷積去噪自編碼器在訓(xùn)練集上的表現(xiàn)為:在30次迭代前,準(zhǔn)確率提升較快,在120次迭代準(zhǔn)確率達(dá)到95.2%,相較于卷積神經(jīng)網(wǎng)絡(luò)準(zhǔn)確率提升5.6%,且收斂速度更快。
2.2.3 重構(gòu)圖像殘差圖
經(jīng)卷積去噪自編碼器重構(gòu)的缺陷圖片輸出后已不包含缺陷,與輸入圖片相減,即可得到壓蓋缺陷殘差圖。如圖8所示,第一列為輸入圖像,為壓蓋缺陷圖像,第二列為殘差圖與輸入圖像疊加圖像(標(biāo)注區(qū)域?yàn)槠鋵?duì)應(yīng)缺陷區(qū)域),第三列為缺陷殘差圖。
圖8 重構(gòu)圖像及殘差圖
針對(duì)口服液瓶蓋壓蓋質(zhì)量檢測(cè),該文提出了一種卷積去噪自編碼方法代替卷積神經(jīng)網(wǎng)絡(luò)方法對(duì)壓蓋中產(chǎn)生的缺陷進(jìn)行識(shí)別與定位,通過(guò)實(shí)驗(yàn)對(duì)比分析得出以下結(jié)論:
基于SSIM的卷積去噪自編碼器網(wǎng)絡(luò)在口服液小瓶壓蓋質(zhì)量圖像數(shù)據(jù)集上的準(zhǔn)確率達(dá)到95.2%,相比于卷積神經(jīng)網(wǎng)絡(luò)提升了5.6個(gè)百分點(diǎn),且收斂性更好。同時(shí),卷積去噪自編碼器模型可以應(yīng)用在更多不同的領(lǐng)域,且魯棒性更強(qiáng),可以嘗試將該方法應(yīng)用在其他缺陷檢測(cè)領(lǐng)域。
計(jì)算機(jī)技術(shù)與發(fā)展2022年2期