楊歡,胡彪
(西南民族大學(xué)電氣信息工程學(xué)院,成都610041)
現(xiàn)如今,人工智能已經(jīng)應(yīng)用于各個領(lǐng)域,和傳統(tǒng)的一些方法相比,深度學(xué)習(xí)方法具有更好的魯棒性和更快速度以及更高的準(zhǔn)確率。在計(jì)算機(jī)視覺領(lǐng)域中,目標(biāo)檢測一直是一個研究熱點(diǎn)和難點(diǎn),然行人檢測在很多安防領(lǐng)域和自動駕駛方面都有很高的需求,這引起了人們廣泛的關(guān)注。行人檢測的主要任務(wù)是對于輸入的圖像序列或者視頻幀通過檢測系統(tǒng)輸出包含行人的矩形框。
在傳統(tǒng)的行人檢測方法中,其主要是先提取梯度方向直方圖[1](Histogram of Oriented Gradient,HOG)特征,然后訓(xùn)練支持向量機(jī)[2](Support Vector Machine,SVM)分類器,最后利用滑動窗口鎖定目標(biāo)區(qū)域?qū)ζ溥M(jìn)行分類判斷。這種方法使用人工構(gòu)造特征進(jìn)行檢測時,存在耗時、魯棒性差等問題,其特征表征能力不足,很難適應(yīng)復(fù)雜的環(huán)境。曲昭偉[3]等采用聚類的方法,并用HOG提取特征,最后使用SVM進(jìn)行分類,達(dá)到了對行人的實(shí)時監(jiān)測。2012年,Krizhecsky[4]等人提出了AlexNet,在ImageNet的圖像分類競賽中證明了其實(shí)力。隨后,深度卷積神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Neu?ral Networks,DCNN)走上人工智能最前端,應(yīng)用于圖像識別和其他應(yīng)用領(lǐng)域,開啟機(jī)器視覺新領(lǐng)域。主要分為兩類:一類是以R-CNN[5]、SPPNet[6]、Fast R-CNN[7]和Faster R-CNN[8]系列為主,該類方法是一個“由粗到精”的過程,首先產(chǎn)生目標(biāo)候選框,也就是目標(biāo)位置,然后再對候選區(qū)域進(jìn)行分類和回歸,該方法雖檢測的精度較高,但因其存在區(qū)域建議網(wǎng)絡(luò)(Region Proposal Networks,RPN),導(dǎo)致檢測速度不高;另一類是以YOLO[9]、SSD[10]為代表的基于回歸的方法,被視為“一步完成”,通過CNN直接預(yù)測出目標(biāo)的類別及位置坐標(biāo),與兩階段檢測器相比,其特點(diǎn)是檢測速度快,但精度不高。在基于深度學(xué)習(xí)的行人檢測方面,Park[11]等人設(shè)計(jì)了一種卷積神經(jīng)網(wǎng)絡(luò)框架實(shí)現(xiàn)行人檢測任務(wù),并以端到端的方式訓(xùn)練整個模型;Zhang[12]等為了實(shí)現(xiàn)對遠(yuǎn)程行人的檢測,通過Faster R-CNN進(jìn)行快速選框,然后采用殘差網(wǎng)絡(luò)(ResNet)提取候選區(qū)域的特征。郭愛心[13]等人在Faster R-CNN的基礎(chǔ)上,提出行人建議區(qū)域網(wǎng)絡(luò),并采用特征融合方法證明其合理性與有效性。Liu[14]等人提出了一種將檢測對象作為高級語義特征任務(wù)的新視覺,將行人檢測簡化成一個簡單的中心點(diǎn)和尺度預(yù)測任務(wù)。
以上這些方法大多都基于anchor進(jìn)行檢測的,使用anchor時,(1)需要在不同尺度的特征層上平鋪,每個特征點(diǎn)對應(yīng)了多個anchor-box,增加了計(jì)算耗時,在大量無用樣本上花費(fèi)算力;(2)需要預(yù)定義兩個超參數(shù):anchor size和aspect ratio,這些預(yù)定義的超參數(shù)影響模型的性能。本文提出的MRFP模型是一種用于行人檢測的anchor-free的設(shè)計(jì)方法,其主要考慮到感受野和有效感受野的重要性,感受野根據(jù)其大小的不同將其看作是不同大小的anchor-box,淺層的特征圖映射回原圖的感受野范圍較小,可以用于檢測小尺度行人,越往深層的特征圖映射回原圖的感受野范圍越大,用于檢測大尺度行人。整個網(wǎng)絡(luò)框架都是使用3×3和1×1的卷積核,總共僅20個卷積層,181萬的參數(shù)量,相比于ResNet[15]、SSD等模型,其速度要快得多。
Anchor-based的檢測方法最大的特點(diǎn)就是預(yù)先設(shè)定好anchor,為了檢測不同大小和形狀的目標(biāo),anchor的設(shè)定也是多種多樣的。本文MRFP方法把感受野當(dāng)做一種天然的anchor,在搭建好神經(jīng)網(wǎng)絡(luò)的時候,不同特征層的神經(jīng)元映射到原圖的感受野大小和數(shù)目便被固定下來了。通過這樣的方式便可以根據(jù)不同大小的感受野檢測不同大小的行人。
在卷積神經(jīng)網(wǎng)絡(luò)中,感受野是圖像通過卷積神經(jīng)網(wǎng)絡(luò)得到的特征圖上的每一個像素點(diǎn)映射到輸入圖像上的某個區(qū)域大小。感受野區(qū)域越大,則意味著特征圖上這個像素點(diǎn)能夠接觸到原始圖像更大的范圍,也就是包含著更大的輸入圖像的信息量,包含著更高層次的語義信息。若感受野越小,則表示像素點(diǎn)映射回輸入圖像所包含的信息量更少,更多的是趨于局部和細(xì)節(jié)的特征。因此,如果被檢測的行人,能被某個感受野包括,或者剛好結(jié)合,那么這個行人就能很好地被檢測出來。圖1為感受野示意圖,感受野的計(jì)算公式由式(1)所示。
圖1中,kn表示第n層的卷積核大小,sn表示第n層卷積的步長。rn表示經(jīng)過第n次卷積得到的感受野大小。大小為9×9原始圖像在經(jīng)過三次卷積之后到的特征圖每個像素點(diǎn)映射回原始圖像的感受野大小為7×7。

圖1 感受野示意圖
感受野有一個重要屬性,即每一像素點(diǎn)對神經(jīng)元的激活所做的貢獻(xiàn)都是不一樣的,總的來說,感受野中心點(diǎn)的像素,做的貢獻(xiàn)是最大的,如圖1中input image的小紅色框,,稱為有效感受野,該像素點(diǎn)對feature map3粗黑色的像素點(diǎn)的貢獻(xiàn)最大,離中心點(diǎn)越遠(yuǎn),則貢獻(xiàn)越小;有效感受野在網(wǎng)絡(luò)中的存在類似于高斯分布。

式1中,當(dāng)n=1時,每個像素點(diǎn)的感受野是1×1,當(dāng)n≥2時,感受野通過式(1)計(jì)算得來。由式(1)可以看出,前面卷積層的卷積核大小及步長都會影響到后面卷積層的感受野大小。卷積越深,其特征圖映射回原圖的感受野區(qū)域越大;反之,層數(shù)越淺,其特征圖映射回原圖的感受野區(qū)域越小。
該網(wǎng)絡(luò)結(jié)構(gòu)總共有20層,有4個loss分支,每個分支負(fù)責(zé)不同大小行人的檢測任務(wù),對于小目標(biāo)而言,需要更多的細(xì)節(jié)信息,所以感受野和行人的平均尺寸的比例是較大的;隨著卷積越深,檢測的目標(biāo)越大,不需要較多的背景信息就很容易檢測到,其比例也逐步減小。該網(wǎng)絡(luò)框架的具體信息見表1。

表1 MRFP網(wǎng)絡(luò)框架的具體信息

圖2 MRFP的網(wǎng)絡(luò)結(jié)構(gòu)
該網(wǎng)絡(luò)結(jié)構(gòu)全部使用3×3的卷積核,表一中,藍(lán)色的卷積層表示采用2×2的步長大小,特征圖隨著卷積的加深逐步變??;網(wǎng)絡(luò)中的殘差連接只是簡單的通道融合。紅色部分表示4個不同的loss分支。對于每個loss分支,其又有兩個小的分支,一個用于分類,判斷是否為行人,一個用于回歸box的位置坐標(biāo)。
和感受野匹配的是正樣本,否則認(rèn)為是負(fù)樣本。在訓(xùn)練過程中,如果感受野匹配到了多個行人,直接被忽略。本文中,對于每個變換的尺度,設(shè)定了灰色區(qū)域?;疑珔^(qū)域?yàn)閇[SLi*0.9],SLi]和[SUi,[SUi*0.1]],其中SLi和SUi分別表示第i層的連續(xù)尺寸的下限和上限,比如分支2,檢測的目標(biāo)是[50-100],那么該區(qū)域的灰色區(qū)域?yàn)閇50,55]和[90,100],如果目標(biāo)落在灰色區(qū)域,就會被忽略掉。
對于box回歸,本文使用L2 loss,回歸的groundtruth定義如下:

其中RFx和RFy表示感受野中心點(diǎn)的坐標(biāo),和表示box的左上角坐標(biāo),和表示box的右下角坐標(biāo)。RFS表示感受野的大小。當(dāng)感受野與box進(jìn)行匹配時被激活,否則忽略,在計(jì)算loss的時候,他們具有相同的權(quán)重,這樣能保證兩邊平衡,使左上角和右下角的坐標(biāo)到groundtruth box中心的距離是相等。
構(gòu)建對應(yīng)尺度的feature map,一個尺度的feature map分為兩種:
(1)一種記錄了原圖box歸一化后的數(shù)值,包含了六個通道,前兩個用1和0分別標(biāo)注正負(fù)樣本,后四個表示左上角和右下角的坐標(biāo)。
(2)另一種為mask map,包含六個通道,前兩個標(biāo)記正負(fù)樣本,后四個是一樣重復(fù)的mask,有box的數(shù)值為0,沒有的區(qū)域數(shù)值為1,灰色區(qū)域?yàn)?~1。在訓(xùn)練過程中,將得到的預(yù)測結(jié)果和mask相乘,可以把映射到原圖上負(fù)樣本點(diǎn)的預(yù)測值歸0,正樣本點(diǎn)保持不變。因此,只有映射到box的特征圖上的點(diǎn)才會進(jìn)行l(wèi)oss計(jì)算。

圖3 mask map示意圖
Calthch[16]行人檢測數(shù)據(jù)集,取自在城市環(huán)境中正常行駛的車輛,是一系列視頻數(shù)據(jù),總共包含了2300個行人,是行人檢測中常用的數(shù)據(jù)庫,規(guī)模較大。該數(shù)據(jù)集主要包含set00~set10這11個數(shù)據(jù)集以及整個數(shù)據(jù)集的注釋。本文實(shí)驗(yàn)由set00~set05六個數(shù)據(jù)集訓(xùn)練,由set06~set10五個數(shù)據(jù)集做測試。
硬件方面,訓(xùn)練機(jī)器配置Intel i7-4790K CPU;兩塊GeForce GTX 1080 GPU;8G內(nèi)存。軟件方面,系統(tǒng)采用發(fā)行版本為16.04正式版的Linux環(huán)境。搭建的實(shí)驗(yàn)平臺所使用的計(jì)算機(jī)軟件配置為MXnet 1.5.0深度學(xué)習(xí)框架,CUDA10.2英偉達(dá)運(yùn)算平臺。實(shí)驗(yàn)中深度網(wǎng)絡(luò)模型的訓(xùn)練和測試采用Python編程,使用3.7的版本編譯,模型的性能評估采用MATLAB編程。
本文方法訓(xùn)練時的參數(shù)設(shè)置如下:
(1)初始學(xué)習(xí)率為0.1,分別在300000,600000,900000次迭代的時候乘以0.1降低學(xué)習(xí)率;
(2)最大迭代次數(shù)1000000;
(3)Moment為0.9,使用SGD算法對損失函數(shù)進(jìn)行優(yōu)化;
(4)batch size設(shè)置為32;
(5)NMS[17]閾值設(shè)置為0.5。
本文采用MR(Miss Rate)-FPPI(False Positive Per Image)來衡量MRFP模型的性能,式(3)和式(4)分別表示MR和FPPI的含義,在MR-FPPI曲線中兩坐標(biāo)都是基于對數(shù)取得。最終得到的數(shù)值越低,表明其檢測效果越好。

本 文 選 擇 了FPDW[18]、ACF[19]、MultiSDP[20]、DBNMut[21]等算法與本文的算法MRFP做對比。圖4是MRFP方法在Caltech測試數(shù)據(jù)集上的檢測示例,圖5展示了不同算法在Caltech測試數(shù)據(jù)集上的檢測結(jié)果,MRFP檢測精度高于其他幾個算法。

圖4 MRFP方法在Caltech測試數(shù)據(jù)集上的檢測示例

圖5 不同行人檢測算法與MRFP在Caltech數(shù)據(jù)集上的比較結(jié)果
本文提出的MRFP模型是一種基于anchor-free深度學(xué)習(xí)的行人檢測方法。合理設(shè)計(jì)感受野和行人大小的占比關(guān)系,根據(jù)不同尺度感受野和不同尺度的行人比例,合理設(shè)計(jì)四個檢測分支,分別用于檢測不同尺度的行人。在行人檢測數(shù)據(jù)集Caltech上取得了較好的效果,表明了其合理性,但是該模型在復(fù)雜情況下以及人群密集的場景中依然存在誤檢漏檢情況,下一步將在該問題上進(jìn)行進(jìn)一步研究,以提高行人檢測的精度。