成浪, 敬超,2,3, 陳文鵬,2*
(1.桂林理工大學信息科學與工程學院, 桂林 541004; 2.桂林理工大學嵌入式技術與智能系統重點實驗室, 桂林 541004; 3.桂林電子科技大學可信軟件重點實驗室, 桂林 541004)
隨著城市公共交通中人群密度的增加,安檢在保障公共安全方面發揮著越來越重要的作用。目前的安檢措施主要是通過X射線圖像檢測違禁品,但存在以下問題:①重疊遮擋:物品因重疊堆放導致互相遮擋;②背景干擾:不同材質的物品通過X射線后會產生不同顏色的圖像,多種顏色疊加形成復雜背景[1];③安全隱患:目前違禁品檢測工作都由安檢員人工完成,經過長時間和高強度的工作后,其可能因疲勞或注意力不集中發生漏檢等問題,從而產生公共安全隱患。因此,研究一種X射線圖像違禁品檢測算法提高復雜背景下違禁品檢測的準確率和速度對保障公共安全具有重要意義。
基于卷積神經網絡(convolutional neural network,CNN)的目標檢測算法在復雜X射線圖像違禁品檢測中獲得了大量研究成果[2-3],目前針對違禁品的檢測主要有改進網絡結構和設計通用特征提取處理模塊兩方法。隨著YOLO系列算法的發展[4-7],改進的YOLO算法用于違禁品檢測:基于改進的YOLOv3網絡[8]構建的深度卷積神經網絡探碼器,對密集分布、小尺度目標有較好的效果,但響應時間比YOLOv3稍長;為了提高檢測準確率,董乙杉等[9]提出了一種改進YOLOv5的X射線違禁品檢測網絡,該方法融合注意力機制、數據增強策略與加權邊框融合算法,但增加了檢測時間;吳海濱等[10]在YOLOv4算法的基礎上增加改進后空洞卷積網絡結構,聚合多尺度上下文信息并增大了感受野,使用K-means 聚類方法生成更適合違禁品檢測的初始候選框,但檢測精度并不理想;楊子固等[11]針對 Faster R-CNN 模型對 X 射線違禁品檢測準確率低、誤檢率高的問題,提出了一種前置預分類頭部的X 射線安檢圖像檢測網絡,通過向原模型中增加預分類模塊和興趣區域對齊模塊,從而改善了整個模型的識別性能。
通過將通用特征提取處理模塊嵌入到原有網絡以提升原有網絡的目標檢測性能:Miao等[12]針對重疊圖像類別不平衡的問題提出了一種名為類平衡分層細化(class balance hierarchical refinement,CHR)的模塊,以最大限度地減少負樣本帶來的噪聲,具有更好的區分目標的能力;Tao等[13]提出了一種過度采樣去遮擋注意網絡(De-occlusion attention module, DOA-M),利用違禁物品的不同外觀信息進行過度采樣訓練,提高了網絡的檢測性能;Wang等[14]設計了一種選擇性密集注意網絡(SDANet)用于學習區分特征和多尺度特征以網絡提高性能。這些方法設計的CNN模型,嚴重依賴人的經驗知識,需要高額的時間和人力成本(如調整學習率大小、卷積層的卷積核大小、卷積神經網絡中的網絡層數)。
神經網絡架構搜索(neural architecture search,NAS)[15]針對目標檢測任務的特點以自動化的方式搜索設計高性能的CNN架構。在文獻[16]中對NAS方法進行了詳細的分析、比較和總結:NAS方法包括搜索空間、搜索策略和性能評估。搜索空間定義了在搜索過程中可能找到的CNN結構,決定了搜索結果的上限;搜索策略定義了如何準確快速地發現最佳的神經網絡結構的算法;性能評估定義了如何評估候選神經網絡的性能從而指導搜索策略發現最優CNN架構的算法。
目前基于NAS的圖像分類CNN[17-19]的性能已經超過人工設計的CNN的性能。受到ResNet[20]中殘差結構的啟發,NAS方法通過搜索多分支結構,增加了網絡結構的多樣性和不同尺度特征的融合,但搜索過程非常耗時[15]。為了提高搜索效率,PNAS[21]提出了一種漸進式的NAS方法,通過不斷增加網絡的復雜度(深度)來探索整個搜索空間,同時學習一個代理網絡來指導搜索策略在搜索空間中的搜索,減少了計算開銷;DenseNAS[22]通過設計密集連接的搜索空間來對卷積層的寬度和空間分辨率進行搜索,使網絡結構搜索更加靈活。Hieu等[23]提出了權重共享策略,大大減少了網絡結構搜索的時間。為了簡化搜索過程和提高搜索速度,Chen等[24]提出了一種基于批量歸一化指標(batch normalization,BN)的性能評估方法:通過凍結神經網絡中的卷積層參數,只訓練BN層參數,然后統計分析每個BN層中的縮放參數γ的大小可以反映出對應通道輸出幅度大小,從而判斷該BN層所在分支的重要性,該方法為基于NAS的目標檢測算法提供了加速搜索過程的基礎。
最近的一些工作也將NAS方法應用到目標檢測任務,如Chen等[25]使用NAS方法自動搜索設計更好的目標檢測Backbone組件,但搜索代價太大;Golnaz等[26]的目標是搜索一個更好的特征金字塔網絡(feature pyramid networks,FPN)作為Neck組件;Wang等[27]也搜索特征金字塔網絡(FPN),但它增加了對Head組件的搜索,但搜索到的網絡結構復雜,難以理解和復用;Guo等[28]提出了一個分層的三位一體的搜索框架,以端到端的方式同時搜索目標檢測網絡的所有組件(即Backbone、Neck、Head),由于其搜索空間很大,導致在子搜索空間初期篩選過程中,存在有效的分支被篩選掉的情況。
為了提高卷積神經網絡設計的自動化程度并進一步提高復雜背景下違禁品檢測的準確率和速度,現提出一種基于逐層漸進式神經網絡架構搜索(layer-by-layer progressive neural network architecture search,LLP-NAS)的算法。提出一種逐層漸進式搜索策略(layer-by-layer progressive,LLP),該策略能夠組合搜索空間中的分支構建特征提取能力不同的側分支結構(side branching structure,SBS)。提出一種針對X射線圖像違禁品檢測的NAS算法,該算法能夠基于逐層漸進式搜索策略(LLP)和BN指標,自適應地在違禁品數據集中搜索構建最佳Backbone組件。
本文算法主要包含4個部分:①搜索空間定義;②基于逐層漸進式搜索策略構建最佳Backbone組件;③基于BN指標評估候選網絡的性能;④新目標檢測網絡訓練和測試(圖1)。首先,基于現有目標檢測算法,用一個初始CNN替換其原Backbone組件;然后,使用逐層漸進式搜索策略搜索側分支結構,基于BN指標評估候選網絡的性能,為每一個layer篩選最佳側分支結構,并自動構建最佳Backbone組件。最后,將構建的新目標檢測網絡進行X射線圖像違禁品檢測的訓練和測試。

Stage0~Stage4為完成搜索的網絡結構;input為輸入端;Conv為卷積層;BN為批量歸一化層;ReLU為激活函數;OP為搜索分支
物體多的尺度特征和深層重要特征的提取,對復雜背景下的違禁品檢測有較大影響。表1列出了基于逐層漸進式搜索策略的搜索空間:Conv1×1-BN分支增加了非線性特性,卷積層之后經過激勵層(rectified linear unit,ReLU),在前一層的學習表示上添加了非線性激勵(non-linear activation),提升了網絡的表達能力;同理,OP-2、OP-3、OP-4中的Conv1×1-BN也是為了增加對應操作的非線性特性;Conv3×3-BN屬于普通大小的卷積操作,更關注局部特征信息;Conv3×3-BN-AvgPool-BN在對圖像進行降維的同時,保留了圖像的整體特征信息,更有利信息傳遞到下一個模塊進行特征提取;Conv3×3-BN-MaxPool-BN選擇分類辨識度更好的特征,在網絡早期針對空間特征進行下采樣, 提供了非線性特性;Conv1×3-BN和Conv3×1-BN稱為非對稱卷積,由Conv3×3-BN分解得到,以減少網絡的參數量。Identity分支將淺層特征信息通過直連的方式傳遞到后面的層,保留了物體特征的原始信息。

表1 Backbone組件的搜索空間Table 1 Search space for Backone components
LLP-NAS算法參考了ResNet網絡并復用了其中的一些概念和結構,包括Stage、layer、Identity[20]。如圖2所示,為LLP-NAS算法中使用的部分結構示意圖說明:在初始狀態下的Backbone組件中,layer表示Conv3×3卷積-BN層-ReLU激活函數這樣的復合結構;總共包含5個Stage,每個初始Stage僅由一個layer構成,隨著搜索的進行,通過不斷堆疊layer來實現逐層漸進式搜索;完成搜索的Stage包括一個或多個layer和對應的最佳側分支結構。

圖2 LLP-NAS算法中的Stage、layer、Identity結構Fig.2 Stage, layer and identity structure in LLP-NAS algorithm
使用基于BN指標的性能評估策略搜索最佳Backbone組件:凍結卷積神經網絡中卷積層的參數,只訓練BN層而不是整個網絡,在反向傳播過程中只有BN層參數被更新。當評估第k層layer的第n個分支的性能時,其BN指標Sk,n計算公式為

(1)
假設待搜索的layer數為L層,則該Backbone組件總的BN指標SBb的計算公式為

(2)
Stage0~Stage4為完成搜索的網絡結構;input為輸入端;Conv為卷積層;BN為批量歸一化層;ReLU為激活函數;OP為搜索分支。
大多數商圈只注重交易數據而忽視購買群體的過程數據,而這部分數據正是挖掘商機的入口。圖1為商圈客流分析功能示意,其中客流分析項是對商圈日常的經營數據和客流數據進行匯總得到的,這些數據的處理和分析對于商圈運營者而言可進行更為細致的分析。客流數據分析系統需結合交易數據和過程數據獲取有價值的數據。研究結果證明,只有0.5%~3.0%的人在網上點擊廣告之后會真正購買相應的產品,而消費者走進實體商店購買的概率則大很多。對于商圈管理者來說,該部分數據的價值分析示意見圖2。
基于逐層漸進式神經架構搜索算法搜索新Backbone組件的過程可以表述為式(3),其中Bb*為最佳Backbone組件結構,FLOPs(Bb)為Backbone組件網絡結構的復雜度。
Bb*=argmaxSBb,s.t.FLOPs(Bb) (3) 首先,初始CNN包含5個初始Stage[圖2(b)],從上到下依次Stage0>Stage1>Stage2>Stage3>Stage4,每個Stage只包含一個初始layer[圖2(a)]。該算法以FCOS[30](Backbone組件為ResNet50)網絡為基礎,用一個初始CNN[圖2(b)]替換其Backbone組件,并保持其他組件(Neck、Head)不變。要搜索的結構類似ResNet的殘差結構,稱之為側分支結構,但不像ResNet的殘差結構跨越2個或3個layer,側分支結構只跨越一個layer且包含一個或多個操作。搜索過程由兩個參數num_Stage和top_k控制:如num_Stage=[1,2,4,14,1],對應每一個Stage的目標layer層數;top_k規定了最佳側分支結構包含的最大分支數。搜索流程如圖3所示,搜索算法為算法1。 Stage0~Stage4為完成搜索的網絡結構;input為輸入端;Conv為卷積層;BN為批量歸一化層;ReLU為激活函數;OP為搜索分支;Frozen Conv為凍結的卷積層;Frozen BN為凍結的批量歸一化層 如圖4所示,在Backbone組件搜索完成后,新目標檢測網絡就自動構建完成,然后解除其所有被凍結的參數。新目標檢測網絡的訓練和測試是交替進行的,當在訓練集上的loss值不再下降時就表明網絡已經訓練完成,統計分析網絡在測試集上的結果用于后續的網絡性能評估和對比。 圖4 新目標檢測模型訓練和測試Fig.4 Training and testing of new target detection model 實驗內容包括新Backbone組件搜索和新目標檢測網絡訓練、測試3個階段。在新Backbone組件搜索階段,通過設置不同參數組合num_Stage和top_k對Backbone組件進行搜索,對比構建的新目標檢測網絡的性能,以找到最適合該目標檢測任務的Backbone組件。在訓練、測試階段,分別在訓練集和測試集對新目標檢測網絡進行訓練和測試,并分別與手工設計的CNN、基于NAS的方法、經典的目標檢測網絡進行了對比分析。 本次實驗基于MMDetection[31]目標檢測開源平臺實現。軟件環境為操作系統:Linux Mint20.3,Python3.10,PyTorch1.11.0,CUDA11.5.2,MMDetection 2.23.0。硬件環境為 CPU:i5-10600kf,RAM:DDR4 32 GB,GPU:RTX 3090(24 GB)。 HiXray違禁品數據集[32]包含無芯充電寶、有芯充電寶、移動手機、平板電腦、筆記本電腦、化妝品、水、打火機8類常見違禁物品,共45 364張X射線安檢圖像,分辨率為從2 000×1 040像素到432×1 040像素不等。訓練集36 295張,測試集9 069張。圖5展示了HiXray數據集中8類常見違禁品的X光圖像。 圖5 8類常見違禁品的X射線圖像[32]Fig.5 X-ray images of eight types of common contraband[32] OPIXray違禁品數據集[33]包含折疊刀、直刀、剪刀、美工刀、多功能刀等5類刀具,共8 885張X射線安檢圖像,分辨率為1 225像素×954像素。訓練集7 109張,測試集1 776張。 PIDray違禁品數據集[14]包含槍、刀、扳手、鉗子、剪刀、錘子、手銬、警棍、噴霧器、充電寶、打火機和子彈12類違禁物品,共47 677張X射線圖像,分辨率為從380像素×448像素到600像素×448像素不等。訓練集29 457張,測試集18 220張。 實驗評價指標為計算量FLOPs(衡量模型的復雜度),參數量Params(網絡模型中的參數總量),兩者均以圖像縮放到800像素×1 200像素作為輸入計算得出;類別識別平均精度均值mAP@0.5(mean Average Precision,IoU閾值為0.5);檢測時間為檢測處理一張圖像的平均時間,值越小代表網絡檢測速度越快,單位為ms。 在Backbone組件搜索階段,由于實驗設備的限制,輸入圖像大小為800像素×1 200像素,優化器使用Adam,學習率為1×10-4,權重衰減為5×10-4,batch size大小為8,每個layer搜索最多10 epochs時長(若BN層參數已經穩定,可提前結束該layer搜索以節約時間),該階段使用訓練集進行搜索。在新目標檢測網絡訓練階段,優化器使用SGD,學習率為1×10-3,動量為0.9,權重衰減為5×10-4,采用余弦退火算法(cosine annealing)調整學習率,batch size大小為8,訓練30個epochs時長。在新目標檢測網絡測試階段使用測試集對完成訓練的網絡進行測試,并統計分析測試結果。 圖6所示為本文算法分別在HiXray、OPIXray、PIDray數據集上以不同num_Stage、top_k參數組合搜索到的最佳Backbone組件結構圖。其網絡整體結構類似ResNet網絡,但每個layer主干都由相同的Conv3×3-BN-ReLU復合結構和該layer的最佳側分支結構構成。為了提取到更豐富和更深層的物體特征,在Stage3中堆疊了更多的layer結構,每個layer的最佳側分支結構由top_k個搜索空間中的分支構成。因此,Backbone組件搜索完成后,新目標檢測網絡就自動構建完成,將在HiXray、OPIXray、PIDray 3個違禁品數據集上完成訓練和測試。 Stage0~Stage4為完成搜索的網絡結構;input為輸入端;Conv為卷積層;BN為批量歸一化層;ReLU為激活函數;OP為搜索分支 圖7展示了在HiXray數據集上搜索最佳Backbone組件(LLPNet28_3)過程中Stage0的第一個layer中9個分支末端的BN指標變化情況。選擇BN指標最大的top_k個分支(為OP-2、OP-6、OP-7三個分支)作為該層layer的最佳側分支結構。 圖7 Stage0中第一個layer的側分支BN指標變化情況Fig.7 Change of BN index of side branch of the first layer 與ResNet50[20]、MobileNetV2[34]、DenseNet[35]等手工設計的CNN進行對比。以FCOS目標檢測網絡為基礎網絡(其Backbone組件為ResNet50,Neck組件為FPN)。使用MobileNetV2和DenseNet兩個手工設計的CNN替換其Backbone組件,構成兩個對比網絡。如表2所示,LLP-NAS以更高的檢測精度mAP和更短的檢測時間超過了基準網絡。與基準網絡相比,在檢測準確率相當的情況下,以MobileNetV2作為Backbone組件的參數量和計算量都更少,但違禁品檢測準確率仍略低于LLP-NAS。 表2 不同方法在HiXray數據集上進行違禁品檢測準確率和性能比較Table 2 Comparison of accuracy and performance of contraband detection by different methods on HiXRay dataset DenseNet和LLPNet28_3都使用跨越連接來向后面的卷積層傳遞特征信息,但DenseNet只通過簡單的直連方式傳遞,而LLPNet28_3通過搜索的方式選擇側分支進行特征的提取與融合,特征提取更精準,違禁品檢測準確率更高。且LLP-NAS的檢測時間均小于兩個對比網絡。 與基于NAS的方法進行對比。如表2所示,雖然基于NAS方法在ImageNet數據集上搜索到的FBNetV3-C[36]網絡在分類任務中表現出色,但在違禁品檢測任務上的檢測效果并不理想。DetNAS也對Backbone組件進行搜索,搜索到的DetNASNet在COCO目標檢測任務中表現優秀,但LLP-NAS以較少的參數和更多的FLOPs在違禁品檢測準確率上超過了DetNAS。NAS-FPN、NAS-FCOS、Auto-FPN三者都直接使用ResNet50作為Backbone組件,只對Neck組件或Head組件進行搜索,但與LLP-NAS算法相比,違禁品檢測準確率都有所不足,且LLP-NAS的檢測處理一幅圖像時間都低于上述的對比網絡。 為了進一步檢驗所提算法在復雜場景下的違禁品檢測能力,選取 OPIXray 和 PIDray 等高度重疊遮擋的違禁品數據集,與目前經典的目標檢測網絡進行違禁品檢測性能比較。如表3所示,LLP-NAS分別取得了87.2%和70.4%的mAP@0.5,超過了大多數經典的目標檢測網絡。FCOS由全卷積網絡組成,采用類似于語義分割的逐像素預測方式目標檢測任務,但違禁品檢測性能仍有不足。Deformable直接使用不同尺度的特征圖進行訓練,但它的訓練周期長,相比Mask R-CNN慢10~20倍,且違禁品檢測性能低于LLP-NAS。RetinaNet引入新的Focal Loss損失函數,解決了前景背景種類不均衡問題,但它采用ResNet101網絡作為Backbone組件,網絡參數量和計算量過高,導致違禁品檢測性能總體偏低。與YOLOv3、YOLOv4等經典目標檢測網絡相比,LLP-NAS在違禁品檢測準確率上均有提升。SSD通過提取不同尺度的物體特征圖直接進行目標檢測,它通過設置不同尺度和長寬比的先驗框以用于匹配不同尺度大小的物體檢測,但違禁品的檢測準確率仍低于LLP-NAS算法。由此可見,本文算法能夠有效提高違禁品檢測準確率和速度。 表3 不同方法在數據集OPIXray和PIDray上進行違禁品檢測準確率比較Table 3 Comparison of the accuracy of contraband detection by different methods on data sets OPIXray and PIDray 圖8展示了 LLP-NAS與其他幾種方法在HiXray違禁品數據集上的檢測結果對比。第1行為原始圖像,第2行為圖像標簽,隨后幾行為其他幾種方法的檢測結果對比。FCOS(ResNet50)和FCOS(DenseNet)的檢測效果與標簽有較大差距;DetNAS對特征明顯的物體檢測較為準確,但對于包含復雜背景的物體的檢測效果仍有欠缺;NAS-FPN和NAS-FCOS的檢測結果相對較為準確,但在一些圖像的目標邊界檢測上仍然存在一定的誤差,而LLP-NAS很好地糾正了這樣的誤差,在幾種方法中取得了更好的違禁品檢測效果。 圖8 幾種方法在HiXray違禁品數據集上的檢測結果示例Fig.8 Examples of detection results of several methods on the HiXRay contraband data set 為了進一步探究不同參數組合num_Stage和top_k對LLP-NAS算法最終搜索結果的影響,分別對比由不同參數num_Stage和top_k組合構成的新目標檢測網絡的檢測準確率,在HiXray數據集上進行了消融實驗。結果如表4所示,以不搜索最佳側分支結構的LLPNet22_0和LLPNet28_0網絡作為Backbone組件,與搜索了最佳側分支結構的LLPNet22_2和LLPNet28_2網絡進行對比,違禁品檢測準確率低33.1%和39.7%。可見,最佳側分支結構相對于僅有主干的網絡的性能提升明顯。LLPNet22_3 相較于LLPNet22_2多搜索一個側分支,違禁品檢測準確率提升了6.6%,可見,更多的側分支能提取更豐富的物體特征,從而提升網絡性能。雖然更大的網絡帶來了更好的準確率,但同時也帶了更多計算量和網絡參數量,通過在搜索過程中限制FLOPs和Params的大小,最終搜索到的LLPNet28_3網絡(28個layer結構,最大3個側分支)取得了最高83.4%的mAP@50。 表4 在HiXray數據集上的消融實驗研究Table 4 Experimental study of ablation on HiXRay data set 提出了一種基于NAS的X射線圖像違禁品檢測算法,該算法基于逐層漸進式搜索策略和BN指標性能評估策略,能夠根據X射線圖像違禁品數據集自適應的搜索設計最佳Backbone組件,構建的由數據驅動的新目標檢測網絡以較低的計算量和參數量獲得了較高的檢測性能,在3種復雜違禁品數據集 HiXray、OPIXray、PIDray 上與手工設計的CNN、基于NAS的方法、經典的目標檢測網絡進行了對比,結果表明本文所提算法具有更高的檢測性能,實現了進一步提高違禁品檢測的準確性和速度的目的,充分證明了所提算法的有效性。針對違禁品檢測的特點,為了進一步提高違禁品檢測的準確性和速度,下一步的研究內容將考慮增加對目標檢測網絡的頸部(Neck)組件和頭部(Head)組件進行搜索,通過增加搜索空間,優化搜索策略和性能評估策略來提升搜索效率,從而搜索設計出檢測性能更好的目標檢測網絡。
1.3 新目標檢測網絡訓練和測試

2 實驗
2.1 實驗環境
2.2 數據集和評價指標

2.3 實驗參數設置
2.4 實驗結果與分析





2.5 消融實驗

3 結論