李 鈺,段明秀,宋思思,李 翅
(吉首大學信息科學與工程學院,湖南 吉首 416000)
在教室、圖書館和車站等人群密度較高的場所,通常都安裝了視頻監(jiān)控系統(tǒng).利用視頻監(jiān)控系統(tǒng),可以提取視頻中的人數(shù)信息,這是資源優(yōu)化配置中的關鍵信息,有較高的實用價值.統(tǒng)計人數(shù)的關鍵任務是對單個的人的檢測.1958年,神經生物學家Hubel等[1]通過觀察貓腦內的神經元對投影在屏幕上精確位置的圖像的響應情況,發(fā)現(xiàn)處于視覺系統(tǒng)較前面的神經元對特定的光模式反應較強烈.這一事實引起了人們對大腦識別物體的方法的思考,即大腦是從原始信號做低級抽象,再做高級抽象.卷積神經網絡便是受此啟發(fā)而出現(xiàn)的,它從原始圖像開始,通過卷積核提取特征層,特征層再次通過卷積核提取出新的特征層.大量實踐證明,卷積神經網絡能夠成功地應用在計算機視覺領域的目標檢測任務中.本研究中采用的單發(fā)多盒探測器(Single Shot MultiBox Detector,SSD)模型[2],正是一種基于卷積神經網絡的目標檢測模型,該模型檢測目標的類別數(shù)為20.筆者擬將該SSD模型修改為單類目標檢測模型,即只保留數(shù)據(jù)集中的person類目標,過濾掉其他19類目標,并在同一檢測任務下對比二者的檢測效果.
SSD模型是深度卷積神經網絡模型,其網絡結構如圖1所示.SSD模型使用VGG-16作為基礎網絡(稱為base network[2]),它是用于圖像分類(已知一個類別,判斷未知目標是否屬于該類目標)的標準架構.在base network之后,添加了額外輔助的網絡結構.
圖1 SSD模型的網絡結構Fig. 1 SSD Architecture
SSD模型的核心方法是預測物體位置及其歸屬類別,即在檢測目標時,需要檢測目標所在位置(本研究為預測offset)和目標類別(本研究為預測score).基本預測流程如圖2所示.
圖2 SSD模型的預測流程Fig. 2 SSD Forecasting Process
將300×300的圖片作為輸入,通過卷積核(kernels)對圖像不斷地進行特征提取.選取6個特征層(feature map)進行預測,其大小分別為38×38,19×19,10×10,5×5,3×3,1×1.feature map的每一點對應原輸入圖片的一個區(qū)域的中心點(稱為feature map cell[2],m×n大小的feature map共有m×n個fea-ture map cell).以該點為中心,構造出不同寬高比的k個默認框default box,從左到右k的取值分別為4,6,6,6,4,4,共有8 732個default box.每個框都需要預測c個類別的score和4個offset.4個offset為(x,y,w,h),其中x和y表示框中心點的坐標,w和h分別表示框的寬和高.于是,對于m×n的feature map,共有(c+4)×m×n×k個輸出結果[3].對所有的輸出結果,根據(jù)置信度排序,從大到小取一部分,然后通過Non-Maximum Suppression得到最終的預測結果.
筆者采用公開數(shù)據(jù)集pascal VOC 2007.該數(shù)據(jù)集包含20類物體(即aeroplane,bicycle,bird,boat,bottle,bus,car,cat,chair,cow,diningtable,dog,horse,motorbike,person,pottedplant,sheep,sofa,train,tvmonitor),共9 963張圖片.筆者只采用包含人的圖片,并將這些圖片對應的Annotation標注文件中name節(jié)點值不為person的標注數(shù)據(jù)過濾掉,最后生成4 192(其序號為0~4 191)個訓練數(shù)據(jù),如圖3所示.將20類目標的SSD模型的檢測目標類別數(shù)修改為1,配置文件修改為
圖3 訓練數(shù)據(jù)Fig. 3 Training Data
VOC_LABELS={'none':(0,'Background'),'person':(1,'Person')},
其中person的label值為1,其他均視為background,label值為0.
訓練數(shù)據(jù)由人工在圖像上標注的目標位置組成,該位置稱為ground truth box[2].訓練的主要目的是最小化損失函數(shù).SSD模型訓練的損失函數(shù)由分類和回歸2個部分組成[2]:
使用反向傳播算法對模型進行訓練.訓練所用的CPU為Intel (E5-2665/i5-7500),GPU為GTX 1050TI,迭代次數(shù)設置為無限訓練.圖4示出了訓練過程中L(x,c,l,g)的變化情況.從圖4可以看出:0~100步,損失值迅速下降,模型快速收斂,loss值越小表示模型收斂效果越好;100~120步,損失值在很小范圍內上下波動,即模型已收斂.
圖4 總的損失值Fig. 4 Total Loss Value
選取自習室的一張照片進行實驗對比.圖5示出了20類目標的SSD模型的檢測結果,圖中綠色框標記的是檢測到的人,紫色框標記的是檢測到的椅子.圖6示出了單類目標的SSD模型訓練至130步時的檢測結果,圖中紅色框標記的是檢測到的人.
圖5 20類目標的SSD模型的檢測結果Fig. 5 Detection Results with 20 Categories
圖6 單類目標的SSD模型的檢測結果Fig. 6 Detection Results with Single Category
從圖5和圖6可以看出,在對人的檢測任務中,單類目標的SSD模型相比20類目標的SSD模型能夠更準確地檢測出圖像中的目標.
將20類目標的SSD模型的檢測器修改為只檢測人的單類目標檢測器,二者的對比實驗結果表明,單類目標的SSD模型在檢測人的任務中精確度更高.考慮到目標被大部分遮擋時特征嚴重缺失,以及小目標的檢測效果并不佳,筆者下一步將從這2個方面對SSD模型作改進.