當前位置:
首頁 > 最新 > 行人檢測演算法

行人檢測演算法

導言

行人檢測是計算機視覺中的經典問題,也是長期以來難以解決的問題。和人臉檢測問題相比,由於人體的姿態複雜,變形更大,附著物和遮擋等問題更嚴重,因此準確的檢測處於各種場景下的行人具有很大的難度。在本文中,SIGAI將為大家回顧行人檢測演算法的發展歷程。

問題描述

行人檢測( Pedestrian Detection)一直是計算機視覺研究中的熱點和難點。行人檢測要解決的問題是:找出圖像或視頻幀中所有的行人,包括位置和大小,一般用矩形框表示,和人臉檢測類似,這也是典型的目標檢測問題。

行人檢測技術有很強的使用價值,它可以與行人跟蹤,行人重識別等技術結合,應用於汽車無人駕駛系統(ADAS),智能機器人,智能視頻監控,人體行為分析,客流統計系統,智能交通等領域。

由於人體具有相當的柔性,因此會有各種姿態和形狀,其外觀受穿著,姿態,視角等影響非常大,另外還面臨著遮擋 、光照等因素的影響,這使得行人檢測成為計算機視覺領域中一個極具挑戰性的課題。行人檢測要解決的主要難題是:

外觀差異大。包括視角,姿態,服飾和附著物,光照,成像距離等。從不同的角度看過去,行人的外觀是很不一樣的。處於不同姿態的行人,外觀差異也很大。由於人穿的衣服不同,以及打傘、戴帽子、戴圍巾、提行李等附著物的影響,外觀差異也非常大。光照的差異也導致了一些困難。遠距離的人體和近距離的人體,在外觀上差別也非常大。

遮擋問題。在很多應用場景中,行人非常密集,存在嚴重的遮擋,我們只能看到人體的一部分,這對檢測演算法帶來了嚴重的挑戰。

背景複雜。無論是室內還是室外,行人檢測一般面臨的背景都非常複雜,有些物體的外觀和形狀、顏色、紋理很像人體,導致演算法無法準確的區分。

檢測速度。行人檢測一般採用了複雜的模型,運算量相當大,要達到實時非常困難,一般需要大量的優化。

從下面這張圖就可以看出行人檢測演算法所面臨的挑戰:

早期的演算法使用了圖像處理,模式識別中的一些簡單方法,準確率低。隨著訓練樣本規模的增大,如INRIA資料庫、Caltech資料庫和TUD行人資料庫等的出現,出現了精度越來越高的演算法,另一方面,演算法的運行速度也被不斷提升。按照實現原理,我們可以將這些演算法可以分為基於運動檢測的演算法和基於機器學習的演算法兩大類,接下來分別進行介紹。

基於運動檢測的演算法

如果攝像機靜止不動,則可以利用背景建模演算法提取出運動的前景目標,然後利用分類器對運動目標進行分類,判斷是否包含行人。常用的背景建模演算法有:

高斯混合模型,Mixture of Gaussian model[1]

ViBe演算法[2]

幀差分演算法

SACON,樣本一致性建模演算法[3]

PBAS演算法[4]

這些背景建模演算法的思路是通過前面的幀學習得到一個背景模型,然後用當前幀與背景幀進行比較,得到運動的目標,即圖像中變化的區域。

限於篇幅,我們不在這裡介紹每一種背景建模演算法的原理,如果有機會,SIGAI會在後續的文章中專門介紹這一問題。

背景建模演算法實現簡單,速度快,但存在下列問題:

1.只能檢測運動的目標,對於靜止的目標無法處理

2.受光照變化、陰影的影響很大

3.如果目標的顏色和背景很接近,會造成漏檢和斷裂

4.容易受到惡劣天氣如雨雪,以及樹葉晃動等干擾物的影響

5.如果多個目標粘連,重疊,則無法處理

究其原因,是因為這些背景建模演算法只利用了像素級的信息,沒有利用圖像中更高層的語義信息。

基於機器學習的方法

基於機器學習的方法是現階段行人檢測演算法的主流,在這裡我們先介紹人工特徵+分類器的方案,基於深度學習的演算法在下一節中單獨給出。

人體有自身的外觀特徵,我們可以手工設計出特徵,然後用這種特徵來訓練分類器用於區分行人和背景。這些特徵包括顏色,邊緣,紋理等機器學習中常用的特徵,採用的分類器有神經網路,SVM,AdaBoost,隨機森林等計算機視覺領域常用的演算法。由於是檢測問題,因此一般採用滑動窗口的技術,這在SIGAI之前的公眾號文章「人臉檢測演算法綜述」,「基於深度學習的目標檢測演算法綜述」中已經介紹過了。

HOG+SVM

行人檢測第一個有里程碑意義的成果是Navneet Dalal在2005的CVPR中提出的基於HOG + SVM的行人檢測演算法[5]。Navneet Dalal是行人檢測中之前經常使用的INRIA數據集的締造者。

梯度方向直方圖(HOG)是一種邊緣特徵,它利用了邊緣的朝向和強度信息,後來被廣泛應用於車輛檢測,車牌檢測等視覺目標檢測問題。HOG的做法是固定大小的圖像先計算梯度,然後進行網格劃分,計算每個點處的梯度朝向和強度,然後形成網格內的所有像素的梯度方向分分布直方圖,最後匯總起來,形成整個直方圖特徵。

這一特徵很好的描述了行人的形狀、外觀信息,比Haar特徵更為強大,另外,該特徵對光照變化和小量的空間平移不敏感。下圖為用HOG特徵進行行人檢測的流程:

得到候選區域的HOG特徵後,需要利用分類器對該區域進行分類,確定是行人還是背景區域。在實現時,使用了線性支持向量機,這是因為採用非線性核的支持向量機在預測時的計算量太大,與支持向量的個數成正比。如果讀者對這一問題感興趣,可以閱讀SIGAI之前關於SVM的文章。

目前OpenCV中的行人檢測演算法支持HOG+SVM以及HOG+Cascade兩種,二者都採用了滑動窗口技術,用固定大小的窗口掃描整個圖像,然後對每一個窗口進行前景和背景的二分類。為了檢測不同大小的行人,還需要對圖像進行縮放。

下面是提取出的行人的HOG特徵:

HOG+AdaBoost

由於HOG + SVM的方案計算量太大,為了提高速度,後面有研究者參考了VJ[6]在人臉檢測中的分類器設計思路,將AdaBoost分類器級聯的策略應用到了人體檢測中,只是將Haar特徵替換成HOG特徵,因為Haar特徵過於簡單,無法描述人體這種複雜形狀的目標。下圖為基於級聯Cascade分類器的檢測流程:

圖中每一級中的分類器都是利用AdaBoost演算法學習到的一個強分類器,處於前面的幾個強分類器由於在分類器訓練的時候會優先選擇弱分類器,可以把最好的幾個弱分類器進行集成,所有隻需要很少的幾個就可以達到預期效果,計算會非常簡單,速度很快,大部分背景窗口很快會被排除掉,剩下很少一部分候選區域或通過後續的幾級分類器進行判別,最終整體的檢測速度有了很大的提升,相同條件下的預測時間只有基於SVM方法的十分之一。

ICF+AdaBoost

HOG特徵只關注了物體的邊緣和形狀信息,對目標的表觀信息並沒有有效利用,所以很難處理遮擋問題,而且由於梯度的性質,該特徵對噪點敏感。針對這些問題後面有人提出了積分通道特徵(ICF)[7],積分通道特徵包括10個通道:

6 個方向的梯度直方圖,3 個LUV 顏色通道和1 梯度幅值,見下圖,這些通道可以高效計算並且捕獲輸入圖像不同的信息。

在這篇文章里,AdaBoost分類器採用了soft cascade的級聯方式。為了檢測不同大小的行人,作者並沒有進行圖像縮放然後用固定大小的分類器掃描,而是訓練了幾個典型尺度大小的分類器,對於其他尺度大小的行人,採用這些典型尺度分類器的預測結果進行插值來逼近,這樣就不用對圖像進行縮放。因為近處的行人和遠處的行人在外觀上有很大的差異,因此這樣做比直接對圖像進行縮放精度更高。這一思想在後面的文章中還得到了借鑒。通過用GPU加速,這一演算法達到了實時,並且有很高的精度,是當時的巔峰之作。

DPM+ latent SVM

行人檢測中的一大難題是遮擋問題,為了解決這一問題,出現了採用部件檢測的方法,把人體分為頭肩,軀幹,四肢等部分,對這些部分分別進行檢測,然後將結果組合起來,使用的典型特徵依然是HOG,採用的分類器有SVM和AdaBoost。針對密集和遮擋場景下的行人檢測演算法可以閱讀文獻[15]。

DPM(Deformable Parts Models)演算法在SIGAI在之前的文章「基於深度學習的目標檢測演算法綜述」已經提到過。這是是一種基於組件的檢測演算法,DPM檢測中使用的特徵是HOG,針對目標物不同部位的組建進行獨立建模。DPM中根模型和部分模型的作用,根模型(Root-Filter)主要是對物體潛在區域進行定位,獲取可能存在物體的位置,但是是否真的存在我們期望的物體,還需要結合組件模型(Part-Filter)進行計算後進一步確認,DPM的演算法流程如下:

DPM演算法在人體檢測中取得取得了很好的效果,主要得益於以下幾個原因:

1.基於方向梯度直方圖(HOG)的低級特徵(具有較強的描述能力)

2.基於可變形組件模型的高效匹配演算法

3.採用了鑒別能力很強的latent-SVM分類器

DPM演算法同時存在明顯的局限性,首先,DPM特徵計算複雜,計算速度慢(論文[8]中針對DPM提出了多個加速的策略,有興趣的讀者可以參考);其次,人工特徵對於旋轉、拉伸、視角變化的物體檢測效果差。這些弊端很大程度上限制了演算法的應用場景,這一點也是基於人工特徵+分類器的通病。

採用經典機器學習的演算法雖然取得了不錯的成績,但依然存在下面的問題:

1. 對於外觀,視角,姿態各異的行人檢測精度還是不高

2.提取的特徵在特徵空間中的分布不夠緊湊

3.分類器的性能受訓練樣本的影響較大

4.離線訓練時的負樣本無法涵蓋所有真實應用場景的情況

基於機器學習的更多方法以參考綜述文章[10][18][19]。文獻[10]對常見的16種行人檢測演算法進行了簡單描述,並在6個公開測試庫上進行測試,給出了各種方法的優缺點及適用情況。

文獻[18]提出了Caltech數據集,相比之前的數據集,它的規模大了2個數量級。作者在這個數據集上比較了當時的主要演算法,分析了一些失敗的的原因,為後續的研究指出了方向。

文獻[19]也比較了10年以來的行人檢測演算法,總結了各種改進措施,並支持了以後的研究方向。

基於深度學習的演算法

基於背景建模和機器學習的方法在特定條件下可能取得較好的行人檢測效率或精確度,但還不能滿足實際應用中的要求。自從2012年深度學習技術被應用到大規模圖像分類以來[9],研究人員發現基於深度學習學到的特徵具有很強層次表達能力和很好的魯棒性,可以更好的解決一些視覺問題。因此,深度卷積神經網路被用於行人檢測問題是順理成章的事情。

從上圖可以看出,行人檢測主要的方法是使用人工特徵+分類器的方案,以及深度學習方案兩種類型。使用的分類器有線性支持向量機,AdaBoost,隨機森林。接下來我們重點介紹基於卷積網路的方案。

Cascade CNN

如果直接用卷積網路進行滑動窗口檢測,將面臨計算量太大的問題,因此必須採用優化策略。文獻[22]提出了一種用級聯的卷積網路進行行人檢測的方案,這借鑒了AdaBoost分類器級聯的思想。前面的卷積網路簡單,可以快速排除掉大部分背景區域:

後面的卷積網路更複雜,用於精確的判斷一個候選窗口是否為行人,網路結構如下圖所示:

通過這種組合,在保證檢測精度的同時極大的提高了檢測速度。這種做法和人臉檢測中的Cascade CNN類似。

JointDeep

在文獻[12]中,作者使用了一種混合的策略,以Caltech行人資料庫訓練一個卷積神經網路的行人分類器。該分類器是作用在行人檢測的最後的一級,即對最終的候選區域做最後一關的篩選,因為這個過程的效率不足以支撐滑動窗口這樣的窮舉遍歷檢測。

作者用HOG+CSS+SVM作為第一級檢測器,進行預過濾,把它的檢測結果再使用卷積神經網路來進一步判斷,這是一種由粗到精的策略,下圖將基於JointDeep的方法和DPM方法做了一一對應比較。

JonitDeep 網路結構

卷積網路的輸入並不是RGB通道的圖像,而是作者實驗給出的三個通道,第一個通道是原圖的YUV中的Y通道,第二個通道被均分為四個block,行優先時分別是U通道,V通道,Y通道和全0;第三個通道是利用Sobel運算元計算的第二個通道的邊緣。

另外還採用了部件檢測的策略,由於人體的每個部件大小不一,所以作者針對不同的部件設計了大小不一的卷積核尺寸,如下圖a所示,Level1針對比較小的部件,Level2針對中等大小的部件,Level3針對大部件。由於遮擋的存在,作者同時設計了幾種遮擋的模式。

(a)

(b)

SA-FastRCNN

文獻[13]提出了一種稱為SA-FastRCNN的方法,作者分析了Caltech行人檢測資料庫中的數據分布,提出了以下兩個問題:

1.行人尺度問題是待解決的一個問題

2.行人檢測中有許多的小尺度物體, 與大尺度物體實例在外觀特點上非常不同

作者針對行人檢測的特點對Fast R-CNN進行了改進,由於大尺寸和小尺寸行人提取的特徵顯示出顯著差異,作者分別針對大尺寸和小尺寸行人設計了2個子網路分別進行檢測。利用訓練階段得到的scale-aware權值將一個大尺度子網路和小尺度子網路合併到統一的框架中,利用候選區域高度估計這兩個子網路的scale-aware權值,論文中使用的候選區域生成方法是利用ACF檢測器提取的候選區域,總體設計思路如下圖所示:

SA-FastRCNN的架構如下圖所示:

這種scale-aware加權機制可以被認為是兩個子網路的soft-activation,並且最終結果總是可以通過適合當前輸入尺寸的子網路提升。

Faster R-CNN

文獻[16]分析了Faster R-CNN在行人檢測問題上的表現,結果表明,直接使用這種演算法進行行人檢測效果並不滿意。作者發現,Faster R-CNN中的RPN網路對提取行人候選區域是相當有效的,而下游的檢測網路表現的不好。作者指出了其中的兩個原因:對於小目標,卷積層給出的特徵圖像太小了,無法有效的描述目標;另外,也缺乏難分的負樣本挖掘機制。作者在這裡採用了一種混合的策略,用RPN提取出候選區域,然後用隨機森林對候選區域進行分類。這一結構如下圖所示:

DeepParts

文獻[21]提出了一種基於部件的檢測方案,稱為DeepParts,致力於解決遮擋問題。這種方案將人體劃分成多個部位,分別進行檢測,然後將結果組合起來。部位劃分方案如下圖所示:

整個系統的結構如下圖所示:

RepLoss

RepLoss[14]由face++提出,主要目標是解決遮擋問題。行人檢測中,密集人群的人體檢測一直是一個難題。物體遮擋問題可以分為類內遮擋和類間遮擋兩類。類內遮擋指同類物體間相互遮擋,在行人檢測中,這種遮擋在所佔比例更大,嚴重影響著行人檢測器的性能。

針對這個問題,作者設計也一種稱為RepLoss的損失函數,這是一種具有排斥力的損失函數,下圖為RepLoss示意圖:

RepLoss 的組成包括 3 部分,表示為:

其中L_Attr 是吸引項,需要預測框靠近其指定目標;L_RepGT 和 L_RepBox 是排斥項,分別需要當前預測框遠離周圍其它的真實物體和該目標其它的預測框。係數充當權重以平衡輔助損失。

HyperLearner

文獻[25]提出了一種稱為HyperLearner的行人檢測演算法,改進自Faster R-CNN。在文中,作者分析了行人檢測的困難之處:行人與背景的區分度低,在擁擠的場景中,準確的定義一個行人非常困難。

作者使用了一些額外的特徵來解決這些問題。這些特徵包括:

apparent-to-semantic channels

temporal channels

depth channels

為了將這些額外的特徵也送入卷積網路進行處理,作者在VGG網路的基礎上增加了一個分支網路,與主體網路的特徵一起送入RPN進行處理:

其他的基本上遵循了Faster R-CNN框架的處理流程,只是將anchor參數做了改動。在實驗中,這種演算法相比Faster R-CNN有了精度上的提升。

從上面的回顧也可以看出,與人臉檢測相比,行人檢測難度要大很多,目前還遠稱不上已經解決,遮擋、複雜背景下的檢測問題還沒有解決,要因此還需要學術界和工業界的持續努力。

參考文獻

[1]P. KaewTraKulPong and R. Bowden. An improved adaptive background mixture model for real-time tracking with shadow detection. in European Workshop on Advanced Video Based Surveillance Systems,(London, UK), September 2001.

[2]Barnich O, Van Droogenbroeck M. ViBe:a universal background subtraction algorithm for video sequences. IEEE Transactions on Image Processing, 2011, 20(6):1709-1724.

[3]H. Wang and D. Suter. A consensus-based method for tracking: Modelling background scenario and foreground appearance. Pattern Recognition, vol. 40, pp. 1091–1105, March 2007.

[4]M. Hofmann. Background segmentation with feedback: The pixelbased adaptive segmenter. In IEEE Workshop on Change Detection, 2012. 6, 7, 8

[5]N. Dalal, B. Triggs. Histograms of oriented gradients for human detection. in: Computer Vision and Pattern Recognition, San Diego, CA, June 20–25, 2005.

[6]M.Jones, P.Viola. Fast Multi-View Face Detection. Mitsubishi Electric Research Laboratories, Technical Report: MERL-2003-96, July 2003.

[7]P. Dolla′r, Z. Tu, P. Perona, and S. Belongie, 「Integral Channel Features,」 Proc. British Machine Vision Conf., 2009.

[8]J. Yan, Z. Lei, L. Wen, and S. Z. Li. The fastest deformable part model for object detection. In Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on, pages 2497–2504. IEEE, 2014. 5, 6

[9]Krizhevsky, A., Sutskever, I., and Hinton, G. E. ImageNet classification with deep convolutional neural networks. In NIPS, pp. 1106–1114, 2012

[10]Piotr Dollar, Christian Wojek, Bernt Schiele, Pietro Perona. Pedestrian Detection: An Evaluation of the State of the Art. 2012, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[11]http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/files/algorithms.pdf

[12]W. Ouyang and X. Wang. Joint deep learning for pedestrian detection. In ICCV, 2013. 3

[13]Jianan Li, Xiaodan Liang, ShengMei Shen, Tingfa Xu, and Shuicheng Yan. Scaleaware fast r-cnn for pedestrian detection. arXiv preprint arXiv:1510.08160, 2015.

[14]Xinlong Wang, Tete Xiao, Yuning Jiang, Shuai Shao, Jian Sun, Chunhua Shen. Repulsion Loss: Detecting Pedestrians in a Crowd.

[15]Bastian Leibe, Edgar Seemann, Bernt Schiele. Pedestrian detection in crowded scenes.2005, computer vision and pattern recognition.

[16]Liliang Zhang, Liang Lin, Xiaodan Liang, Kaiming He. Is Faster R-CNN Doing Well for Pedestrian Detection? 2016, european conference on computer vision.

[17]Pierre Sermanet, Koray Kavukcuoglu, Soumith Chintala, Yann Lecun. Pedestrian Detection with Unsupervised Multi-stage Feature Learning. 2013, computer vision and pattern recognition.

[18]Piotr Dollar, Christian Wojek, Bernt Schiele, Pietro Perona. Pedestrian detection: A benchmark. 2009, computer vision and pattern recognition.

[19]Rodrigo Benenson, Mohamed Omran, Jan Hendrik Hosang, Bernt Schiele. Ten Years of Pedestrian Detection, What Have We Learned? 2014, european conference on computer vision.

[20]Denis Tome, Federico Monti, Luca Baroffio, Luca Bondi, Marco Tagliasacchi, Stefano Tubaro. Deep convolutional neural networks for pedestrian detection 2016,Signal Processing-image Communication.

[21]Yonglong Tian, Ping Luo, Xiaogang Wang, Xiaoou Tang. Deep Learning Strong Parts for Pedestrian Detection. 2015, international conference on computer vision.

[22]A. Angelova, A. Krizhevsky, V. Vanhoucke, A. Ogale, and D. Ferguson

Real-Time Pedestrian Detection With Deep Network Cascades. BMVC 2015.

[23]P. Dollar, S. Belongie and P. Perona. The Fastest Pedestrian Detector in the West, BMVC 2010.

[24]Deep Learning Strong Parts for Pedestrian Detection. Yonglong Tian, Ping Luo, Xiaogang Wang, Xiaoou Tang. 2015, international conference on computer vision.

[25]Jiayuan Mao, Tete Xiao, Yuning Jiang, Zhimin Cao. What Can Help Pedestrian Detection? CVPR 2017.

[26]S Zhang, Rodrigo Benenson, Mohamed Omran, Jan Hendrik Hosang, Bernt Schiele.How Far are We from Solving Pedestrian Detection. 2016, computer vision and pattern recognition.


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 圖靈人工智慧 的精彩文章:

TAG:圖靈人工智慧 |