劉博文 彭祝亮 范程岸



摘 ? 要:Faster Rcnn是目標檢測領域中精確度較高、使用范圍較廣的一個經典算法,而Cascade Rcnn是借鑒Faster Rcnn改進的。文章將Cascade Rcnn的方法應用于行人檢測中,利用深層卷積神經網絡提取圖像特征,通過RPN提取可能含有行人的區域,利用多層級聯的檢測器對目標區域進行判別和分類,在數據集中進行了檢測驗證。實驗結果表明,相比基于Faster-rcnn的行人檢測方法,在測試集上檢測準確度達到了66.2%,其檢測效果更好。
關鍵詞:行人檢測;深度學習;目標檢測;深層卷積神經網絡
行人檢測算法一般分為基于背景建模、基于輪廓建模、基于底層特征和基于統計學習4大類。傳統方法里面比較好的是NAVNEET D等[1]提出的用梯度方向直方圖(Histogram of Oriented Gradient,HOG)特征描述,并采用與支持向量機相結合的策略,使得行人檢測效果取得了重大的突破。后來基于HOG算法改進的DPM算法進一步提高了行人檢測的精確度,改善了行人遮擋的問題。傳統的行人檢測方法有以下幾個缺點:(1)使用底層特征,對行人特征的表達能力不足。(2)行人的特征可分性比較差,導致分類錯誤率較高。(3)行人的場景比較復雜,一般只能針對某些特定的場景,但是到了另外一個場景檢測效果就不好。
深度學習強大的特征學習能力,使得基于深度學習的目標檢測算法在目標檢測領域中占據了主導的地位。目前基于深度學習的目標檢測算法有兩大類:一類是以Faster R-CNN[2]為代表的基于區域建議的目標檢測算法,如SPP-Net[3],Fast R-CNN[4]等。另一類是以YOLOv3[5]為代表的基于回歸的目標檢測算法,如SSD[6],RetinaNet[7]等。由于行人檢測任務對精確度要求比較高,所以,大部分研究人員使用區域建議的目標檢測算法,其中Faster R-CNN算法在行人檢測中廣泛應用,精確度非常高,實際應用效果比起傳統方法要好很多。
本文是基于Cascade R-CNN[8]模型的,與Faster R-CNN做對比試驗,數據是自制的數據集,使用靜態行人數據集,其中很大一部分都是在游泳池背景下的行人。
1 ? ?Cascade R-CNN介紹
1.1 ?算法簡述
Cascade Rcnn網絡跟Faster Rcnn網絡很相似,主要分成兩步,首先是定位目標的位置,然后對目標進行分類。具體步驟:首先,輸入一張圖片,通過特征提取網絡得到圖像的特征圖;然后,區域生成網絡(Region Proposal Network,RPN)在特征圖上定位候選目標,通過級聯不同的IOU閾值檢測模型挑選對應質量的樣本進行訓練和回歸。因此,Cascade Rcnn與Faster Rcnn的不同之處為前者級聯了幾個檢測模型,后者只有一個檢測模型。每個檢測模型都是基于不同IOU的正負樣本訓練得到,并且前一個檢測模型的輸出是后一個檢測模型的輸入,越靠后的檢測分支其檢測的政府樣本IOU越不斷提升,導致每個檢測模型的IOU盡量與輸入proposal的IOU接近,讓每一個檢測模型都專注于檢測IOU在某一范圍內的proposal,從而提高檢測的精度。
1.2 ?網絡結構
如果使用Faster Rcnn網絡的VGG16去提取特征,會導致存在一個很大的感受野,不利于檢測小物體,但是在行人檢測里面,圖片中的行人通常是比較小的,所以,用VGG16對于小物體進行檢測的效果并不好。
為了克服VGG16對小物體檢測不好的缺陷,選用ResNet50和FPN相結合的網絡結構去提取特征。ResNet網絡主要通過殘差學習來解決深層網絡訓練出現的退化問題,能很好地解決梯度消失的問題。FPN網絡主要是從網絡不同層抽取不同尺度的特征進行預測,能提取足夠底層的特征,而且底層的特征對于檢測小物體是有幫助的。
1.3 ?RPN網絡
RPN的輸入是特征提取網絡提取出來的特征圖,輸出是目標區域候選框的集合。RPN網絡主要是在特征圖上利用滑動窗口通過3×3的卷積后,得到一個數目是256的特征圖,尺寸和輸入的特征圖相同。具體的原理為一種映射的關系,特征圖是一個錨點會產生k個框(一般k=9),然后映射到原圖也會有k個框,這k個框可能會覆蓋研究人員想要檢測的目標??梢钥闯鯮PN網絡在提取候選框的效率上是非常高的,比一般的傳統方法高很多。
1.4 ?級聯網絡
Cascade Rcnn最核心的部分是用級聯網絡的檢測模型去訓練。由于每個檢測模型都是基于不同IOU的正負樣本訓練得到,前一個檢測模型的輸出作為后一個檢測模型的輸入,越往后的檢測模型其界定的正負樣本IOU閾值越不斷提升,反過來也能使RPN網絡輸出更優質的候選框,從而減少假正樣本出現的次數,提高檢測網絡的精確度。
2 ? ?實驗與結果分析
2.1 ?數據集
實驗的訓練樣本主要是來自于游泳池的監控視頻,按照voc2007數據集的要求進行分配訓練集、測試集和驗證集,每張圖片中行人個數有1~30人不等,包含各種尺度。
2.2 ?訓練
本文的實驗是在Pytorch框架下進行的,操作系統是Ubuntu18.04,硬件是CPU為i7-7820x,顯卡是NVIDIA RTX2080Ti,內存為32 G。
訓練的時候,由于初始數據集圖片偏少,所以研究人員對數據集進行數據增廣。采用3層級聯和Faster Rcnn作對比,3層級聯的IOU分別設置為0.5,0.6和0.7。用的是SGD優化器,學習率為0.02,momentum是0.9,weight_decay是0.000 1。
2.3 ?實驗結果分析
基于Cascade Rcnn模型改進的算法在游泳池下行人檢測的結果如表1所示,可看出,基于Cascade Rcnn改進的模型的結果是平均精確度AP為66.2%?;赩GG16的模型的Faster Rcnn在此數據集上的測試結果是平均精確度AP為48.1%。從上面的實驗結果可以得到Cascade Rcnn在PFN和ResNet50網絡結構各方面表現更加優異,尤其在平均精確度AP上有著18.1%的提升。
Cascade Rcnn+FPN+ResNet50的實驗效果如圖1所示,對比試驗Faster Rcnn的試驗效果如圖2所示。用基于Cascade Rcnn改進的模型精確度非常高,在比較復雜的夜晚環境下的游泳池去檢測行人,其精確度也是比Faster Rcnn高很多,且漏檢率少。尤其是對比圖1和圖2中右上角和左上角的遠距離行人檢測效果,可以看到在右上角和左上角,由于距離比較遠、水面上環境比較復雜以及反光,導致行人在圖片上看上去比較小,使得基于VGG16的Faster Rcnn會丟失該部分的信息導致漏檢,因此圖1的模型檢測效果明顯好于圖2的模型。從上述描述可總結得到:基于Cascade Rcnn改進的模型對于小物體的檢測以及復雜場景的檢測效果很好。
[參考文獻]
[1]NAVNEET D,BILL T.Histograms of oriented gradients for human detection[C].Las Vegas:IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2005.
[2]SHAOQING R,KAIMING H,ROSS G,et al.Faster R-CNN:towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2015(6):1137-1149.
[3]KAIMING H,XIANGYU Z,SHAOQING R,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2014(9):1904-1916.
[4]ROSS G.Fast R-CNN[C].Santiago:IEEE International Conference on Computer Vision,2015.
[5]REDMON J,FARHADI A.YOLOv3:an incremental improvement[J].Computer Vision and Pattern Recognition,2018(4):511-520.
[6]LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot multibox detector[J].Computer Vision and Pattern Recognition,2015(10):500-510.
[7]LIN T Y,GOYAL P,GIRSHICK R,et al.Focal loss for dense object detection[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2017(99):2999-3007.
[8]CAI Z,VASCONCELOS N.Cascade R-CNN:delving into high quality object detection[J].Computer Vision and Pattern Recognition,2017(6):798-802.
Abstract:Faster Rcnn is a classic algorithm with high accuracy and wide range of target detection, Cascade Rcnn is improved by using Faster Rcnn. This paper applies Cascade Rcnns method to pedestrian detection, uses deep convolutional neural network to extract image features, and extract areas that may contain pedestrians by RPN. The region uses a multi-level cascaded detector to discriminate and classify the target area, and performs verification in the data set. The experimental results show that compared with the Faster-rcnn-based pedestrian detection method, the detection accuracy on the test set reaches 66.2%, and the detection effect is better.
Key words:pedestrian detection; deep learning; target detection; deep convolutional neural network