黃同愿,向國徽,楊雪姣
(重慶理工大學(xué) 計算機科學(xué)與工程學(xué)院, 重慶 400054)
目標(biāo)檢測是計算機視覺領(lǐng)域的重要研究內(nèi)容之一,它從給定圖像中檢測出特定類物體實例(例如“汽車”“飛機”等)[1],近年來引起了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。行人檢測作為目標(biāo)檢測的典型任務(wù),其發(fā)展歷程與目標(biāo)檢測一致,在大數(shù)據(jù)驅(qū)動發(fā)展的今天,機遇與挑戰(zhàn)并存[2-58]。行人檢測的目標(biāo)是在一張給定圖片或視頻幀中,精確定位出每一個在檢測范圍內(nèi)的行人。如果存在行人,給出該行人的空間范圍信息。行人檢測可以與行人跟蹤相結(jié)合應(yīng)用于輔助駕駛系統(tǒng)的視覺場景感知,并進一步對行人目標(biāo)進行測距和測速,計算碰撞時間TTC(Time to Collsion)。此外,行人檢測結(jié)合行人重識別后能廣泛應(yīng)用于智能視頻監(jiān)控和智能安保等領(lǐng)域。
作為無人駕駛的基礎(chǔ)任務(wù),無論是從數(shù)據(jù)集的發(fā)布、公開挑戰(zhàn)賽的舉辦,還是從各大頂會(CVPRICCVECCVIJCV等)和學(xué)術(shù)期刊的關(guān)鍵詞分布來看,行人檢測無疑都是重頭戲。目前,對行人檢測領(lǐng)域的綜述研究較少。例如,文獻[2,12-13]主要調(diào)研行人檢測的傳統(tǒng)算法,未涉及目前焦點的深度學(xué)習(xí)技術(shù);文獻[4,11]等因時間節(jié)點關(guān)系,并未談及近一兩年來的研究進展。在近兩年以深度學(xué)習(xí)技術(shù)為主導(dǎo)的目標(biāo)檢測領(lǐng)域快速發(fā)展背景下,行人檢測未再被作為單獨的方向綜合研究。然而,行人作為現(xiàn)實世界中形態(tài)和姿態(tài)最變化多端的特殊目標(biāo),是目標(biāo)檢測中最具挑戰(zhàn)的檢測任務(wù)。本文主要針對行人檢測在近兩年與深度學(xué)習(xí)技術(shù)結(jié)合的研究進展進行綜合討論,為該領(lǐng)域前沿綜合研究提供參考和依據(jù)。
社交媒體網(wǎng)絡(luò)和移動/可穿戴設(shè)備的普及導(dǎo)致了對分析可視化數(shù)據(jù)的需求越來越大。然而,移動/可穿戴設(shè)備極大地限制了計算能力、存儲空間,因此高效的對象檢測器至關(guān)重要。受成像條件、個體差異和外界干擾以及實驗誤差等因素的影響,行人檢測的速度和精度很難做到雙高,只能達到某種平衡。行人檢測面對的主要挑戰(zhàn)總結(jié)見圖1。
圖1 行人檢測的挑戰(zhàn)總結(jié)
理想的行人檢測模型應(yīng)滿足高精度和高效率要求。其中,精度包括定位精度和分類精度,效率可分為時間效率、存儲效率以及內(nèi)存效率。一般情況下,行人檢測的研究可以分為學(xué)術(shù)類研究和工程研究,不同的團體可能的側(cè)重點也不同。學(xué)術(shù)研究多注重檢測器的性能(即精度),而工程研究則把效率放在第一位,但不能犧牲太多的精度。
一般而言,視覺圖像中的行人會受到來自外界(如光照、天氣、環(huán)境等)和行人本身(姿態(tài)、大小、遮擋等)的影響,行人之間也會造成嚴(yán)重的干擾。例如,密集行人的區(qū)分和同一行人的整合(受遮擋物的影響,行人整體被切割成不相連通的塊)。在現(xiàn)實生活中,海報、模具等具有高干擾性的對象區(qū)分極具挑戰(zhàn)性,加之噪聲等的干擾則進一步提升了區(qū)分難度。為了應(yīng)對這些復(fù)合式的疊加干擾,行人檢測的模型必須具有高度的魯棒性和泛化能力,這種能力通常來自海量的可訓(xùn)練參數(shù),這就對行人檢測的效率提出了極高的要求。
在過去的幾十年中,對于行人檢測的相關(guān)研究成果較多,本文主要關(guān)注基于計算機視覺的算法和模型,一些典型的研究總結(jié)見表1。
表1 行人檢測相關(guān)經(jīng)典文章列表
早期的研究主要基于模板匹配和身體部件的思想[48]。在20世紀(jì)90年代以前,通用檢測器主要使用對象的幾何信息并設(shè)計先驗?zāi)P停恢?,機器學(xué)習(xí)的浪潮使得基于表現(xiàn)特征的幾何分類器成為研究的熱點,例如神經(jīng)網(wǎng)絡(luò)(neural network,NN)、支持向量機(support vector machine,SVM)和AdaBoost。1999年,具有尺度不變性的SIFT[49]特征的提出開啟了特征描述器的研究。特征檢測也從全局特征向局部特征演化,例如形狀上下文(shape context)[50]、方向梯度直方圖 (histogram of gradients,HOG)[51]、局部二值模式(local binary patterns,LBP)[52]等,使得分類器能更好地應(yīng)對行人這類尺度和形態(tài)多樣的對象。
特征表達的相關(guān)研究極大地促進了行人檢測的發(fā)展,幾何特征[14-16]、形狀特征[19-21]、動作特征[22-23]以及多種特征的融合[24]是研究的主流。在特征提取發(fā)展的同時,學(xué)習(xí)框架的研究也有不少成果。Tuzel 等[25]利用協(xié)方差矩陣計算局部特征作為對象描述符, Boost框架被修改后可用于黎曼流形,從而提高了性能。Maji等[51]提出了一種與直方圖交叉內(nèi)核近似的方法SVMs,允許大幅度加速,從而使非線性SVM能夠用于基于滑動窗口的檢測。
2008年,F(xiàn)elzenszwalb 等[52]描述了一種差異訓(xùn)練、多尺度、可變形的目標(biāo)檢測模型DPM。該模型在VOC挑戰(zhàn)賽中取得了2006年的最佳性能,并在2007年的20個項目中有10個超越最佳性能,Pedro Felzenszwalb也因此被VOC授予“終身成就獎”。DPM可以看做是HOG(histogrrams of oriented gradients)的擴展,它先計算梯度方向直方圖,然后用SVM訓(xùn)練得到物體的梯度模型。
多年來,手工提取的特征一直制約著行人檢測的發(fā)展。直到2012年,Krizhevsky等[18]應(yīng)用深度卷積神經(jīng)網(wǎng)絡(luò)(deep convolutional neural networks,DCNN)模型取得了ILSVRC的冠軍,從此開啟了基于深度學(xué)習(xí)的行人檢測新篇章。
深度卷積神經(jīng)網(wǎng)絡(luò)作為一種能自動直接從原始數(shù)據(jù)中提取抽象特征的特征提取器[3],在計算機視覺任務(wù)中取得了不少成果[4-10]。這類體系結(jié)構(gòu)能夠應(yīng)用在通用目標(biāo)分類、通用目標(biāo)檢測、特征匹配、立體匹配、場景識別、姿態(tài)估計、動作識別[11]等多項任務(wù)中,行人檢測也受益于DNN技術(shù)的發(fā)展。以DNN為基礎(chǔ)的深度學(xué)習(xí)技術(shù)擅長發(fā)現(xiàn)高維數(shù)據(jù)中錯綜復(fù)雜的結(jié)構(gòu),不需要太多的專業(yè)領(lǐng)域知識,從而降低了研究者的入門門檻。
隨著檢測技術(shù)的不斷進步和應(yīng)用場景的不斷拓展,行人檢測結(jié)果的表示方式也呈現(xiàn)多樣化,如基于更精準(zhǔn)像素級分類的實例分割形式。實例分割與語義分割的區(qū)別在于前者要區(qū)分類內(nèi)差異,即同種類別的不同個體用不同的掩碼標(biāo)識,而后者不需要區(qū)分,具體示例如圖2所示??梢钥闯觯盒腥藢嵗指畈粌H可以識別出每個行人,還能區(qū)分不同的個體,其相對于行人檢測的邊界框表示結(jié)果來說更精細?;谶吔缈蛐腥藱z測可以包含非行人(背景、其他個體等)部分,而行人實例分割則完全貼合行人真實邊緣。
圖2 行人識別、行人檢測、行人語義分割和行人實例分割示例圖
Benenson 等[52]提出了一種新的行人檢測器,速度和質(zhì)量都優(yōu)于最先進的檢測器,能有效處理不同的尺度,提高了檢測速度。Sermanet 等[35]采用多級特征、跨層連接等方法,將全局形狀信息與局部特征信息融合在一起,并應(yīng)用基于卷積稀疏編碼的無監(jiān)督方法在每個階段對過濾器進行預(yù)訓(xùn)練。P.Doll’ar等[54]通過對自然圖像的統(tǒng)計分析,證明了跨尺度預(yù)測的可靠性。R-CNN系列、SSD、Mask-RCNN以及YOLO系列[55-63]等通用對象檢測器的研究也促使了行人檢測的發(fā)展。Zhang等在文獻[44]中通過改進Faster R-CNN,并在共享的高分辨率的卷積特征圖上使用改進的隨機森林算法驗證了通用目標(biāo)檢測器應(yīng)用于行人檢測的可能性。目前,在著名行人檢測數(shù)據(jù)集Caltech上性能最好的是Wang等[70]應(yīng)用邊界框回歸損失的方法,其在FPPI值為9時可達4.0%的對數(shù)平均誤檢率。在更加復(fù)雜的數(shù)據(jù)集KITTI上,行人Easy、Moderate和Hard的最好結(jié)果(AP)分別是87.81% 、78.29% 和74.46%。
在深度學(xué)習(xí)的背景下,完善而標(biāo)準(zhǔn)的數(shù)據(jù)集在行人檢測的研究中至關(guān)重要。數(shù)據(jù)集不僅可以用來訓(xùn)練模型的參數(shù),評價模型的優(yōu)劣,通常還作為一種挑戰(zhàn)賽的形式促進領(lǐng)域研究的發(fā)展。本文調(diào)查和統(tǒng)計的能用于行人檢測的常見數(shù)據(jù)集見表2。
數(shù)據(jù)集分為兩類:第一類是諸如Caltech這種專用于行人檢測的數(shù)據(jù)集,其他非行人類不進行標(biāo)注;另一類是類似COCO和BDD這樣的數(shù)據(jù)集,標(biāo)注文件中不僅對行人進行標(biāo)注,其他類如車、飛機等也包括在內(nèi)。兩類數(shù)據(jù)集的共同點是:單類行人的標(biāo)注樣本較多,可以將行人樣本提取出來用于行人檢測的訓(xùn)練。
在此,特別說明EuroCity數(shù)據(jù)集。該數(shù)據(jù)集拍攝于歐洲的31個城市,標(biāo)注類別為行人,同時對自行車、手推車、摩托車、滑板車、三輪車和輪椅上的行人進行了區(qū)別標(biāo)注,在47 300張圖像中手動標(biāo)記了238 200個行人實例,平均每張圖片包含5.04個行人。特別地,區(qū)分了海報、廣告和商店櫥窗的模特等,額外信息如鏡頭光暈、運動模糊、雨滴或在相機前面的雨刷等也作為圖片標(biāo)注。更多詳細的信息參考文獻[64]。
表2 能用于行人檢測的常見數(shù)據(jù)集
評價檢測器性能的指標(biāo)通常有對數(shù)平均漏檢率(log average miss-rate,LAMR)、幀率(frame per second,F(xiàn)PS)、查準(zhǔn)率(average precision,AP)和查全率(recall)。幀率表征模型的效率、查準(zhǔn)率、對數(shù)平均漏檢率和查全率反映模型的精度。對于行人檢測而言,給定一張測試圖片模型的輸出為{bi,ci,pi}i。bi為檢測框(bounding box,BBOX)的信息,通常由矩形框的中心點坐標(biāo)(x,y)和寬、高w,h組成,也可以由矩形框的left、top、right、bottom表示。ci是類別信息,pi表示該矩形框的對象屬于ci的條件概率。對于一個檢測框,當(dāng)它滿足下列條件時,可以視為一個真正例(true positive,TP):
1) 預(yù)測的類別信息c與標(biāo)簽的類別相同。
2) 預(yù)測框與某個真實框之間的IOU(intersection over union)大于一定的閾值ε,
(1)
其中:bp為預(yù)測框,bg為真實框,area(bp∩bg)表示預(yù)測框與真實框相交部分的面積,area(bp∪bg)表示相并的面積。當(dāng)2個框完全重疊且大小一致時,IOU值為1;當(dāng)2個框無交叉部分時,IOU=0,說明位置預(yù)測完全錯誤,所以IOU的取值范圍是0~1。閾值ε為超參數(shù),通常設(shè)置其值為0.5。不是真正例的框,都當(dāng)作假正例(false positive,F(xiàn)P)。假正例的個數(shù)越多說明誤檢率越大。類別概率p通常也和超參數(shù)β進行比較,大于閾值則認為屬于該類,否則屬于其他類,β的取值通常為0.5。
一般情況下可通過繪制相對每張圖像誤檢數(shù)(false positive per image,F(xiàn)PPI)的漏檢率(miss rate,MS) 曲線或者P-R曲線來動態(tài)評估模型性能。
(2)
(3)
其中,給定閾值c,F(xiàn)N(c)表示假反例(false negative,F(xiàn)N)的個數(shù),TP(c)表示真正例的個數(shù),則可以定義對數(shù)平均漏檢率為:
fppi(c)≤f
(4)
9 FPPI是參考[10-2,100]區(qū)間的等間隔分布,對于每一個FPPI,統(tǒng)計其對應(yīng)的MR。例如,常見模型在EuroCity數(shù)據(jù)集的MR-FPPI圖如圖3所示。
圖3 常見模型EuroCity的MR-FPPI性能表現(xiàn)
同樣地,計算AP:
(5)
其中,給定閾值c,召回率re(c)為:
(6)
查準(zhǔn)率AP為
(7)
選取不同的re,計算其對應(yīng)的AP則可得到P-R曲線。
結(jié)合之前分析的行人檢測中的主要問題和挑戰(zhàn),對影響行人檢測的子問題展開分析。例如檢測框架、特征表達、損失函數(shù)、上下文信息和訓(xùn)練策略等。
目前基于深度學(xué)習(xí)的檢測框架可以分為兩類:
1) 兩階段檢測框架:包括生成候選區(qū)域和區(qū)域分類兩個階段。
2) 一階段檢測框架:分類和檢測一步到位,不需要預(yù)先生成候選區(qū)域。
一般而言,一階段的檢測框架相對于兩階段的檢測框架在模型檢測速度上較有優(yōu)勢,但精度不足。典型的YOLO V3網(wǎng)絡(luò)在COCO數(shù)據(jù)集上mAP達到57.9%的同時,速度能保持20FPS,是經(jīng)典的通用對象檢測框架,許多變體網(wǎng)絡(luò)也應(yīng)用在了行人檢測中[42-43,65-66]。
基于行人檢測框架通常由通用目標(biāo)檢測框架改進而來。典型的兩階段和一階段檢測框架情況見表3和表4。
表3 典型2階段檢測框架列表
表4 典型1階段檢測框架列表
基于深度學(xué)習(xí)的檢測框架通常使用VGG,AlexNet、GooleNet、ResNet50、RestNet101、DarkNet、MobileNet[18,26-31]等作為骨干網(wǎng)絡(luò)提取特征。基于滑動窗口的策略需要對每個像素均勻處理,在多個尺度的不同寬高比上窮舉搜索進一步增加搜索空間。為了解決不同尺度的問題,通常的做法是采用圖像金字塔的方法,例如檢測器[32]。但這種方案的測試時間和存儲開銷都極大??紤]到CNN提取的特征具有如下特性:
1) 低層的特征具有較小的感受野,對于小尺度的目標(biāo)有更敏感的位置和細節(jié)信息,但是缺少語義信息。
2) 高層的特征感受野較大,語義信息更豐富,對光照、形變等的魯棒性更高,但由于幾何信息的丟失,導(dǎo)致對小目標(biāo)檢測的效果較差。
在行人檢測的具體應(yīng)用中,大部分行人目標(biāo)為小目標(biāo),因此融合低層的具有較小感受野的特征更有利于行人目標(biāo)檢測,尤其是針對距離較遠的行人效果更好。這種層次性的特征正好內(nèi)在地形成了特征金字塔的分布,加之不同尺度對象的檢測需求,利用DNN多中間層特征的檢測器成為目前行人檢測的主流方法。對于這種多層次的特征使用方式一般有3種:
1) 使用多個DNN的層次特征組合進行檢測,典型的網(wǎng)絡(luò)如HyperNet和ION等[33-34]。
2) 在DNN的多層進行檢測。如SSD、MSCNN、RBFNet和DSOD[36-39]等網(wǎng)絡(luò)利用不同層次的特征來檢測不同大小的目標(biāo)。
3) 混合上述兩種方法,如SharpMask、DSSD、FPN,YOLO V3[40-43]等,以YOLO V3為例,其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
參照圖4,YOLO V3采用416×416的三通道彩色原圖作為輸入,首先經(jīng)過一系列卷積塊和殘差塊進行32倍下采樣,得到13×13的特征圖,在此特征圖上預(yù)測輸出第1批檢測結(jié)果。此時對應(yīng)大尺度的anchor,能夠檢測大目標(biāo),接著將此特征圖反卷積上采樣至26×26,與前面下采樣后同等大小的特征圖進行跨通道融合,在此基礎(chǔ)上預(yù)測輸出第2批結(jié)果。第3次上采樣至52×52后進行預(yù)測,對應(yīng)小尺度anchor能夠較好地檢測小目標(biāo)。類似YOLO V3這種綜合多個層次特征檢測的方法是現(xiàn)階段檢測框架的主流,對于其他網(wǎng)絡(luò)的設(shè)計有很強的借鑒意義。針對行人檢測還可以更改anchor的分配機制,分配更多的anchor給低層特征,同時鑒于行人大部分0.41的寬高比,可以微調(diào)anchor值以進一步提升效果。
在DNN檢測框架的設(shè)計中,目前越來越注重如何有效地利用上下文信息。上下文信息可以分為語義上下文、空間上下文和尺度上下文3類。從應(yīng)用范圍又可以歸納為全局上下文和局部上下文信息。語義上下文描述了一個對象處在某個特定場景的可能性,例如:坦克不可能在天上跑,魚只能在水中游等;空間上下文限定了目標(biāo)只能出現(xiàn)在特定的位置,例如:基于零部件的檢測限定,頭只能出現(xiàn)在脖子的上面;尺度上下文檢查檢測對象與它周圍物體的大小關(guān)系是否正常,例如:一個正常的行人是不會比緊挨著他的汽車大的。
Chen等[67]設(shè)計了多階上下文產(chǎn)生器(multi-order contextualco-occurrence,MOCO)明確地模擬上下文。Zeng等[68]提出一種新的DNN模型,該模型能夠通過反向傳播的幾個階段聯(lián)合訓(xùn)練多階段分類器,通過訓(xùn)練策略的特定設(shè)計,可以將其作用在上下文信息以支持下一階段訓(xùn)練的決策。為了處理遮擋和復(fù)雜背景的干擾,Wang等[66]提出了部分和上下文網(wǎng)絡(luò)(part and context network,PCN),采用局部競爭機制進行自適應(yīng)的上下文規(guī)模選擇。Yu等[69]提出IOU損失,使真實框與預(yù)測框之間的重疊最大化。
損失函數(shù)的設(shè)計和選擇也影響著行人檢測的研究。在預(yù)測行人的定位信息時,通常會把它當(dāng)作一個回歸問題。在RCNN中針對候選區(qū)域坐標(biāo)的歐氏距離訓(xùn)練了線性回歸模型。在Fast RCNN中,提出了SmoothL1損失替換了歐式距離。在Faster RCNN中,RPN的提出使邊界回歸使用了2次。為了解決遮擋和密集的行人檢測,Wang等[70]基于目標(biāo)的吸引力和周圍目標(biāo)的排斥力假設(shè)提出了排斥損失(repulsion loss)。對于樣本類別不均衡帶來的問題,Lin等通過重新設(shè)計標(biāo)準(zhǔn)的交叉熵損失來解決,從而降低分配給分類良好的樣本的損失。FocalLoss的使用在現(xiàn)有檢測器的基礎(chǔ)上提升了一定的檢測精度。
訓(xùn)練DNN的首要條件是要有大量的標(biāo)注樣本。標(biāo)注的質(zhì)量要盡可能地高,訓(xùn)練樣本的多樣性和分布也同樣重要。行人檢測或目標(biāo)檢測不同于圖像分類任務(wù),標(biāo)注的復(fù)雜度要高很多?,F(xiàn)階段,如ImageNet和 Places數(shù)據(jù)集等是擁有大量分類任務(wù)的數(shù)據(jù)集,因此,通常的訓(xùn)練策略是在ImageNet或Places上預(yù)訓(xùn)練骨干網(wǎng)絡(luò),以此作為檢測網(wǎng)絡(luò)的特征提取器,然后再在特定檢測任務(wù)如行人檢測數(shù)據(jù)集上進行微調(diào),訓(xùn)練其定位功能。這是遷移學(xué)習(xí)的典型應(yīng)用,類似的成果有很多,如RPB+BF[70]、SA-Fast RCNN[71]、SDS-RCNN[17]等。
為了得到更豐富的特征表達,數(shù)據(jù)增強通常也作為訓(xùn)練行人檢測模型中必不可少的手段。數(shù)據(jù)增強一般包括裁剪、旋轉(zhuǎn)、翻轉(zhuǎn)、縮放、調(diào)整寬高比、更改曝光、色調(diào)和對比度等手段。更復(fù)雜的做法還涉及背景切換、環(huán)境遷移、虛擬目標(biāo)等,如原始圖像加霧、雨天效果等。
對于候選區(qū)域生成算法的研究也有不少代表。Chavali等在文獻 [47]中全面評估了已有各種算法,并發(fā)布工具箱集成了主流的算法實現(xiàn)。Hosang等提出一種新的度量標(biāo)準(zhǔn)——平均召回率AR,用以更好地選擇各種區(qū)域推薦算法[48]。其他一些研究則涉及了對非極大值抑制(nonmaximum suppression,NMS)算法的改進[53,45-48]。
行人檢測是通用對象檢測中一個典型且最具挑戰(zhàn)性的問題,受到了社會各界的廣泛關(guān)注。雖然深度學(xué)習(xí)的發(fā)展極大地促進了行人檢測的進步,但針對復(fù)雜場景和特殊環(huán)境的行人檢測仍有待提高。目前亟需解決的問題是需要更加豐富的數(shù)據(jù)集和更加高效的特征提取器。對于數(shù)據(jù)集來說,目前標(biāo)準(zhǔn)的大型數(shù)據(jù)集都基于國外的環(huán)境和場景,這在一定程度上影響了相關(guān)研究的進展。國內(nèi)數(shù)據(jù)庫在大型行人目標(biāo)檢測數(shù)據(jù)集的構(gòu)建上還有很多發(fā)展空間。輕量化模型有利于設(shè)計高效的特征提取器,但精度的損失如何彌補也是未來研究的重點。綜上,行人檢測仍是一個機遇與挑戰(zhàn)并存的課題。