基于改進(jìn) YOLOV3 的違禁品檢測方案
點(diǎn)擊下方卡片,關(guān)注“新機(jī)器視覺”公眾號
重磅干貨,第一時間送達(dá)
近年來隨著經(jīng)濟(jì)和社會的飛速發(fā)展,人們的生活節(jié)奏明顯加快,地鐵、車站以及機(jī)場等各種交通樞紐,每時每刻都在高速運(yùn)轉(zhuǎn),將乘客安全的送達(dá)他們的目的地?,F(xiàn)如今,這些交通樞紐早已經(jīng)成為了城市中不可分割的一部分,與百姓的日常生活息息相關(guān)。
地鐵作為城市發(fā)展的一項標(biāo)志,也體現(xiàn)了城市現(xiàn)代化的程度,作為市內(nèi)出行的首選方式,地鐵每年的旅客輸送數(shù)量更加龐大。日本擁有著世界上最復(fù)雜的地鐵交通樞紐系統(tǒng),據(jù)統(tǒng)計 2019 年僅日本大東京地區(qū)地鐵輸送旅客數(shù)量高達(dá) 136 億人次。對于如此繁忙的交通運(yùn)輸系統(tǒng),一旦出現(xiàn)安全事故,將對人們的生命和財產(chǎn)造成嚴(yán)重的威脅。
近幾十年來,世界各地的交通安全事故頻發(fā),其中大部分都是由于人為原因所造成;例如 1995 年,日本東京地鐵發(fā)生沙林毒氣事件,直接導(dǎo)致 12 人死亡,5500 人受傷;2003 年,韓國大邱市發(fā)發(fā)生一起地鐵縱火事件,導(dǎo)致 198 人死亡,147 人受傷,并對韓國的國際形象造成了極大地影響;2004 年莫斯科地鐵發(fā)生一起惡性爆炸事件,共造成 40 人死亡,超過 100 人受傷;2014 年中國昆明市火車站發(fā)生了一起針對平民的惡性事件,致使 31 名平民死亡,近 200 人受傷。2016 年土耳其伊斯坦布爾阿塔圖爾克國際機(jī)場 2 號航站樓發(fā)生多爆炸和槍擊事件,此次恐怖襲擊事件直接導(dǎo)致 42 人死亡,239 人受傷,機(jī)場大量基礎(chǔ)設(shè)施受到嚴(yán)重?fù)p毀。
受到這些事故的影響,世界各個國家都加強(qiáng)了對機(jī)場、地鐵、火車站等交通樞紐安全檢查級別,并派出大量警力維持治安。
隨著技術(shù)的不斷發(fā)展,各項新型技術(shù)不斷在安全檢查領(lǐng)域中應(yīng)用?;?CT 成像的 X-Ray 安檢設(shè)備目前已經(jīng)大量部署于各類交通樞紐之中。X-Ray 安檢設(shè)備能夠?qū)β每偷男欣钸M(jìn)行快速掃描,并且根據(jù)行李中不同材質(zhì)的物體重構(gòu)出相應(yīng)的畫面,并且能夠有效的解決物體間相互的遮擋問題。隨著城市的日益擴(kuò)大,交通和物流也都呈現(xiàn)出爆發(fā)式增長的態(tài)勢,X-Ray 安檢儀與安檢員的方式已經(jīng)逐漸無法因?qū)θ找嬖鲩L的客流。
長時間高強(qiáng)度的工作,必然會導(dǎo)致安檢員疲憊,造成一些漏檢或誤檢,從而產(chǎn)生一定的安全隱患。隨著人工智能、深度學(xué)習(xí)以及深度神經(jīng)網(wǎng)絡(luò)的飛速發(fā)展,基于上述方法的計算機(jī)視覺技術(shù)正在多個領(lǐng)域中大量使用,如自動駕駛、無人監(jiān)控、人臉識別等。
因此,將基于人工智能和計算機(jī)視覺技術(shù)的“違禁品檢測技術(shù)”應(yīng)用于 X-Ray 安檢設(shè)備中,使用算法自動化的從 X-Ray 安檢設(shè)備的成像圖片可自動地判斷是否包含違禁品、違禁品的位置和種類信息。然后安檢員根據(jù)算法提供的信息,即可有針對性的對乘客的行李進(jìn)行開箱檢測;由于案件人員事先知道了違禁品的位置和種類,因此可以極大地加安檢的效率。
基于人工智能的違禁品檢測技術(shù),可以 7*24 小時不間斷運(yùn)行;并且可用使用計算機(jī)并行技術(shù),使用一套算法來同時監(jiān)控多個 X-Ray 安檢設(shè)備,既提高了違禁品的檢測效率和精度,也節(jié)約了大量的人力成本。
為了解決上述問題,并結(jié)合 X-Ray 安檢儀自身特點(diǎn),我們提出了一個自動化從 X 光掃描圖像中檢測違禁品的系統(tǒng)。該系統(tǒng)使用深度學(xué)習(xí)模型,從模型設(shè)計、特征提取、自動邊框回歸以及模型部署等多個維度進(jìn)行研究,使用準(zhǔn)確率(Precision)、召回率(Recall)、AP 和 mAP 等多個指標(biāo)分析。
針對 X 光違禁品檢測這一場景,經(jīng)過調(diào)研和探索,發(fā)現(xiàn)實際中存在大量需要解決的問題,現(xiàn)總結(jié)如下:
1) 違禁品尺度變化大:
在所需檢測的違禁品中,目標(biāo)尺度變化較大;如“刀”這一類別中,既包括體積較大的“長刀”,也有體積較小的“水果刀”、“折疊刀”等。為了可以精確的檢測出這種尺度變化極大的目標(biāo),需要設(shè)計的檢測器具有較好的泛化性。
具體如圖 1 所示,其中的“刀”的整體尺度較大,但是“槍”的尺寸相對較小。

圖 1 多尺度目標(biāo)
2) 檢測目標(biāo)長寬比差異大:
基于深度學(xué)習(xí)的目標(biāo)檢測算法按照 Anchor 生成的方式可以分為單階段目標(biāo)檢測算法和兩階段目標(biāo)檢測算法。這兩種類型的算法都需要預(yù)先對檢測目標(biāo)的長寬比進(jìn)行統(tǒng)計,然后根據(jù)不同的比例對檢測框進(jìn)行設(shè)定?;?X 光的違禁品檢測中,目標(biāo)的長寬比變化極大,有近似于 1:1 的“槍”等目標(biāo),也有差異化極大的“刀”等目標(biāo)。
為了使模型可以很好的適用于違禁品檢測這一實際應(yīng)用場景,需要設(shè)定一種自適應(yīng)的 Anchor 來提目標(biāo)檢測的精度。
圖 2 顯示了多種不同長寬比的檢測目標(biāo),“刀”這一類別的長寬比差異較大。

圖 2 長寬比例不同的目標(biāo)檢測物體
3) 目標(biāo)重疊:
物品的形狀在 X 光掃描圖片中會有較嚴(yán)重失真,行李中物品放置的位置隨機(jī),不同的目標(biāo)之間存在嚴(yán)重的遮擋,增加了違禁品檢測和識別的難度。
圖 3 是行李箱中物品相互重疊的示意圖,從中可以看出有多個物品相互重疊。

圖 3 物體重疊
4) 背景復(fù)雜:
X 光對不同材料的穿透性不同,因此不同的材質(zhì)的物品在 X 光掃描圖片中呈現(xiàn)出不同的顏色,但是非違禁品的材料和形狀與違禁品相似時,會對算法造成嚴(yán)重的干擾,從而降低檢測的精度。
5) 速度和精度平衡:
總的來說,深度學(xué)習(xí)模型的參數(shù)量和運(yùn)算量越大,模型的特征提取能力越強(qiáng),算法的檢測精度越高,但是運(yùn)行速度也會變慢。是適用于實際嘗盡中的違禁品檢測算法,需要在保證檢測精度的情況下,盡可能的提升運(yùn)行的速度。
在本章節(jié)中,我們提出了一種基于改進(jìn) YOLO V3 的違禁品檢測算法,該算法以 YOLO V3 通用目標(biāo)檢測算法為基礎(chǔ),從特征提取模型、Bounding Box 生成方式等方面進(jìn)行優(yōu)化。
此外,我們還將 FPN 特征融合模塊、GIoU Loss 引入到訓(xùn)練框架中,進(jìn)一步提升了模型精度。為了提升模型的運(yùn)行速度,我們還引入的模型量化技術(shù)和 TensorRT 部署技術(shù),極大地提升了模型的運(yùn)行速度。
我們將所提出的算法與目前常用的目標(biāo)檢測算法進(jìn)行對比,實驗結(jié)果顯示我們所提出的方法在精度和速度上都遠(yuǎn)超同類算法,在違禁品檢測任務(wù)中取得了目前最好的效果。
為了驗證算法的實際運(yùn)行效果,我們將算法部署到嵌入式設(shè)備中,并在實際環(huán)境下進(jìn)行測試,數(shù)據(jù)顯示我們所提出方法的檢測準(zhǔn)確率為 99.6%,因此具有較強(qiáng)的實用價值。接下來,本文將從多個方面來對 YOLO V3 算法進(jìn)行改進(jìn)和優(yōu)化。
1) 數(shù)據(jù)增廣:
數(shù)據(jù)增廣是深度學(xué)習(xí)中一種常用的來提升模型性能的訓(xùn)練手段,該方式主要是通過對圖像進(jìn)行一些形態(tài)學(xué)上的變換,來增強(qiáng)模型的泛化性,從而獲得更好的訓(xùn)練效果。
常用的圖像增廣方式有:對稱、平移、旋轉(zhuǎn)、尺寸放縮、顏色轉(zhuǎn)換、邊框擾動、亮度調(diào)整以及圖像模糊與混疊等。受到 CutMix 與 MixUp 數(shù)據(jù)增廣方式的啟發(fā),我們將廣泛應(yīng)用于圖像識別的 Mosaic 增廣方法引入到目標(biāo)檢測中。
Mosaic 方式是指,我們在進(jìn)行模型訓(xùn)練時,將多張圖像進(jìn)行拼接,每一張圖片都有其對應(yīng)的框框,拼接之后就獲得一張新的圖片,同時也獲得這張圖片對應(yīng)的框框,然后我們將這樣一張新的圖片傳入到神經(jīng)網(wǎng)絡(luò)當(dāng)中去學(xué)習(xí),相當(dāng)于一下子傳入四張圖片進(jìn)行學(xué)習(xí)了。通過這種方法我們可以無限量的增加訓(xùn)練樣本,并且可以強(qiáng)迫模型去學(xué)習(xí)多尺度的目標(biāo)。
此外,模型中的 BatchNorm 層可以在訓(xùn)練時可以見到多的訓(xùn)練數(shù)據(jù),有助于網(wǎng)絡(luò)的快速收斂。在使用 Mosaic 進(jìn)行數(shù)據(jù)增廣時,我們?nèi)匀豢梢允褂脴?biāo)準(zhǔn)的數(shù)據(jù)增廣算法對合成的圖片進(jìn)行處理,進(jìn)一步增加數(shù)據(jù)的多樣性。使用 Mosaic 增廣后的訓(xùn)樣本如圖 4 所示。

圖 4 Mosaic 增廣后的訓(xùn)練樣本
2) 自適應(yīng) Anchor 增廣算法:
Anchor 是目標(biāo)檢測算法常用的一種提繩模型檢測精度的方法,在 Faster RCNN、SSD 以及 YOLO 系列等多算法中廣泛使用。YOLO V3 所統(tǒng)計出的九種 Anchor 尺度,雖然覆蓋了目標(biāo)檢測領(lǐng)域中的大部分場景,但是在我們關(guān)注的違禁品檢測任務(wù)中并不適用。為了解決這一問題,我們在項目中使用了一種自適應(yīng)的 Anchor 生成算法,與 YOLO V3 中使用固定 Anchor 的方式不同,我們將 Anchor 中的邊緣坐標(biāo)
改變?yōu)榭梢钥梢詫W(xué)習(xí)的參數(shù),模型可以在訓(xùn)練過程中自動的對 Anchor 大小進(jìn)行調(diào)整,從而獲得更加恰當(dāng)?shù)?Anchor,提升模型訓(xùn)倆效率和檢測精度。
為了解決這一問題,我們在項目中使用了一種自適應(yīng)的 Anchor 生成算法,與 YOLO V3 中使用固定 Anchor 的方式不同,我們將 Anchor 中
的邊緣坐標(biāo)改變?yōu)榭梢钥梢詫W(xué)習(xí)的參數(shù),模型可以在訓(xùn)練過程中自動的對 Anchor 大小進(jìn)行調(diào)整,從而獲得更加恰當(dāng)?shù)?Anchor,提升模型訓(xùn)倆效率和檢測精度。
3) GIoU-Loss:
目標(biāo)檢測算法中的 Loss 函數(shù)一直是研究人員的討論重點(diǎn),YOLO V3 在 YOLO V2 的基礎(chǔ)上,將原來分類任務(wù)的 Softmax-Loss 轉(zhuǎn)換為 BEC-Loss,增強(qiáng)了模型在識別中的性能。
但是在 Bounding Box 回歸方面一直使用 Smooth L1-Loss,該 Loss 函數(shù)對于目標(biāo)物體的尺度不敏感,但是在目標(biāo)檢測任務(wù)中物體的尺度多變,因此 Smooth L1-Loss 并不是一種非常恰當(dāng)?shù)暮瘮?shù)。本文收到圖像分割領(lǐng)域中對目標(biāo)尺度特征的處理方法,引入了 GIoU Loss 作為邊框回歸的損失函數(shù)。具體如公式 1 所示。

經(jīng)過上述從數(shù)據(jù)增廣方法、損失函數(shù)等方面的優(yōu)化,我們開始用在真實數(shù)據(jù)集上進(jìn)行實驗分析,并從速度、精度、模型運(yùn)算量和參數(shù)量等多個方方面進(jìn)行對比。
1) 模型精度對比
在本節(jié)中,我們將所提出改進(jìn) YOLO V3 算法與原始的 YOLO V3、SSD、Faster RCNN 等常用的目標(biāo)檢測算法在 X-Ray 數(shù)據(jù)集上進(jìn)行訓(xùn)練和測試,具體結(jié)果如表 1 所示。
表 1 實驗對比結(jié)果

從表中我們可以看出,我們所提出的方法結(jié)果的無論是在精度還是速度上都遠(yuǎn)優(yōu)于現(xiàn)有的方法。其中 tiny、mid、large 分別表示使用不同大小的特征提取網(wǎng)絡(luò),其中模型體積越大,實際效果越好。從檢測結(jié)果來看,我們的 mid 模型在各項指標(biāo)上均優(yōu)于 Faster RCNN 等方法,并且在速度上是 Faster RCNN 的 4.5 倍,tiny 模型在速度上更具優(yōu)勢,是 Faster RCNN 的 7.2 倍。我們提出的 large 模型,與原始的 SSD 算法相比,在 mAP 這一指標(biāo)上有 20.4% 的提升,模型的體積更小、運(yùn)行速度更快。
2) 細(xì)分類結(jié)果
我們還分別測試了不同模型在具體細(xì)分類上的表現(xiàn),表 2 是 mid 模型的結(jié)果。
表 2 mid 模型細(xì)分類測試結(jié)果

3) 結(jié)果展示
我們在圖 5 中展示了模型的部分檢測結(jié)果。從結(jié)果的展示來看,我們發(fā)現(xiàn)所提出的方法可以檢測到大部分違禁物品。

圖 5 實驗結(jié)果展示
為了將人工智能算法應(yīng)用到違禁品檢測領(lǐng)域中,我們提出了一種基于 YOLO V3 的改進(jìn)的違禁品檢測算法,我們通過改進(jìn)和優(yōu)化數(shù)據(jù)增廣方式、檢測框架的 Loss 函數(shù)等方法,較好的提升了模型的檢測精度和運(yùn)行效率。
沙宇洋,中科院計算所工程師,目前主要從事人臉識別以及無人駕駛等相關(guān)方向的研究和實際產(chǎn)品開發(fā);
陳揚(yáng),中科蘇州智能計算技術(shù)研究院,目前從事缺陷檢測以及三維重建等相關(guān)方向的研究和實際產(chǎn)品開發(fā)。
本文僅做學(xué)術(shù)分享,如有侵權(quán),請聯(lián)系刪文。
