張沖偉,張云偉,2*
(1.昆明理工大學信息工程與自動化學院,云南昆明 650500)
(2.昆明理工大學云南省人工智能重點實驗室,云南昆明 650500)
瓶裝礦泉水在出廠前需要檢測是否含有雜質(zhì)異物(工業(yè)上一般規(guī)定半徑大于50 μm的不溶性物質(zhì)即為雜質(zhì)異物[1]),因此檢測環(huán)節(jié)成為生產(chǎn)流水線上的重要環(huán)節(jié)。目前該環(huán)節(jié)檢測的手段主要是通過人工用人眼去尋找雜質(zhì)異物,如圖1所示。然而,人工燈檢需要消耗大量的人力物力,對人眼健康傷害較大,且檢測效率低,可靠性差。盡管傳統(tǒng)的圖像處理方式能夠一定程度上緩解該問題,但是其性能依賴于圖像的質(zhì)量,且檢測速度慢。因此研究一種高檢測率、快速的檢測方法具有重要意義。
目前,瓶裝液體(白酒、安瓿、大輸液)的異物檢測方法主要分為基于傳統(tǒng)檢測、基于視覺、基于神經(jīng)網(wǎng)絡三類?;趥鹘y(tǒng)的檢測方法:在早期工作中,由于檢測瓶體簡單且單一,部分研究者基于傳統(tǒng)方法檢測瓶裝液體中異物。例如,王會昌等人[2]采用超聲波檢測法檢測透明灌裝瓶液體中非透明雜質(zhì)。Michael和 Maurício等人[3,4]利用光電傳感器檢測液體中懸浮固體。這種方法對瓶身的要求很高,主要針對瓶體都是全新且一致的產(chǎn)品,而且算法復雜度高?;谝曈X的方法:部分研究人員將異物檢測化為目標提取任務,目標提取通常著重于將圖像中的目標與背景分割出來。湖南大學王耀南研究團隊[5,6]采用背景減除法對酒類進行異物檢測;Ishii等人[7]針對塑料瓶裝藥液檢測采用圖像幀間差分法。以上方法能夠有效的將瓶裝液體中異物和氣泡檢測出來,但是瓶體表面的缺陷、外包裝和液體中氣泡對檢測精度影響較大?;谏窠?jīng)網(wǎng)絡的方法:針對瓶裝液體異物的多樣性,將異物檢測任務看成目標分類任務。Moghadas等人[8]利用多層感知機(MLP)神經(jīng)網(wǎng)絡設計了一種檢測醫(yī)用小瓶的分類器;Zhou等人[9]采用思維進化算法(MEA)對反向傳播(BP)神經(jīng)網(wǎng)絡進行優(yōu)化,設計了一種檢測大輸液中異物的分類器。但該類方法并沒有充分將異物高緯度特征和低緯度特征用于異物檢測,造成目標分類不清晰,并且該方法過于依賴樣本。隨著深度學習能夠有效地捕捉目標物的特征,在機器學習領(lǐng)域取得了巨大成就。如果能夠?qū)⑦@一技術(shù)充分與礦泉水異物檢測任務相結(jié)合,并針對礦泉水異物固有的特性提出合理的特征提取方法,就能夠極大程度上提高檢測效率,提升異物檢測精度。
本研究旨在創(chuàng)建瓶裝礦泉水異物數(shù)據(jù)集、提取具有判別性的瓶裝礦泉水異物特征,結(jié)合深度學習算法,建立小尺度瓶裝礦泉水異物檢測模型,為提高瓶裝礦泉水質(zhì)量提供可靠的理論基礎(chǔ)和技術(shù)支持。
通過查閱相關(guān)文獻可知,關(guān)于瓶裝礦泉水異物檢測的研究鮮有報道,所以目前還沒有針對瓶裝礦泉水異物公開數(shù)據(jù)集。因此,本文設計瓶裝礦泉水異物檢測方案采集數(shù)據(jù)集。具體來說,每次將四種不同的異物隨機放進360 mL規(guī)格的空礦泉水瓶中,再將其放入數(shù)據(jù)采集裝置。接下來,利用京航USB2.0帶緩存系列COMS工業(yè)相機JHSM300f和LED可變聚焦燈獲取礦泉水異物圖像。
1.1.1 圖像采集裝置結(jié)構(gòu)
本文設計的瓶裝礦泉水異物數(shù)據(jù)采集簡易裝置主要由LED可變聚焦燈、傳送帶、轉(zhuǎn)動輪、暗箱、攝像機、推桿、控制器、電機控制裝置、齒輪和活動擋板等10個部分組成,如圖2所示。攝像頭在暗箱頂部,拍攝角度正對瓶裝礦泉水樣本,推桿和控制器位于入口處傳送帶的一側(cè),傳送帶與暗箱內(nèi)的轉(zhuǎn)動輪相接用于傳輸待測樣本,在轉(zhuǎn)動輪的另一側(cè)設置電動門,LED光源安裝在兩個轉(zhuǎn)動輪中間,活動擋板置于瓶裝礦泉水入口處,電機控制裝置布置在轉(zhuǎn)動輪一側(cè)。
1.1.2 圖像采集工作原理
(1)采集送樣:待檢測瓶裝礦泉水通過傳送帶進入暗箱送到兩個轉(zhuǎn)動輪上,電機控制出口端一側(cè)的轉(zhuǎn)動輪順時針轉(zhuǎn)動,電機驅(qū)動齒輪帶動入口端一側(cè)的轉(zhuǎn)動輪,控制器控制兩根轉(zhuǎn)動輪的轉(zhuǎn)速差,使得瓶裝礦泉水能夠低速順時針旋轉(zhuǎn),滾動作用使瓶中的異物處于運動狀態(tài),在光源照射下,由于異物顆粒表面對光線的漫反射作用,目標整體清晰明亮,在視覺傳感器采集的圖像中有較好的成像效果。
(2)光源照射:LED光源位于兩個轉(zhuǎn)動輪后端正中間,光線中心對應瓶底中心,且垂直于礦泉水瓶底部照射,可照射到整瓶水的狀態(tài)。
(3)圖像采集:攝像機位于兩個轉(zhuǎn)動輪中間正上方暗箱頂部,拍攝方向與LED光源方向垂直,即在水瓶正上方拍攝圖像。數(shù)據(jù)采集時,該裝置暗箱四周封閉,樣本進出口均由活動擋板構(gòu)成,使得圖像采集在只有LED光源照射環(huán)境下進行,既可以清晰地捕捉到質(zhì)量好的目標圖像,又簡化了后續(xù)圖像處理時對復雜背景的處理。此外,為避免瓶外標簽遮擋,應在粘貼瓶外標簽工序前完成數(shù)據(jù)采集。
(4)樣本輸出:瓶裝礦泉水異物數(shù)據(jù)采集完成,控制器控制齒輪轉(zhuǎn)速差,將樣本由轉(zhuǎn)動輪上運輸至傳送帶上,最后經(jīng)過活動擋板輸送至暗箱外。至此,單個瓶裝礦泉水異物數(shù)據(jù)采集完畢。
1.1.3 瓶裝礦泉水異物數(shù)據(jù)集
一共采集挑選了1000張樣本,如表1所示,并使用Labelimg軟件標注,制作了瓶裝礦泉水異物小目標檢測數(shù)據(jù)集,將其命名為 BFBSOD(Bottle Foreign Body Small Object Detection)數(shù)據(jù)集,如圖3所示。從左往右圖a、b、c、d中勾選框中的異物分別為毛發(fā)、橡膠、蚊蟲、塑料,從圖3中可以看出,異物在照明系統(tǒng)下的成像較為清晰。
表1 數(shù)據(jù)集Table 1 The data set
數(shù)據(jù)集的擴增可以增加訓練集樣本,加強網(wǎng)絡學習到更魯棒性的特征,從而使模型擁有更強的泛化能力。當前,常用的數(shù)據(jù)集擴增方式主要包括對圖片的裁剪、平移、改變亮度、加入噪聲、旋轉(zhuǎn)角度以及鏡像等。本文結(jié)合異物目標的顏色特征提出了一種通道重組的方法對數(shù)據(jù)擴增,針對同一種異物,將采集的圖像RGB三通道拆分,再重組,能夠得到RBG、GRB、GBR、BRG和BGR等5種圖像,如圖4所示。
通過采用提出的數(shù)據(jù)集擴增方法,將數(shù)據(jù)集擴增至 6000張。本文采用隨機劃分的原則,將數(shù)據(jù)集以2/3、1/3的原則進行劃分,2/3其中為訓練集,1/3為測試集。
對目標物進行判別性表征是提升識別性能的關(guān)鍵因素。為此,構(gòu)建了一個深度卷積模型提取樣本特征。具體來說,該深度模型主要以Darknet-53[10]為基本框架,包含53個卷積—歸一化—激活塊。此外,考慮到梯度消失的問題,在這個模型中借鑒殘差連接的思想,在塊與塊之間設置了快捷鏈路操作,即將塊的輸入和輸出進行加和操作。首先,將圖像送進Darknet-53網(wǎng)絡以提取特征,在此基礎(chǔ)上,利用聚類算法計算出先驗框的大小。具體步驟如下:
(1)在瓶裝礦泉水數(shù)據(jù)集上隨機選取一個樣本點,作為第一個聚類中心點。
(2)把每個樣本點與它最近的一個聚類中心點之間的距離計算出來,記作D。
(3)選取概率大的樣本點作為聚類點。
(4)重復步驟(2)和(3),直至第K個聚類點選出為止。
如公式(1)和(2)所示:
式中:
boxpred——預測框;
boxtruth——標注框;
area——面積。
通過上述算法對數(shù)據(jù)集進行聚類,得到了3種尺寸 anchor box,大小尺寸分別為(3*4),(3*6),(5*5)。
獲得上述先驗框后,在提取的特征圖上利用先驗框?qū)Ξ愇镞M行類別預測。為了保證特征的判別性,利用交叉熵損失進行約束以賦予網(wǎng)絡識別物體類別的能力,目標函數(shù)如下式(3)所示:
除了分類損失,還有坐標誤差如下式(4)所示:
式中:
B——box的數(shù)量;
Lcoord——坐標的寬高誤差;
x、y、w、h——物體的坐標值。
通過上述兩個約束,能極大程度上保證提取特征的判別性,賦予網(wǎng)絡對樣本具有提取判別性表征的能力。
隨著深度卷積神經(jīng)網(wǎng)絡層數(shù)不斷的加深,特征圖中包含的語義信息不斷提高。但不斷的卷積與池化使得大量的空間信息和細節(jié)信息被丟棄。導致目標定位精度降低甚至小目標無法被感知。尤其對于礦泉水異物而言,其尺寸較小,在圖像中占比少,因此網(wǎng)絡難以提取具有細粒度信息的特征。為緩解該問題,設計了小尺度特征學習機制。
具體來說,在8倍降采樣層一個尺度上建立小目標特征檢測層。同時,特征圖尺寸放大的方法采用尺度轉(zhuǎn)換法,將尺度轉(zhuǎn)換(scale-transfer)模塊可以嵌入到Darknet-53網(wǎng)絡中,scale-transfer沒有做卷積操作,減少了計算量和卷積層的參數(shù)個數(shù)。scale-transfer將特征圖中每個像素的N2個通道排列成一個N*N大小的區(qū)域,這個像素通道形成的正方區(qū)域就是高分辨特征圖的一部分,將低分辨圖像中所有像素排列形成的方塊組合到對應的高分辨率特征圖上,就完成了特征圖放大,整個過程沒有卷積操作,轉(zhuǎn)換速度快。
低分辨特征圖輸入維度為H×W×C×r2,其中H和W是特征圖的長和寬,輸入特征圖的通道數(shù)C×r2,C是輸出特征圖的通道數(shù),r是升序比例,本文設置r=2,輸出的高分辨特征圖尺寸為2H×2W。特征圖轉(zhuǎn)換示意圖如圖5所示。
從圖5可以看出,通過改變通道數(shù)的數(shù)量來改變特征圖的尺寸大小。數(shù)學表達公式(5)如下:
式中:
IHR——大尺寸特征圖;
ILR——小尺寸特征圖。
因此,將提取到的低維度特征與高維度特征互補融合能得到特征性表達能力更豐富的特征[11-13]。當前,很多目標檢測算法通過融合多層特征來提升檢測性能,本文采用concat系列特征融合,直接將兩個特征進行張量拼接,獲得小尺度目標檢測特征,以此建立小目標檢測層。因此小目標檢測模塊的損失函數(shù)如下式(6)所示:
本文提出方法的網(wǎng)絡結(jié)構(gòu)如圖6所示,提出的方法主要包含三個模塊,分別為特征判別性學習模塊,數(shù)據(jù)集增值模塊以及細粒度信息獲取模塊。
1.5.1 實驗參數(shù)設置
實驗所用計算機配置為 Linux操作系統(tǒng),i7 9700KF處理器(3.6 GHz),深度學習框架為Torch1.4,GPU為GTX2070Super,8G顯存。在此次實驗中,本文將批大小設為4,epochs設為180輪,學習速率設置為 0.009,動量設置為 0.9,權(quán)重衰減值設置為0.0005。采用動量優(yōu)化器[14](Adam)對網(wǎng)絡參數(shù)進行更新。
1.5.2 性能指標
本次實驗使用mAP、R和f/s等指標作為評估算法性能。f/s表示每秒檢測圖像的幀率、mAP指所有類別C檢測精度的均值,一個類別的檢測精度用AP(Average Precision)表示、召回率R預測結(jié)果中被正確預測正樣本與樣本的比值。它們的計算公式(7)如下:
由于各地油品性質(zhì)、組分、密度等不同,難以找到一種普適的油品摻混黏度預測模型[3],于是一些學者在大量實驗或半理論的基礎(chǔ)上,對現(xiàn)存的一些模型進行修正,如利用兩種組分原油各占一半的混合原油黏度為基礎(chǔ)進行修正而得到一些新的模型。根據(jù)黏度的函數(shù)形式不同,大體上可分為以下4類模型。
式中:
P——精確率;
TP(True Positive)——真正例;
FP(Flase Positive)——假正例;
FN(Flase Negative)——假負例;
NC——C類劃分精確率(Precision,P)和召回率(Recall,R)最大值的數(shù)量;
P(rc)——在第C類召回率rc時的P值。
2.1.1 已有研究對象對比
國內(nèi)外研究礦泉水異物檢測的團隊非常少,盛子夜等人[15]采用幀間差分法檢測瓶裝礦泉水中懸浮物。該方法先通過差分法檢測到異物,然后對處理后的圖像中異物進行數(shù)量和尺寸大小的分析統(tǒng)計。但是作者沒有表明具體的檢測準確率,因此,一方面從算法的流程進行分析。1)抗干擾能力。差分法對照明的均一性要求較高,相機捕捉的連續(xù)幀圖像光照飽和度要保持一致;2)消除抖動。消除瓶裝礦泉水碰撞帶來的抖動增加了算法的復雜性;3)降低誤檢率。瓶裝礦泉水中的氣泡易被當成異物檢測;4)檢測異物時間。檢測時間主要包括,連續(xù)幀圖像的獲取時間、人工挑選圖像時間、差分后圖像的預處理時間,檢測異物時間消耗較長,對于實際的生產(chǎn)應用存在一定的局限。另一方面從實際測試效果進行對比,由于差分法需要的是連續(xù)幀圖像,準備50組差分圖像進行測試,一組樣本圖像如圖7所示。實驗從檢測的準確率和時間進行比對,結(jié)果如表3所示。
表2 已有方法對比實驗結(jié)果Table 2 Existing methods compare experimental results
從表2中可以看出,本文提出的方法準確率比差分法高出7個百分點,差分法所需時間是本文方法的9.6倍。綜上測試結(jié)果可知,本文提出方法整體性能高于差分法。
2.1.2 相關(guān)方法對比
表3 瓶裝礦泉水異物檢測對比實驗結(jié)果Table 3 Comparative test results of foreign matter detection in bottled mineral water
在這一部分,我們將本文提出的方法與目前一些較為先進的目標檢測方法進行實驗對比,從實驗結(jié)果證明了本文方法的有效性。需要說明的是,由于目前沒有基于深度學習的瓶裝礦泉水異物檢測的相關(guān)工作,因此在這一部分,本文在SSD和YOLOv3模型上進行比較,結(jié)果如表3所示。
從表3可以看出,本文提出的方法平均精度值為83.84%,高于YOLOv3的61.13%和SSD的54.51%;召回率為86.31%,較YOLOv3提高了19個百分點,較SSD提高了29個百分點;本文模型的平均幀率達到50 f/s,小于SSD模型,但是從處理速度上來看,能夠滿足瓶裝礦泉水異物檢測任務要求。
提出的方法主要包含判別性特征學習、數(shù)據(jù)集增值、小尺度目標檢測等模塊。在這一小節(jié)中,進行了一系列實驗用來驗證各模塊的有效性。每一模塊的結(jié)果如表4所示,需要說明的是,為了便于展示,用字母A和B分別表示數(shù)據(jù)集增值模塊和細粒度信息獲取模塊。首先,應該基于判別性特征學習模塊對有標簽原數(shù)據(jù)集進行訓練得到基準線(Baseline),然后再將A和B兩個模塊部署在模型上。
表4 消融實驗結(jié)果Table 4 Ablation test results
數(shù)據(jù)集增值模塊的有效性:為了證明A模塊的有效性,將A模塊與Baseline相互連接,由表4所示,相比于Baseline,加入A模塊后,在瓶裝礦泉水異物檢測任務上,mAP值和召回率R分別提升了18.32%和9.89%,有效的證明了該數(shù)據(jù)集增值的方法能夠增強模型的泛化能力。
細粒度信息獲取模塊的有效性:如表4所示,加入了B模塊以后,提出的方法在異物檢測任務上mAP值和R分別提升了4.39%和9.19%,同時,由于先驗框的減少,將檢測速度提高到了50 f/s??梢?,提出的方法能夠從圖像中提取到更具表征的特征。
為了評估模型的具體檢測性能,本文在測試集中各挑選50張含有橡膠、塑料、蚊蟲、毛發(fā)樣本數(shù)據(jù)分別送入YOLOv3和本文提出的模型進行檢測,模型對200張樣本的檢測結(jié)果如表5所示。本文方法檢測的平均準確率相比于YOLOv3提高了10個百分點,達到了96.22%;對橡膠、塑料、蚊蟲、毛發(fā)四類異物的檢測上準確率均有所增加。可視化效果如圖8所示。
表5 不同方法下的檢測率Table 5 The detection rate under different methods
為了方便,將異物標簽 foreign matter簡寫成matter,圖中的bubble代表的是瓶中產(chǎn)生的氣泡,如圖8所示,matter代表的是檢測到的異物(橡膠、塑料、蚊蟲、毛發(fā))。圖8a、8c是YOLOv3分別對蚊蟲和橡膠檢測的效果圖,從圖 8a中可以看出 YOLOv3對蚊蟲的檢測存在漏檢的情況;對橡膠的檢測整體置信度是比較低的,而且對氣泡的檢測效果也是不理想。反觀本文方法對同一目標的檢測能夠達到預期的效果,能夠有效的檢測出蚊蟲和橡膠。
如圖8a、8b所示,對同一個異物,改進后算法得到的異物置信度為0.66,低于YOLOv3的0.80。為此,對200張測試樣本的異物置信度進行了統(tǒng)計,改進后異物置信度低于YOLOv3的只有7張。經(jīng)實驗分析,置信度反而下降的主要原因如下:YOLOv3能提取到圖8a中右下角的異物,提取到的異物特征單一,對一些特定的異物識別率較高;而本文方法對圖8a中的兩個異物特征都能提取,使得提取到的該類異物特征較為豐富,異物的綜合特征增加,提高了模型對異物的檢測率,但是圖8a中同一種異物表現(xiàn)出的特征差異較大,就會導致模型對該類異物置信度下降??傮w來看,論文方法改進后,與YOLOv3相比,多數(shù)預測框的置信度得到提高,即在整個樣本數(shù)據(jù)集上預測框置信度的期望值得到了提高,但不排除在個別樣本數(shù)據(jù)上出現(xiàn)比YOLOv3低的情況。
針對瓶裝礦泉水異物檢測,本文設計了一個小尺度特征提取模塊用于表征瓶裝礦泉水中異物細粒度信息。具體來說包含三個模塊:判別性特征學習模塊利用深度Darknet-53網(wǎng)絡對數(shù)據(jù)進行表征學習;數(shù)據(jù)增值模塊主要通過通道隨機打亂和重組的方式對 RGB圖像進行處理以增強樣本的多樣性;考慮到細粒度特征能夠進一步對識別性能的提升起積極作用,設計了一個小尺度特征學習機制以提取具有細粒度的判別性信息。最后,實驗結(jié)果表明,瓶裝礦泉水異物檢測的mAP值達到83.84%,召回率為86.31%,檢測速度為50 f/s,測試平均準確率為 96.22%。此外,對已有的瓶裝礦泉水檢測方法進行測試對比,從檢測的準確率和速度上證明了該方法的優(yōu)越性;消融實驗驗證了提出方法中模塊的有效性。因此,本研究為瓶裝礦泉水異物檢測提供了可靠方法和技術(shù)指導。