陳文云 覃煥昌
百色學(xué)院 信息工程學(xué)院 廣西 百色 533000
近三十年來,隨著反向傳播算法的發(fā)明[1]、卷積神經(jīng)網(wǎng)絡(luò)技術(shù)的問世[2-4]、計(jì)算機(jī)運(yùn)算速度和存儲(chǔ)技術(shù)不斷深化,推動(dòng)計(jì)算機(jī)視覺技術(shù)水平不斷提高,對(duì)象檢測(cè)技術(shù)是其最基礎(chǔ)、最重要、最具挑戰(zhàn)性的技術(shù)之一。對(duì)象檢測(cè)技術(shù)是圖像識(shí)別和理解的關(guān)鍵技術(shù),其通過對(duì)圖片中的各區(qū)域、各層特征的提取,通過機(jī)器學(xué)習(xí)檢測(cè)出圖片中各對(duì)象及其位置和關(guān)聯(lián)。
對(duì)象檢測(cè)技術(shù)[5]首先選定圖像中某一特定位置,然后對(duì)該區(qū)域圖像進(jìn)行識(shí)別、分類,反復(fù)進(jìn)行可以找出圖像中所有對(duì)象及其位置,再對(duì)各對(duì)象的關(guān)聯(lián)性進(jìn)行分析,以完成對(duì)整張圖像的理解。其已廣泛地應(yīng)用于日常生活中,譬如人臉檢測(cè)與識(shí)別[6-7],行人檢測(cè)[8],醫(yī)學(xué)上的人體骨架檢測(cè)[9],圖像分類[10-11],人類行為分析[12]和自動(dòng)駕駛[13-14]等。
傳統(tǒng)的對(duì)象檢測(cè)技術(shù)由區(qū)域推薦、特征提取和對(duì)象分類等部分組成。
不同對(duì)象在圖像中出現(xiàn)的位置不同、大小以及比例也不同,用不同大小和不同尺寸比例的候選滑動(dòng)窗口去掃描圖像是必要的,從而篩選出最佳的區(qū)域推薦。巨量的窮舉候選滑動(dòng)窗口會(huì)消耗大量的計(jì)算資源,同時(shí)會(huì)帶來冗余候選窗口。如果過少的候選滑動(dòng)窗口數(shù)量,可能找不到最佳滑動(dòng)窗口。
為了識(shí)別滑動(dòng)窗口中的對(duì)象,必須對(duì)窗口中能代表圖像的結(jié)構(gòu)特征進(jìn)行提取,對(duì)這些特征的表示是通過模擬外部刺激在大腦神經(jīng)元中產(chǎn)生的激勵(lì)[20]來完成的。常采用的先進(jìn)特征提取技術(shù)有:比例無關(guān)的特征變換[20],方向梯度直方圖HOG[21],哈爾特征Haar-like[22]等。但現(xiàn)實(shí)應(yīng)用中對(duì)象的外觀、光照條件和背景的巨大差異,通過人工找到一個(gè)完美的、適合所有場(chǎng)景、所有對(duì)象的特征是極其困難的。
在提取的特征的基礎(chǔ)上,需要找到一個(gè)強(qiáng)有力的分類器來區(qū)分在滑動(dòng)窗口中的對(duì)象歸屬某一特定種類,常采用的分類器有:支持向量機(jī)SVM[23],AdaBoost[24],DPM[25]等。
傳統(tǒng)的對(duì)象檢測(cè)技術(shù)以滑動(dòng)窗口為基礎(chǔ),生成冗余低效的、人工定義的、淺層局部的特征描述和淺層學(xué)習(xí)模型為主要特征,無法獲取圖像中對(duì)象的深層次特征并完成深層學(xué)習(xí),很快就遇到了識(shí)別率提升的瓶頸[15]。深層神經(jīng)網(wǎng)絡(luò)DNN[11,26]通過自動(dòng)提取和學(xué)習(xí)深層特征,打破了這一僵局,實(shí)現(xiàn)各層級(jí)特征自動(dòng)提取,取消人工特征定義[27]。
新型對(duì)象檢測(cè)技術(shù)能在圖像中定位、識(shí)別特定的一個(gè)或多個(gè)已知對(duì)象。定位可以通過邊框(bounding box)來表示,識(shí)別就是對(duì)邊框中對(duì)象進(jìn)行分類。根據(jù)其技術(shù)特點(diǎn)可將其分為兩類:第一種技術(shù)是基于區(qū)域推薦的對(duì)象檢測(cè),與傳統(tǒng)的圖像理解技術(shù)類似,首先進(jìn)行區(qū)域推薦,再將推薦區(qū)域的圖像進(jìn)行識(shí)別和分類,典型代表有R-CNN[15],fast R-CNN[16],faster R-CNN[17],SPP-net[28],R-FCN[29],F(xiàn)PN[30]等,與傳統(tǒng)技術(shù)主要區(qū)別是取消了特征的人工定義;第二種技術(shù)是基于回歸的對(duì)象檢測(cè),它將對(duì)象檢測(cè)與分類識(shí)別過程視為回歸問題,采用統(tǒng)一的框架一并完成,這類框架主要有YOLO[18],SSD[19],YOLOv2[31],DSSD[32]等。
基于區(qū)域推薦的對(duì)象檢測(cè)技術(shù)與人腦觀察物體的過程類似,先粗略掃描整個(gè)物體的概貌,再仔細(xì)關(guān)注感興趣的區(qū)域RoI。這類框架主要有如下幾種:
圖1 R-CNN信息流圖
R-CNN:通過采用選擇搜索算法[33]來快速提供精確的推薦區(qū)域,并在推薦區(qū)域中應(yīng)用CNN提取深層次的高維(4096維)特征表示,然后利用線性SVM分類器對(duì)區(qū)域特征打分,最后在貪婪非最大抑制算法作用下對(duì)邊框BoundingBox進(jìn)行回歸,從而得到最優(yōu)的邊框[15],從而識(shí)別出圖片中所有對(duì)象及其邊框。對(duì)比結(jié)果顯示該框架比當(dāng)時(shí)mAP最好結(jié)果提高了30%左右,其信息流圖如圖1所示。
圖2 SPP-net架構(gòu)
SPP-net:所有CNN最后都需要全連接層來匯總所有特征圖中的特征信息,而全連接層只會(huì)接收固定大小的輸入,故在R-CNN模型中需要對(duì)推薦區(qū)域進(jìn)行裁剪,從而會(huì)導(dǎo)致邊框的不準(zhǔn)確。為此,空間金字塔匹配SPM算法[34-35]被用于在卷積層和全連接層之間構(gòu)建空間金字塔池化層SPP[28],從而生成全連接層所需要的輸入特征尺寸大小。其提高邊框預(yù)測(cè)的準(zhǔn)確率的同時(shí),還能提高對(duì)象檢測(cè)的效率,架構(gòu)如圖2所示
圖3 Fast R-CNN架構(gòu)
Fast R-CNN:盡管SPP層能提高R-CNN的精度和效率,但是它還是采用單一管道、串行、多任務(wù)方式來完成所有處理,導(dǎo)致額外的內(nèi)存花銷而且SPP的網(wǎng)絡(luò)微調(diào)算法不能影響到之前的卷積層。Fast R-CNN通過簡(jiǎn)化SPP層為一層,并在全連接層后引入了兩個(gè)孿生的分別處理分類和邊框回歸的輸出層,并將所有參數(shù)進(jìn)行端到端多任務(wù)損失優(yōu)化[16],進(jìn)而進(jìn)一步提高對(duì)象檢測(cè)和分類的精度和效率,其架構(gòu)如圖3所示。
圖4 RPN的架構(gòu)
Faster R-CNN: 主要?jiǎng)?chuàng)新是采用了區(qū)域推薦網(wǎng)絡(luò)RPN[17,36],RPN通過向?qū)ο髾z測(cè)網(wǎng)絡(luò)分享全圖像的卷積特征圖來為其實(shí)現(xiàn)特征提取共享計(jì)算,幾乎無成本的去掉了Fast R-CNN中耗時(shí)的區(qū)域推薦處理;引入k個(gè)錨框分別對(duì)應(yīng)k個(gè)區(qū)域推薦,每個(gè)錨框與RPN中滑動(dòng)的小網(wǎng)絡(luò)進(jìn)行卷積產(chǎn)生每個(gè)推薦的低維特征,以供邊框分類和回歸。RPN的架構(gòu)圖如圖4所示。
R-FCN[29]:不同于faster R-CNN在于,其在最后一個(gè)卷積層就基于k*k固定大小網(wǎng)格為每類生成k2個(gè)得分列表,后續(xù)的RoI池化層、分類器和邊框回歸器都基于這個(gè)得分表來進(jìn)行對(duì)象檢測(cè)。FPN[30]提取各個(gè)層級(jí)(由下至上、由上至下和直接互聯(lián))的特征,在不犧牲速度和存儲(chǔ)空間的前提下,可用于訓(xùn)練各種大小的圖片。Mask R-CNN[37]將faster R-CNN技術(shù)擴(kuò)展至對(duì)象分割,在并行的分類和邊框回歸的基礎(chǔ)上增加了一個(gè)新分支:分割線掩碼。
基于回歸的對(duì)象檢測(cè)技術(shù)只需一步就能根據(jù)輸入圖片計(jì)算出所有對(duì)象的邊框及其類別。這類技術(shù)主要有:
圖5 YOLO的對(duì)象檢測(cè)信息流圖
YOLO[18]:將對(duì)象檢測(cè)設(shè)計(jì)為一個(gè)回歸問題,對(duì)邊框和類別概率同時(shí)回歸,只用一個(gè)神經(jīng)網(wǎng)絡(luò)和一次評(píng)價(jià)就可以從輸入圖像直接預(yù)測(cè)出邊框和類別。YOLO將輸入圖像分割成S*S個(gè)網(wǎng)格,每個(gè)網(wǎng)格只負(fù)責(zé)檢測(cè)中心落在其中的對(duì)象,預(yù)測(cè)B個(gè)邊框和相應(yīng)的置信得分(),此外每個(gè)網(wǎng)格還要給出一組所有類別的條件類別概率()。根據(jù)邊框的置信得分和網(wǎng)格的條件類別概率,就可以計(jì)算出每個(gè)邊框的類別置信得分:
其信息流圖如圖5所示。
由此看出YOLO在一個(gè)模型中同時(shí)考慮了邊框類別、邊框的位置和大小,很容易進(jìn)行端到端的損失優(yōu)化,從而提高了效率、運(yùn)算速度和預(yù)測(cè)精度?;拘蚘OLO處理速度可達(dá)45fps,fast YOLO處理幀率為155fps。引入塊歸一化、高分辨率分類器、錨框、維數(shù)聚類、細(xì)粒度特征、直接位置預(yù)測(cè)和多尺度訓(xùn)練等新技術(shù)的YOLO稱為YOLOv2。
圖6 SSD的網(wǎng)絡(luò)架構(gòu)
SSD[19]:是在受到錨框、區(qū)域推薦網(wǎng)RPN和多尺度表示技術(shù)的啟發(fā)下提出的,為了解決其他技術(shù)在檢測(cè)小尺寸對(duì)象時(shí)碰到的困難。它以VGG16的網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ),在后面增加了幾個(gè)特征層來預(yù)測(cè)不同尺度和比例的對(duì)象的偏移量機(jī)器置信得分,從而使對(duì)象檢測(cè)時(shí)融合了不同分辨率的特征圖中的預(yù)測(cè)信息,而非基于單一分辨率的特征圖,最后在非最大抑制算法的作用下得到最佳對(duì)象預(yù)測(cè)結(jié)果。其架構(gòu)圖如圖6。
Faster R-CNN YOLO SSD速度(fps) 7 45 59 mAP(%) 63.4 73.2 74.3
通過比較SSD、YOLO和faster R-CNN在PASCAL VOC和Microsoft COCO數(shù)據(jù)集的測(cè)試表現(xiàn),得到如左表結(jié)果,結(jié)果表明SSD無論在速度(59fps),或是精度(74.3%)都是目前最好的對(duì)象檢測(cè)技術(shù)。
對(duì)象識(shí)別技術(shù)近些雖然年取得了突飛猛進(jìn)的發(fā)展,但仍然還有很多問題亟待攻克。其一,小尺寸對(duì)象(尤其是在局部遮擋情況下)的識(shí)別;其二,如何減少人工介入(打標(biāo)簽等),提高對(duì)象檢測(cè)的自主化;其三,如何提高對(duì)象檢測(cè)的速度實(shí)現(xiàn)實(shí)時(shí)化,尤其對(duì)大尺寸圖片;其四,如何實(shí)現(xiàn)三維對(duì)象的檢測(cè),甚至視頻對(duì)象檢測(cè)。