朱金連,蔣海敏,楊玉捷,曹 懿,季必曄
(1.中華人民共和國南京海關,江蘇 南京 210001;2.南京三寶科技股份有限公司,江蘇 南京 210049)
當今國與國之間的關系越來越緊密,經濟全球化的趨勢不可扭轉,而海關作為國家對外貿易的重要關隘也愈發重要,加強海關的監管基礎設施建設刻不容緩[1-2]。同時全球新冠肺炎疫情形勢依然非常嚴峻,為應對新冠肺炎疫情輸入風險,守好“外防輸入”防線,海關亟須對監管場所加強監控。由于監管場所內有許多地方不允許未授權人員進出,但是由于場所區域比較大,難以實時進行人工監管,因此需要引入智能化的手段提高監管效率[3-4]。
現階段,可見光圖像人員檢測的傳統方法主要分為基于前景背景分離的檢測手段、基于圖像特征提取加機器學習的手段與基于神經網絡的手段。
在2005年,Dalal等人[5]提出了梯度方向直方圖特征(Histogram of Gradient,HOG),使用該特征描述行人,能較好地描述行人輪廓邊緣,并采用滑動窗口遍歷整個圖像,檢測效果較好,但是計算量較大。目前可見光圖像領域常用的特征還有目標框寬高比、haar-like特征、描述圖像紋理的局部二值模式(Local Binary Pattern,LBP)、強度自相似特征(Intensity Self-Similarity,ISS)、局部強度差直方圖(Histograms of Local Intensity Difference,HLID);HOG特征與HLID特征都是利用人體輪廓處具有較大的梯度方向特點。
但針對手工特征提取的有限性,劉翔羽[6]將圖像特征與CNN網絡結合,利用HOG特征與CNN提取的圖像特征加強了行人檢測的準確率。劉建國等人[7]提出了YOLO v2網絡與LBP特征的結合,LBP加強了行人的輪廓特征,但是受限于復雜的環境與拍攝角度,識別率不夠穩定。施政等[8]將紅外圖像與可見光圖像特征相互結合,并利用注意力機制獲得了較好的識別效果,算法的運行速率也較快,可搭載在單片機環境下使用,但是檢測精度不高。
基于以上研究,本文提出了一種針對海關監管場景的基于改進YOLO v3神經網絡的人員檢測算法,本算法中加入了HOG-CLBP特征提取層,并改進了先驗框的生成算法,修正了損失函數。對INRIA數據集和海關真實場景數據進行了測試,結果表明本文方法可以有效地提高夜晚環境下人員的檢測精度。
針對行人特征,本文在YOLO v3卷積層前添加HOG-CLBP特征提取層,HOG特征可描述人體的輪廓特征,面對背景復雜的情況表現較差,而CLBP特征更加突出紋理細節,二者融合可以顯著提高檢測性能。
在行人檢測領域中,由Dalal提出的HOG特征相比其他特征能更好地作為識別行人的特征,HOG的特征提取算法如圖1所示。

圖1 HOG特征提取算法
1.1.1 Gamma歸一化
Gamma歸一化可以降低光照條件引起的變化,在可見光圖像領域中,本身受光照影響較大,它同時也起到降低圖像中的噪聲與調節圖像對比度的作用,Gamma歸一化公式:

其中I(x,y)表示圖像坐標(x,y)的像素值,gamma為常數,當其值大于1時表示圖像中的低灰度值區域被壓縮,高灰度值區域被擴展,當小于1時則相反。
1.1.2 梯度計算
對圖像中的每一個像素點計算水平與垂直方向的梯度,最后合并求得每一個像素的梯度方向和幅值。

其中Gx(x,y)表示像素點(x,y)的水平梯度幅值,Gy(x,y)表示像素點(x,y)的垂直梯度幅值,G(x,y)表示合并后的梯度幅值,而θ(x,y)表示梯度方向的弧度。
1.1.3 加權直方圖
對于32×64pixels的圖像,筆者將其劃分為128個4×4pixels的cell,將每個cell中像素梯度方向映射到9個區間中,9個區間為0°~180°的等分,它作為每個cell的一個特征編碼:

針對可見光圖像,為了突出圖像中人員的輪廓形狀特征,將梯度幅值作為權值進行加權,最終生成了梯度方向直方圖:

1.1.4 block歸一化
將相鄰的2×2個cell拼接成一個block,block的特征向量將是這4個cell的組合,不同block之間是有重疊的,可以得到105個block,這樣使得單個cell對多個block的特征向量都是有貢獻的,對每個的block進行歸一化操作,這樣可以有效地降低可見光圖像對比度的影響,本文采用L2-norm方法對特征進行操作:

1.1.5 生成HOG特征
將所有歸一化后的block的特征向量進行串聯得到HOG特征,對于一個32×64pixels的圖像,共有105個block,每個cell的特征向量有9個維度,所以最后得到的HOG特征總維度為105×9×4=3 780。
單獨的HOG特征無法應對復雜的背景環境,CLBP特征可以由3個算子組成,分別是全局對比度CLBP_C、正負二值模式CLBP_S、幅度二值模式CLBP_M,在該算子中,局部像素區域可以由中心像素和局部差分符號幅度變換(Local Difference Sign-Magnitude Transform,LDMT)來描述,CLBP_C表示局部灰度值特征,由中心像素經過閾值化編碼而來,而CLBP_S與CLBP_M分別是LDMT分解為局部差值符號特征和差值幅度特征,可以對三者進行編碼描述,對某個像素點(xc,yc)而言:

其中,P表示中心像素鄰域的采樣個數;R表示鄰域半徑;gc表示像素點灰度值;N表示窗口數;gN表示窗口移動時,中心像素點的灰度均值|gp-gc|;Dc表示幅度均值,(xc,yc)即所求窗口內的像素灰度特征;xCLBP_S,P,R(xc,yc)即所求窗口內的像素差值符號特征;xCLBP_M,P,R(xc,yc)即為所求窗口內的像素差值幅度特征。
YOLO v3神經網絡在計算機視覺領域應用相當廣泛,在車輛、行人、動物等目標檢測中都可以取得較好的結果,研究者們通過改進也可以加強對某一類別的識別,本文針對該神經網路添加了特征提取層,改進了目標框的獲取算法,并針對損失函數提出了優化。
標準的YOLO v3算法相較于YOLO v2算法采用了深度更高的Darknet-53神經網絡,該神經網絡基本結構如圖2所示,YOLO v3輸入的圖片首先經過具有53層卷積的Darknet-53,并使用了Resnet構建的殘差模塊使得識別準確度更進一步提高,為了提高小目標的檢測精度,YOLO v3在Darknet-53之后采用類似Faster-RCNN的FPN層[9],分別進行32倍降采樣、16倍降采樣、8倍降采樣,最后融合3個scale得到特征圖像。

圖2 YOLO v3網絡結構
YOLO v3對檢測到的目標進行分類不再采用傳統的softmax計算概率,而是采用的是logistic回歸,這樣可以支持目標多標簽對象。
但是傳統的YOLO v3未對行人檢測做出足夠優化,針對可見光圖像中的中小目標行人檢測效果較差。
為了解決上述問題,本文在Darknet-53卷積層之前加入了HOG-CLBP特征提取層,HOG-CLBP特征由分別提取到的HOG特征與CLBP特征向量串聯組成,傳統的YOLO v3會對所有特征進行提取,沒有針對行人特征做出優化,降低了學習效率與識別準確率。行人所占據圖像的像素區域一般是較小的,但是長寬比較為固定,采用HOG-CLBP特征進行預處理,突出行人的輪廓特征,降低了無用信息,大大加快了特征提取速率,改進的YOLO v3網絡基本流程如圖3所示。

圖3 改進YOLO v3流程
YOLO v3一般采用k-means聚類算法生成各種尺度先驗框,但是由于行人檢測框具有較為固定的長寬比特征,大約為1.5。所以若采用原來的先驗框生成算法并不適用于行人檢測,影響學習效率。故本文采用k-means++算法,先從數據集中挑選一個聚類中心a1,再計算數據點到之前選出的聚類中心的最遠距離D(x)。D(x)采用IOU距離,IOU距離等于候選框和真實框之間的交集與其之間的并集之比,并對每個數據點以概率D(x)2/∑D(x)2選擇成為下一個聚類中心,重復該步驟直至聚類中心達到k個。
傳統YOLO v3的損失函數主要包含了回歸框位置損失lbox、置信度損失lobj與類別損失lcls,統稱為MSE損失函數。
若出現異常數據,回歸框與真實框差距過大時,往往造成模型修正過大,沒有考慮真實框的固定長寬比,本文針對回歸框位置損失進行改進,引入DPIOU損失函數。它改進自IOU損失函數[10],其式為:

IOU(A,B)為框A和框B交集與并集的比,IOU損失函數在回歸框與真實框重疊時才會提供梯度信息,不相交時則無法為網絡迭代提供信息,所以可以引入長寬比的懲罰項,同時考慮到兩框中心點之間的位置信息,引入兩點的標準化距離,可以得到DPIOU損失函數如下:

其中,ρ(A,B)為框A與框B中心點之間的歐式距離,C為框A與框B的最小包圍框的對角線距離,wi與hi分別為回歸框的寬與長。
所以修改后的損失函數為:

在實際應用場景中,比如進出境船舶夜間停靠后,禁止未授權人員上下船,此時往往禁區檢測區域在攝像頭圖像中是一條斜線,如圖4所示,該危險區域往往需要手動設置,可以假定檢測線L左側為危險區,而由于紅外攝像頭布置位置往往較高,呈俯視視角,若采用檢測區域面積作為衡量指標,考慮到行人具有高度,極其容易誤判,為了更準確地判定是否有人員上下船,本文采用識別框底部的邊界點偏離檢測。

圖4 危險區域示意
考慮到檢測框底部兩點縱坐標相同,可設檢測框底部為兩點A(x1,y0),B(x2,y0)且x1<x2,檢測線為Ax+By+C=0,檢測線左側視為越界,假定直線AB與檢測線相較于點C(x3,y0),則x3=-(Ax+C)/B,如此可得越界率計算式如下:

通過設置越界率閾值λ,若rate>λ則向監控中心發出預警。
算法具體步驟如下:
Step1 初始化越界率閾值λ,邊界描述直線集合Y,邊界點順時針排列集合P,邊界框底部兩點坐標A與B。
Step2 邊界框底部坐標與邊界點集合P中的點依次組成向量做叉乘,判斷是否在邊界內,若兩點均不在邊界內,算法結束;若兩點均在邊界內,則發出預警;否則繼續。
Step3 根據式(15)計算rate,與越界率閾值λ比較,若大于λ,則發出預警。
本文采用的是來自INRIA的行人數據集,該數據集中的圖像背景復雜,且有遮擋,也是眾多行人檢測領域所使用的數據集,其中訓練集含有614張正樣本,1 218張負樣本,測試集含有288張正樣本,453張負樣本,實驗環境在ubuntu 16.04LTS操作系統下,CPU采用的Intel i7-7700HQ,GPU為NVIDIA GTX 1060 6G,內存為16 GB。如圖5所示,經過大約5 000次迭代后,損失函數逐漸趨于平穩,繼續迭代收益較低。

圖5 改進后loss曲線
實驗對比了本方法與傳統的YOLO v3,Faster RCNN,HOG-SVM以及SSD等神經網絡的實驗效果,如表1所示。

表1 不同算法檢測結果
可見本方法在通過添加特征提取層以及改進損失函數有效地提升了網絡的性能,改進后相比原始的YOLO v3神經網絡平均準確率提升了4.33%,并且在前文所述設備下運行速率與YOLO v3基本持平。
對于實際海關監管應用場景,采集了部分圖像進行測試,如圖6所示,使用綠框對人員進行了標識,該系統能準確地識別出行人位置,并判斷行人是否進入違禁區域,從圖6 (b)也可看出當人員出現明顯遮擋情形時也可準確識別出來,最后通過判斷檢測框底部是否進入禁區,實現監管場所人員是否非法進入禁區。

圖6 海關實際場景識別效果
針對海關監管場所的人員檢測,本文提出了一種基于改進YOLO v3的檢測算法,將改進的YOLO v3神經網絡與傳統的行人特征提取相結合,增加了HOGCLBP特征提取層,突出了有效的行人特征,降低了網絡的誤檢率,并改進了先驗框的生成,使得預選區域更加符合行人特征,利用IOU距離改進損失函數,具有了良好的尺度不變性,提高了收斂速率。本文算法可以有效提高海關監管場所環境下的行人識別準確率,從而提升海關的智能化監管水平。