李克文,李新宇
(中國石油大學(xué)(華東)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,青島 266580)
行人檢測是通過計(jì)算機(jī)視覺技術(shù)確定圖像或視頻中是否包含行人并標(biāo)記行人的具體位置[1,2].目前,行人檢測算法主要分成3 類:基于背景建模,基于模板匹配和基于統(tǒng)計(jì)學(xué)習(xí).基于背景建模的算法可以檢測到具有光流變化的移動著的人,但是它無法檢測處于靜態(tài)的人.基于模板匹配的方法利用圖像中的輪廓、紋理和灰度信息來檢測目標(biāo).該方法比較簡單,因?yàn)樗窃谠紙D像上進(jìn)行操作,不需要進(jìn)行復(fù)雜的特征提取,缺點(diǎn)是我們需要各種行人模板才能取得較好的效果,并且模板匹配的方法花費(fèi)時間較長.為了更好地描述行人特征,達(dá)拉爾等人提出了梯度直方圖(HOG)特征,結(jié)合簡單的線性支持向量機(jī)(SVM),取得了很好的效果[3].之后,Felzenswalb 通過梳理HOG 特征提出了可變形組件模型(DPM).DPM 通過解決行人遮擋問題,進(jìn)一步提高了檢測精度[4].傳統(tǒng)的行人檢測過程主要包含五個部分:圖像預(yù)處理、窗口滑動、特征提取、特征分類和后處理.傳統(tǒng)的方法存在以下缺點(diǎn):(1)特征粗糙;(2)分類誤差高;(3)一種特征只能適用于特定的場景,在另一種情況下很難取得好成績[5,6].
近年來,深度學(xué)習(xí)發(fā)展迅速,人工智能領(lǐng)域研究的格局也隨之變化,計(jì)算機(jī)視覺方向尤其得到廣泛關(guān)注.2006年,Hinton 等提出一種基于深度學(xué)習(xí)的行人檢測算法,利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)從行人數(shù)據(jù)集中學(xué)習(xí)具有高表示性的特征.與傳統(tǒng)特征相比,高級特征更豐富,表現(xiàn)力更強(qiáng),行人檢測性能更好.2012年,Hinton 使用CNN 在2012年ILSVRC 中獲得第一名,分類任務(wù)Top-5 錯誤率為15.3%[7].CNN 在圖像識別領(lǐng)域的成功應(yīng)用,使得越來越多的人開始關(guān)注CNN.在物體檢測領(lǐng)域,Girshick 提出了R-CNN 模型[8],應(yīng)用選擇性搜索算法選擇圖像中相同大小的幾個候選區(qū)域,然后通過CNN 提取高級特征并通過SVM 進(jìn)行分類.為了提高R-CNN 模型的準(zhǔn)確性和計(jì)算速度,Girshick 提出了Fast R-CNN 模型[9].而后Ren 等基于Fast R-CNN 提出了Faster R-CNN 模型,該模型使用RPN 網(wǎng)絡(luò)生成目標(biāo)候選區(qū)域.基于Faster R-CNN 的目標(biāo)檢測過程包含在整個深度卷積神經(jīng)網(wǎng)絡(luò)中,旨在加速候選框的提取并克服手工特征的魯棒性問題[10,11].本文在經(jīng)典Faster RCNN 的基礎(chǔ)上提出了一種改進(jìn)的行人檢測方法,使用嵌入SENet 單元的VGG-16 網(wǎng)絡(luò)作為原有模型的特征提取網(wǎng)絡(luò).該方法在INRIA 行人數(shù)據(jù)集上進(jìn)行了訓(xùn)練并在INRIA 行人數(shù)據(jù)集和自制的私有的數(shù)據(jù)集上進(jìn)行了聯(lián)合測試.實(shí)驗(yàn)證明該方法提高了模型的檢測性能.
SENet (Squeeze-and-Excitation Networks)[12],是一種網(wǎng)絡(luò)原子模型,由Hu 等人提出,并在ImageNet2017競賽Image Classification 任務(wù)中獲得冠軍.近幾年來,卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺領(lǐng)域取得巨大突破.卷積神經(jīng)網(wǎng)絡(luò)的核心部件是卷積核,卷積核可以看作是空間信息和特征維度信息的聚合體,就好比人的眼睛在一幅畫面中的局部感受視野中的信息.深度卷積神經(jīng)網(wǎng)絡(luò)有一系列的卷積層、池化層、非線性層和歸一化層組成,這種結(jié)構(gòu)使得網(wǎng)絡(luò)能夠捕獲圖像的全局特征.
目前大部分的卷積神經(jīng)網(wǎng)絡(luò)模型都是在空間維度上提升網(wǎng)絡(luò)性能,VGG 結(jié)構(gòu)和Inception 模型表明,增加網(wǎng)絡(luò)的深度可以顯著提高網(wǎng)絡(luò)學(xué)習(xí)特征的質(zhì)量.SENet 則側(cè)重考慮特征通道之間的關(guān)系,對特征通道之間的相互依賴關(guān)系進(jìn)行顯式建模.具體的說,就是采用一種對特征通道進(jìn)行重新標(biāo)定的方法,網(wǎng)絡(luò)在學(xué)習(xí)特征的過程中,同時學(xué)習(xí)了每個通道對總體特征的貢獻(xiàn)值,然后依照這個貢獻(xiàn)值來提升有用的特征并抑制對當(dāng)前任務(wù)貢獻(xiàn)不大的特征.
給定一個特征通道數(shù)是c1的輸入x,對x 進(jìn)行一系列卷積操作變換得到一個特征通道數(shù)為c2的特征集.然后在此基礎(chǔ)上進(jìn)行Squeeze、Excitation、Reweight 等一系列操作,最終得到一個具有通道權(quán)重分配的特征集
Faster R-CNN 是一種通用的目標(biāo)檢測算法,采用Two-Stage 策略,輸入圖像分別通過卷積層和區(qū)域提議網(wǎng)絡(luò)(RPN),最后經(jīng)過一層池化層和全連接層,得到最終的分類得分和邊框回歸.該算法的主要思想是設(shè)計(jì)RPN 網(wǎng)絡(luò)提取所提出的區(qū)域并利用卷積神經(jīng)網(wǎng)絡(luò)生成所提出的區(qū)域.用于生成區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)(CNN)的卷積層參數(shù)被共享給用于分類的CNN.該方法使得算法不再依賴于單獨(dú)的模塊來生成所提出的區(qū)域.然后對生成的提議區(qū)域進(jìn)行分類并計(jì)算邊界框回歸.用RPN 替換選擇性搜索以縮短區(qū)域提議的時間,同時大大減少了模型在檢測網(wǎng)絡(luò)上花費(fèi)的時間.
RPN 采用滑動窗口選擇的方法,在共享卷積網(wǎng)絡(luò)的最后一層輸出的特征圖上生成區(qū)域提議.RPN 的輸入是卷積特征圖的n×n 滑動窗口.對于每個滑動窗口來預(yù)測k 個錨點(diǎn)的對象區(qū)域建議,每個錨點(diǎn)具有相應(yīng)的比例.卷積特征圖中的每個點(diǎn)都是一個錨點(diǎn)中心,其中有k 個對應(yīng)的錨點(diǎn).對于w×h 卷積特征圖,存在w×h 個錨點(diǎn).每個窗口同時作為低維特征向量傳遞到分類網(wǎng)絡(luò)和回歸網(wǎng)絡(luò)中.分類網(wǎng)絡(luò)輸出每個錨屬于對象的概率.對于每個窗口,有2k 個得分輸出.邊界回歸網(wǎng)絡(luò)的輸出是每個錨點(diǎn)的平移和縮放值,每個窗口輸出4k 個坐標(biāo).
Faster R-CNN 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,其中特征提取網(wǎng)絡(luò)可以使用ZFNet、VGG-16、ResNet 等.ZF 網(wǎng)絡(luò)由5 層卷積層和兩層全連接層組成,相對于AlexNet,ZF 網(wǎng)絡(luò)只是卷積核個數(shù)和步長發(fā)生了變化,網(wǎng)絡(luò)結(jié)構(gòu)并沒有明顯的進(jìn)步.無論從其結(jié)構(gòu)和檢測結(jié)果上都無法達(dá)到深度網(wǎng)絡(luò)的要求.
圖1 Faster R-CNN 結(jié)構(gòu)圖
提升網(wǎng)絡(luò)性能一般是提升網(wǎng)絡(luò)的訓(xùn)練速度和準(zhǔn)確率這兩個指標(biāo).許多方法研究表明,適當(dāng)增加網(wǎng)絡(luò)的深度可有效增強(qiáng)網(wǎng)絡(luò)提取特征的質(zhì)量,然而網(wǎng)絡(luò)加深參數(shù)也隨之增多,計(jì)算量增大導(dǎo)致運(yùn)行成本增加,速度變慢.因此要在準(zhǔn)確率和運(yùn)行速度兩個指標(biāo)權(quán)衡的基礎(chǔ)上對網(wǎng)絡(luò)進(jìn)行優(yōu)化.
VGG-16 網(wǎng)絡(luò)是一個由13 層卷積層、3 層全連接層、5 層最大池化層組成的網(wǎng)絡(luò)結(jié)構(gòu),結(jié)構(gòu)圖如圖2所示.
由于SE 塊中的操作就是池化、全連接這樣的基本操作,因而具備一定的靈活性,能夠直接嵌入到含有skip-connections 的模塊中,例如ResNet、Inception 等結(jié)構(gòu).本文正是基于這一特點(diǎn)改進(jìn)VGG-16 網(wǎng)絡(luò)結(jié)構(gòu),在每一層最大池化層之前加上一層SE 網(wǎng)絡(luò)層,用于處理池化層之前的卷積特征集.卷積層改進(jìn)如圖3 所示.
圖2 VGG-16 網(wǎng)絡(luò)結(jié)構(gòu)
圖3 VGG 卷積模塊及改進(jìn)
目前幾乎所有檢測模型的特征提取網(wǎng)絡(luò)都是幾種經(jīng)典的網(wǎng)絡(luò),如基于GooleNet 的YOLO 模型,基于Darknet-53 的YOLOv3,基于VGG16 的SSD 網(wǎng)絡(luò)模型,以及基于ZF 的Faster R-CNN 模型等.傳統(tǒng)的Faster R-CNN 模型使用經(jīng)典的ZF 網(wǎng)絡(luò)進(jìn)行特征提取.用于道路行人檢測時,尤其是有遮擋和小目標(biāo)檢測的情況下,原始網(wǎng)絡(luò)結(jié)構(gòu)檢測精度和檢測速率相對較低.本文提出一種改進(jìn)的Faster R-CNN 方法,使用嵌入SE 單元的VGG-16 作為新的特征提取網(wǎng)絡(luò),使用K-means 聚類和RPN 相結(jié)合設(shè)計(jì)分類網(wǎng)絡(luò),ReLU 作為激活函數(shù),來設(shè)計(jì)檢測網(wǎng)絡(luò),最終的輸出結(jié)果是一個Bounding box(以下統(tǒng)稱bbox)回歸和歸一化分類得分.通過本文方法,給卷積提取的特征通道之間賦予相應(yīng)的權(quán)重,提升了特征表示的質(zhì)量,從而提升了檢測的精度.另一方面優(yōu)秀的特征表示能夠使網(wǎng)絡(luò)加快收斂,從而提高了檢測速率.實(shí)驗(yàn)證明該模型可以用于道路行人實(shí)時檢測.改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖4 所示.
圖4 改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)圖
網(wǎng)絡(luò)檢測主要流程如下:
(1)將原始數(shù)據(jù)預(yù)處理為M×N 大小的圖像作為網(wǎng)絡(luò)輸入.
(2)通過特征提取網(wǎng)絡(luò)SE-VGG-16 提取特征.
(3)將提取的特征集分成兩路,一路輸入到RPN 網(wǎng)絡(luò),一路傳到特有卷積層以獲取更高維的特征.
(4)經(jīng)過RPN 網(wǎng)絡(luò)處理的特征圖會產(chǎn)生一個對應(yīng)的區(qū)域得分,然后通過最大值抑制算法得到區(qū)域建議.
(5)把步驟(3)得到的高維特征和(4)中得到的區(qū)域建議同時輸入到RoI 池化層,提取對應(yīng)區(qū)域建議的特征.
(6)將得到的區(qū)域建議特征輸入到全連接層,得到區(qū)域的分類得分以及回歸后的bbox.
在網(wǎng)絡(luò)訓(xùn)練階段,需要設(shè)置候選區(qū)域的規(guī)格和數(shù)量.隨著迭代次數(shù)的增加,候選區(qū)域參數(shù)被連續(xù)調(diào)整,最終接近真實(shí)的行人檢測區(qū)域.為了加快收斂速度,使用K-means 方法聚類與圖像中的行人相似的候選區(qū)域.K-means 聚類應(yīng)用歐氏距離來測量兩點(diǎn)之間的距離,其聚集了單位網(wǎng)格的寬度和長度的比率.IoU 是反映候選區(qū)域和真實(shí)待檢測區(qū)域之間差異的重要指標(biāo).IoU 值越大,兩個區(qū)域之間的差別越小.K-means 聚類函數(shù)為:其中,N 指聚類的類別,M 指聚類的樣本集,Box[N]指候選區(qū)域的寬和高,Box[M]指實(shí)際行人區(qū)域的寬和高.
在檢測階段,利用檢測網(wǎng)絡(luò)進(jìn)行匯集操作,通過bbox 分類網(wǎng)絡(luò)對區(qū)域進(jìn)行分類,并通過bbox 回歸網(wǎng)絡(luò)預(yù)測行人的邊界框.在檢測網(wǎng)絡(luò)中有兩個并行的輸出層,分類層的輸出是每個候選區(qū)域在行人和背景上的概率分布.每個候選區(qū)域?qū)τ谛腥撕捅尘斑@兩個類別的概率分布是p=(p0(,p1).回歸)網(wǎng)絡(luò)的輸出是行人邊界框坐標(biāo)的參數(shù):其中k 代表類別.邊界框回歸網(wǎng)絡(luò)和邊界分類網(wǎng)絡(luò)通過如下聯(lián)合損失函數(shù)進(jìn)行訓(xùn)練:L(p,u,tu,v)=Lcls(p,u)+λ[u ≥1]·Lreg(tu,v).Lcls(p,u)=-log(pu)指的是實(shí)際類別的對數(shù)損失.Lreg只有當(dāng)檢測到的是行人時才會激活.
RPN 和檢測網(wǎng)絡(luò)共享特征提取的卷積網(wǎng)絡(luò),即SE-VGG 模型,其通過計(jì)算圖像特征大大減少了計(jì)算時間.首先對SE-VGG 網(wǎng)絡(luò)進(jìn)行訓(xùn)練,然后訓(xùn)練RPN,通過RPN 提取的區(qū)域建議訓(xùn)練檢測網(wǎng)絡(luò),然后對檢測網(wǎng)絡(luò)的參數(shù)進(jìn)行RPN 訓(xùn)練.也就是說,RPN 和檢測網(wǎng)絡(luò)被聯(lián)合訓(xùn)練,重復(fù)進(jìn)行直到實(shí)現(xiàn)收斂.
本實(shí)驗(yàn)的訓(xùn)練樣本取自INRIA 數(shù)據(jù)集,包括15 560 個正樣本和6744 個負(fù)樣本,分別選擇5000 個正樣本和負(fù)樣本作為訓(xùn)練樣本.測試集中有1000 張圖片,其中包括來自INRIA 的500 張圖片和500 張個人收集制作的測試圖片.實(shí)驗(yàn)的硬件配置采用Intel Core i7 處理器,16 GB 內(nèi)部存儲器,NVIDIA GTX1080Ti.在訓(xùn)練階段,訓(xùn)練集中的每個行人都需要用矩形框標(biāo)記.在測試中,如果識別出的行人和標(biāo)記的矩形框的重疊部分達(dá)到標(biāo)記矩形框的90%以上,則認(rèn)為是成功檢測到的.
該實(shí)驗(yàn)選用Tensorflow 框架實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)模型,分別做了原始的Faster R-CNN 模型(基于ZF 網(wǎng)絡(luò))、基于VGG-16 的Faster R-CNN 模型和基于SEVGG-16 的Faster R-CNN 模型的實(shí)驗(yàn),其中特征提取網(wǎng)絡(luò)都是在ImageNet 上進(jìn)行預(yù)訓(xùn)練的.參數(shù)設(shè)計(jì)包含dropout、最大迭代次數(shù)、候選區(qū)域框的大小和nms(非極大值抑制)閾值.這些值的設(shè)置都會對mAP 值產(chǎn)生一定的影響,所以優(yōu)化這些參數(shù)以獲得更好的輸出也是實(shí)驗(yàn)要做的一部分.在本實(shí)驗(yàn)中,最大迭代次數(shù)設(shè)置為8000,初始候選區(qū)域大小為256,邊界框的大小為128.
首先在原始網(wǎng)絡(luò)上進(jìn)行實(shí)驗(yàn),以選取最佳參數(shù)值.結(jié)果如表1.可以得到如下結(jié)論:當(dāng)dropout 值從0.2 增加到0.6 時,mAP 隨之增加,從0.6 增加到0.8 時,mAP 值隨之減小.當(dāng)dropout 為0.6 時,mAP 獲得最大值.因此本實(shí)驗(yàn)選取dropout=0.6.
表2 中的結(jié)果是在dropout 為0.6 且最大迭代次數(shù)為8000 的條件下得到的,該結(jié)果表明候選區(qū)域的大小不同會導(dǎo)致不同的mAP 值,候選區(qū)域越小,mAP 值越大.因?yàn)楹蜻x框的選取會影響檢測速率,理論上候選框大小設(shè)定的越小,檢測精度越高,速率越慢.本文綜合考慮檢測速率和精度選取候選框大小為128.
表1 dropout 對mAP 的影響
表2 區(qū)域框大小對mAP 的影響
一般用準(zhǔn)確率、檢測速率來評價模型的質(zhì)量.除此之外,召回率也是衡量模型好壞的一個指標(biāo),在圖片中待檢測的目標(biāo)較多時,應(yīng)該盡量使模型做到“一個不漏”.表3 中的結(jié)果是固定dorpout 值為0.6 和區(qū)域框大小為128 時,選取不同的共享網(wǎng)絡(luò)得到的準(zhǔn)確率、檢測速率和召回率的結(jié)果.我們做了3 個對比實(shí)驗(yàn):經(jīng)典的Faster R-CNN 模型(特征提取網(wǎng)絡(luò)為ZF 網(wǎng)絡(luò));基于VGG-16 的Faster R-CNN 模型(特征提取網(wǎng)絡(luò)使用VGG-16 網(wǎng)絡(luò)模型);基于SE-VGG-16 的Faster RCNN 網(wǎng)絡(luò)模型(特征提取網(wǎng)絡(luò)使用本文提出的模型).從以表3 數(shù)據(jù)可以看出,我們的模型在準(zhǔn)確率、檢測速度和召回率上都有一個較好的結(jié)果.
表3 選取不同網(wǎng)絡(luò)時的結(jié)果對比
本文從行人檢測的背景和意義出發(fā),對現(xiàn)有檢測方法做了綜合闡述,得知傳統(tǒng)的行人檢測方法或是以犧牲準(zhǔn)確率來提高檢測效率以達(dá)到實(shí)時性的要求,或是以犧牲檢測時間和空間為代價加深網(wǎng)絡(luò)來獲得高準(zhǔn)確率,我們的研究通過對Faster R-CNN 模型進(jìn)行改進(jìn),使用添加SE 單元的VGG 網(wǎng)絡(luò)作為Faster R-CNN 的特征提取網(wǎng)絡(luò),通過賦予特征圖相應(yīng)權(quán)重來提升有用特征并抑制無用特征.理論和實(shí)驗(yàn)證明這種方法很好的權(quán)衡了網(wǎng)絡(luò)檢測速率和魯棒性,網(wǎng)絡(luò)整體性能得到了提升.