王 鑫,張 濤,楊亞寧
(大連民族大學(xué) a.機電工程學(xué)院;b.信息與通信工程學(xué)院,遼寧 大連 116605 )
食品包裝是食用商品的重要組成部分,是食品加工工藝過程的主要工程之一。在食品生產(chǎn)行業(yè),食品包裝主要分為內(nèi)包裝、二級包裝、三級包裝、外包裝等[1]。隨著人們生活水平的提高,消費者和企業(yè)對于食品外包裝的要求也越來越高,不僅要滿足自身的性能,達到保護內(nèi)部食品的作用,還要求產(chǎn)品外觀盡量沒有缺陷,吸引消費者。但在實際生產(chǎn)過程中,食品包裝機會因原輔材料、機械振動等非正常因素導(dǎo)致包裝材料褶皺、破損等質(zhì)量缺陷[2]。目前,傳統(tǒng)的缺陷檢測主要依靠人工,人工檢測存在著檢測效率低、誤檢率和漏檢率高、檢測速度慢、生產(chǎn)成本高等缺點和局限性[3-4]。
近年來,隨著研究的深入,異常檢測作為機器學(xué)習(xí)的一個研究方向得到迅速發(fā)展[5]。異常檢測就是檢測出數(shù)據(jù)中的離群點,不一致、不符合行為的異常數(shù)據(jù),異常檢測在網(wǎng)絡(luò)入侵檢測、故障診斷、欺詐檢測等領(lǐng)域都得到應(yīng)用。伴隨著異常檢測技術(shù)的不斷完善,異常檢測涉及領(lǐng)域更加廣泛,在疾病檢測、身份識別、產(chǎn)品表面質(zhì)量檢測等方面都得到應(yīng)用,而且具有不錯的應(yīng)用效果?;诋惓z測的表面缺陷檢測方法相較于人工檢測方法,產(chǎn)品的檢測效率顯著提高,勞動成本和生產(chǎn)成本降低,漏檢率降低,生產(chǎn)效率提高[4]。
異常檢測算法的基本思想是:用正常數(shù)據(jù)訓(xùn)練模型得到閾值,然后再去判斷新的數(shù)據(jù)是否異常[6]。常見的幾種異常檢測算法有:基于概率統(tǒng)計[7]、基于聚類[8]、基于最近鄰[9]等。但對于幾種常見的異常檢測算法都存在相應(yīng)的弊端,如基于概率統(tǒng)計對分布模型的依賴程度高,模型選擇不當(dāng),則會造成檢測效果不明顯,準(zhǔn)確率低;基于最近鄰不適用于高維數(shù)據(jù),需要人工調(diào)節(jié)參數(shù),計算量大,不適用于在線使用;基于聚類檢測效果對聚類效果的依賴程度大,開銷成本大。本文所提基于HOBS異常檢測算法屬于基于概率統(tǒng)計異常檢測算法中的一種,HOBS異常檢測算法屬于無監(jiān)督模式檢測算法,該方法具有數(shù)據(jù)集不需要標(biāo)注;硬件環(huán)境要求較低,在普通CPU下就可訓(xùn)練;檢測速度快,準(zhǔn)確率高;無需大量樣本,少量正常樣本即可進行訓(xùn)練等優(yōu)點。
HOBS異常檢測算法的原理簡單,該算法通過對每一個數(shù)據(jù)進行評分,評分越高則越可能表現(xiàn)為異常。HOBS算法首先繪制數(shù)據(jù)直方圖,常見的作圖方式有兩種:
(1)靜態(tài)跨度的柱狀圖。將值域分成K個柱并且每個柱的寬度相等,進入每一個柱的值的頻數(shù)作為柱的高度;
(2)動態(tài)寬度柱狀圖。柱個數(shù)相同,但柱寬度是變化的。該方法先將值域排序,然后將連續(xù)的M/N個值裝進柱里,其中M代表樣例總數(shù),N代表所分柱的個數(shù),是一個超參數(shù);柱的寬度由進入柱第一個值和最后一個值決定。
每一維度的數(shù)據(jù)都會有一個柱狀圖,而柱狀圖的高度則可以代表該維度數(shù)據(jù)的密度,通過使用歸一化操作保證每個柱狀圖的高度是1,則可以保證每個特征的權(quán)重相同。每個特征的HOBS值計算如下。
假設(shè)數(shù)據(jù)x={x1,x2,x3,…,xn},且樣本中每個維度相對獨立,則樣本x的概率密度計算公式為
P(x)=P(x1)P(x2)P(x3)…P(xn) ;
(1)
兩邊取對數(shù),
log[P(x)]=log[P(x1)P(x2)P(x3)…P(xn)]
(2)
概率密度越大,異常評分越小,則兩邊乘“-1”:
(3)
然后將其應(yīng)用到評分模型:
(4)
則樣本x中的HOBS(x)的計算結(jié)果:
(5)
為防止某柱狀區(qū)間內(nèi)的頻數(shù)過小,可以通過增加容忍度ε,其異常得分可表示為:
(6)
HOBS異常檢測算法工作流程包括:數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、模型評估、模型推理。數(shù)據(jù)準(zhǔn)備階段讀取訓(xùn)練樣本,并按照一定比例將樣本分割成訓(xùn)練集、驗證集、測試集,設(shè)置模型的初始化參數(shù);模型訓(xùn)練通過設(shè)置訓(xùn)練參數(shù)進行模型的訓(xùn)練,并將訓(xùn)練模型進行保存;模型評估利用測試集的數(shù)據(jù)對訓(xùn)練后的模型進行評估,根據(jù)評估結(jié)果得到異常分數(shù)直方圖,然后根據(jù)異常分數(shù)直方圖設(shè)置閾值分類標(biāo)準(zhǔn),最后進行評估結(jié)果顯示;模型推理階段主要是將數(shù)據(jù)集應(yīng)用到模型,計算得到異常分數(shù),將其與設(shè)置的閾值分類標(biāo)準(zhǔn)進行比較,得到最終結(jié)果并顯示。具體過程及每個過程涉及到的重要算子如圖1。
以實驗室采集的桶裝方便面圖像作為數(shù)據(jù)集,經(jīng)濾波處理消除圖像采集過程中的干擾,去除噪聲,使圖像更加清晰,質(zhì)量更高。濾波處理后,利用圖像增強技術(shù)中的直方圖均衡化增加對比度,圖像銳化改善邊緣模糊情況,使圖像的邊緣及輪廓信息更加明顯,便于識別。預(yù)處理后,數(shù)據(jù)集中包含正常圖片117張,異常圖片61張,正常和異常圖片樣例如圖2。
環(huán)境配置見表1。實驗程序的編寫主要由HALCON軟件完成。
表1 環(huán)境配置
數(shù)據(jù)集訓(xùn)練時,需要選擇預(yù)訓(xùn)練網(wǎng)絡(luò)模型,然后對預(yù)訓(xùn)練網(wǎng)絡(luò)模型的參數(shù)進行設(shè)置,異常檢測預(yù)訓(xùn)練網(wǎng)絡(luò)模型參數(shù)設(shè)置見表2。
表2 模型初始化參數(shù)設(shè)置
模型訓(xùn)練過程中,還需要對模型的超參數(shù)進行設(shè)置,異常檢測訓(xùn)練模型超參數(shù)設(shè)置見表3。
表3 訓(xùn)練超參數(shù)設(shè)置
通過對訓(xùn)練集進行訓(xùn)練,最終計算得到異常分數(shù),異常分數(shù)為0.16,0.12,0.14。使用測試集對訓(xùn)練后的模型進行評估,得到異常分數(shù)直方圖如圖3,其中從左往右第一條垂直虛線代表“nok”測試樣本獲得的最小異常分數(shù),使用此閾值將“ok”和“nok”樣本分開,可確保測試集中沒有錯誤分類為“ok”的“nok”樣本;第二條垂直虛線代表“正常”測試樣本獲得的最大異常分數(shù)。使用此閾值將“ok”和“nok”樣本分開,可確保測試集中沒有被錯誤分類為“nok”的“ok”樣本。黑色垂直實線代表折中的中間閾值。異常分數(shù)線的左側(cè)為正常,右側(cè)則視為異常。
得到異常分數(shù)后,對整體數(shù)據(jù)集進行推斷,抽取10張圖像,分別采用0.16,0.14,0.12作為分類標(biāo)準(zhǔn)判斷圖像是否異常。不同分類標(biāo)準(zhǔn)下檢測測試結(jié)果見表4。
表4 不同分類標(biāo)準(zhǔn)下檢測測試結(jié)果
從各個分類標(biāo)準(zhǔn)的檢測結(jié)果可以看出,當(dāng)選擇異常分數(shù)0.16或0.12作為標(biāo)準(zhǔn)時,往往經(jīng)過推斷圖像計算出的異常分數(shù)與選擇的標(biāo)準(zhǔn)異常分類很接近,這就使得推斷發(fā)生錯誤,造成誤判。將異常分數(shù)為0.14作為分類標(biāo)準(zhǔn)時,得到的檢測結(jié)果相對準(zhǔn)確性較高,因此綜合考慮,會選擇異常分數(shù)直方圖中黑色線代表的異常分數(shù)作為標(biāo)準(zhǔn),能得較好效果。對數(shù)據(jù)集進行推斷結(jié)果如圖4。
本文基于halcon圖像處理軟件,研究基于HOBS異常檢測的食品外包裝缺陷檢測方法,首先對基于HOBS異常檢測算法的原理及工作流程進行描述,然后對數(shù)據(jù)集進行構(gòu)建與實驗環(huán)境搭建,隨后對實驗中的參數(shù)進行設(shè)置,最后通過實驗得到實驗結(jié)果,并對實驗結(jié)果加以分析。實驗結(jié)果表明基于HOBS異常檢測的食品外包裝缺陷檢測方法可以解決傳統(tǒng)缺陷檢測檢測效率低、準(zhǔn)確率低、誤檢率高等問題,能滿足工業(yè)生產(chǎn)實時的檢測要求,具有較強的實用性。