張曉雪
摘 要 目前,在智能交通領(lǐng)域使用深度學(xué)習(xí)方法進(jìn)行自動(dòng)駕駛目標(biāo)檢測已成為研究熱點(diǎn)。通過對Faster R-CNN,YOLO,SSD等代表性方法的對比,這些方法中對目標(biāo)的實(shí)例分割檢測效果不夠理想,因此在通過比較研究后本文提出使用在實(shí)例分割方面效果更為優(yōu)秀的Mask R-CNN目標(biāo)檢測算法用于自動(dòng)駕駛的目標(biāo)檢測研究,通過在BDD100k數(shù)據(jù)集上的仿真實(shí)驗(yàn),表明Mask R-CNN目標(biāo)檢測算法在實(shí)例分割中效果明顯,進(jìn)一步針對該算法的特征金字塔進(jìn)行了改進(jìn),提高了其檢測精度。
關(guān)鍵詞 目標(biāo)檢測;Mask RCNN;深度學(xué)習(xí);自動(dòng)駕駛
Abstract At present, in the field of intelligent transportation, the use of deep learning method for automatic driving target detection has become a research hotspot. By comparing the representative methods such as Faster R-CNN, YOLO, SSD, etc., the results of case segmentation detection in these methods are not satisfactory. Therefore, after comparing and researching, this paper proposes to use Mask R-CNN target detection algorithm which has better effect in case segmentation for the research of automatic driving target detection. The simulation experiments on BDD100k data set show that Mask R-CNN target detection algorithm has better effect in case segmentation.- CNN target detection algorithm has obvious effect in case segmentation, and further improves the feature pyramid of the algorithm to improve its detection accuracy.
Key Words target detection;Mask RCNN;Deep learning; Autopilot
1 引言
2017年是人工智能技術(shù)發(fā)展的一個(gè)高峰期,人工智能領(lǐng)域無人駕駛汽車技術(shù)也受到研究學(xué)者們極大的關(guān)注。在2013年,由于R-CNN[2]技術(shù)在目標(biāo)檢測領(lǐng)域的應(yīng)用并且取得了較好效果,這也就推動(dòng)了基于深度學(xué)習(xí)的目標(biāo)檢測技術(shù)迅速的發(fā)展,該主要分為兩種方式:一種為基于滑動(dòng)窗口提取特征,另外一種為基于區(qū)域建議?;诨瑒?dòng)窗口提取特征的算法主要是采用回歸的思路,優(yōu)點(diǎn)是速度快,但檢測結(jié)果誤差稍大不夠理想[10],Szegedy等通過深度神經(jīng)網(wǎng)絡(luò)的方法[3]deep neural network,DNN采用回歸的方式來預(yù)測圖片中目標(biāo)識(shí)別的概率和它的得分;Redmon等提出YOLO[4]算法,通過將一張圖片分為多個(gè)網(wǎng)格,再分別計(jì)算出每個(gè)網(wǎng)格包含的目標(biāo)及位置的概率檢測目標(biāo),從而提高了檢測速度;再之后出現(xiàn)了例如單個(gè)多盒檢測器[11](sigle shot multibox detector,SDD)、YOLO算法的變形、小型的單個(gè)多樣檢測器(tiny single shot multibox detector,Tiny SSD)等算法,通過這些算法可以實(shí)現(xiàn)實(shí)時(shí)檢測,但檢測精度仍然不及基于區(qū)域建議的算法?;趨^(qū)域建議的算法過程分為兩步,第一步是要找到檢測目標(biāo)可能存在區(qū)域;第二步是在該區(qū)域通過卷積神經(jīng)網(wǎng)絡(luò)檢測得到目標(biāo)并標(biāo)定矩形框。通過在基于區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[2](regions with CNN,RCNN)算法基礎(chǔ)上不斷改進(jìn),He等提出了空間金字塔池化網(wǎng)絡(luò)(spatial pyramid pooling net work,SPP-net)[5],取消了輸入尺寸的限制;Girshick等提出了快速基于區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[6](fast regions with CNN,F(xiàn)ast RCNN),通過增加區(qū)域建議融合層減小了計(jì)算量;Ren等提出了更快速的基于區(qū)域卷積神經(jīng)網(wǎng)絡(luò)[7](faster regions with CNN,F(xiàn)asert RCNN),這種算法使目標(biāo)檢測的四個(gè)步驟整合到一起提高了檢測精度,在此基礎(chǔ)上提高了檢測效率;后面出現(xiàn)了例如基于區(qū)域的全卷積神經(jīng)網(wǎng)絡(luò)(regions-based fully convolutional networks,R-FCN)、基于掩模的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)特征[1](mask regions with CNN,Mask R-CNN)等網(wǎng)絡(luò)框架,改進(jìn)了基于區(qū)域建議的方法。在這些算法當(dāng)中Mask R-CNN實(shí)例分割效果好,目標(biāo)檢測精度高。
2 Mask R-CNN算法
通過對Faster R-CNN算法改進(jìn)得到了Mask R-CNN算法。該算法是一個(gè)實(shí)例分割算法,其總體架構(gòu)如圖1所示:
Mask R-CNN是一個(gè)“end to end”網(wǎng)絡(luò)(端到端的網(wǎng)絡(luò)),其模塊主要是卷積和去卷積,實(shí)現(xiàn)過程是先將圖片進(jìn)行卷積和池化處理,讓圖像的feature map隨著該處理過程減??;再采用插值操作不斷增大圖像的feature map,對每一個(gè)像素值進(jìn)行劃分。這樣就實(shí)現(xiàn)了對檢測圖像的準(zhǔn)確分割。
特征金字塔在多尺度目標(biāo)檢測系統(tǒng)當(dāng)中是一個(gè)基本的組成部分。但在最近幾年深度學(xué)習(xí)目標(biāo)檢測上很少有人提及甚至是有意回避著個(gè)技巧,主要原因是特征金字塔在計(jì)算量大和用時(shí)長。在本文中,我們利用深度卷積神經(jīng)網(wǎng)絡(luò)本有的多尺度、多層級的金字塔結(jié)構(gòu)來構(gòu)建特征金字塔網(wǎng)絡(luò)。使用側(cè)邊連接,即一種自上而下的連接方式,給檢測圖像上所有的特征尺度構(gòu)建了高級語義特征圖,這種結(jié)構(gòu)就叫作特征金字塔網(wǎng)絡(luò)(FPN)[13]。在FPN的特征金字塔中,金字塔級別是由每個(gè)階段定義的, 把每個(gè)階段的最后一層的輸出作為特征圖的參考集。在每個(gè)階段的最深層應(yīng)該具有最強(qiáng)的特征,本文用了每個(gè)階段的最后一個(gè)殘差結(jié)構(gòu)的特征來激活輸出。這些殘差模塊的輸出表示為{C2, C3, C4, C5},相互一一對應(yīng)在conv2,conv3,conv4和conv5的輸出,與此同時(shí)注意它們相對于輸入圖像具有{4, 8, 16, 32}像素的步長??紤]到內(nèi)存的占用,所以沒有將conv1包含在金字塔中。再把高層特征圖進(jìn)行上采樣,接著對該特征橫向連接(lateral connections )到前一層特征,通過該過程使得高層特征得到加強(qiáng)。在以上過程中橫向連接的兩層特征在空間尺寸上必須相同。這樣主要是為了利用底層的定位細(xì)節(jié)信息。最后,作者使用的卷積核去處理了已經(jīng)融合的特征圖,用來生成最后我們需要的特征圖。{C2, C3, C4, C5}層與融合特征層的{P2, P3, P4, P5}是一一對應(yīng)的,對應(yīng)的層空間尺寸也是相通的。其流程圖如圖2所示:
2.1 RoIPoolin與RoiAlign
Mask R-CNN是通過使用RoIAlign來提高它的精度,RoIAlign與RoIPooling[]最大的區(qū)別在于RoIAlign并不像是RoIPooling那樣采用量化操作,它是采用了線性插值算法。而對于RoIPooling兩次量化操作以及其誤差解釋如圖3所示。
為了得到固定大小的特征圖,需要進(jìn)行兩次量化操作。
(1)圖像坐標(biāo)。
如圖3所示,在該VGG16中,就使用了5個(gè)池化操作,其中每個(gè)池化操作都是2Pooling,所以最終我們獲得feature map的大小為,但是將狗的圖像的邊框?qū)?yīng)到feature map上面,就得到了的結(jié)果,這個(gè)結(jié)果是浮點(diǎn)數(shù),然后進(jìn)行了量化操作(即取整操作),這樣結(jié)果就變?yōu)?,在這里本文引入了第一次的量化誤差;
(2)特征圖坐標(biāo)
如圖3所示,feature map中有不同大小的ROI,可后面的網(wǎng)絡(luò)卻必須有固定的輸入,所以就需要把不同大小的ROI轉(zhuǎn)化為固定的ROI feature,在這里使用的是的ROI feature,所以需要將的ROI映射成的ROI feature,得出結(jié)果是 ,通過對其進(jìn)行取整,在這里引入了第二次量化誤差。為了解決該問題,提出RoIAlign方法[1]。RoIAlign 的技術(shù)解析圖如圖4所示。
我們?yōu)榱说玫焦潭ù笮榈膄eature map使用了ROIAlign技術(shù),但該技術(shù)卻沒有使用量化操作,它采用雙線性插值的圖像縮放算法,這就充分地利用了原圖中虛擬點(diǎn)四周的四個(gè)真實(shí)存在的像素值來共同決定目標(biāo)圖中的一個(gè)像素值,其中雙線性插值如圖5所示。
通過上述圖像可以清晰地看到,藍(lán)色的線框表示卷積后獲得的feature map,黑色實(shí)線框表示RoI feature,結(jié)果需要輸出大小為,這樣就可以利用雙線性插值來估計(jì)這些藍(lán)點(diǎn)(即為虛擬坐標(biāo)點(diǎn),這也可以稱為雙線性插值的網(wǎng)格點(diǎn))處所對應(yīng)的像素值,最終可以得到對應(yīng)的輸出。圖中所顯示的藍(lán)點(diǎn)是卷積核當(dāng)中采樣的隨機(jī)普通點(diǎn),當(dāng)然這些采樣點(diǎn)的它們的個(gè)數(shù)和位置不會(huì)對性能產(chǎn)生決定性的影響。在以上過程操作完成后需要在每一個(gè)橘紅色的區(qū)域里面進(jìn)行max pooling或者average pooling操作,這樣就可以獲得最終的輸出結(jié)果。上面的操作全程沒有用到量化操作,也沒引入誤差,也就是說原圖中的像素和feature map中的像素是完全對齊的,當(dāng)中是沒有偏差的,這樣在提高檢測精度同的時(shí)也會(huì)對實(shí)例分割十分有利。
2.2 LOSS分析
對于每一個(gè)RoI,mask分支有K個(gè)維度的輸出,這當(dāng)中就對K個(gè)大小為的mask都進(jìn)行了編碼,其中每一個(gè)mask都有K個(gè)類別[1]。同時(shí)使用了像素級 sigmoi定義Lmask為平均二值交叉熵?fù)p失函數(shù)(average binary cross-entropy loss),對應(yīng)一個(gè)屬于ground-truth中的第K類的RoI,Lmask只在第K個(gè)mask上面有定義,其他的k-1個(gè)mask輸出對整個(gè)Loss沒有作用。在該方法中定義了Lmask允許網(wǎng)絡(luò)為每一類生成一個(gè)mask,這樣就可以避免和其他類進(jìn)行競爭;這樣就可以將目標(biāo)分類和mask生成并行生成。FCN進(jìn)行語意分割時(shí)使用的是multinomial cross-entropy loss,此方法使得mask之間存在競爭關(guān)系,所以使用了像素級的sigmoid和binary loss,避免了不同的mask之間產(chǎn)生的競爭。通過實(shí)驗(yàn)表明該方法可提高實(shí)例分割的效果。
3 Mask R-CNN的改進(jìn)
分析FPN結(jié)構(gòu)可知,該算法利用了多尺度的信息,但是文獻(xiàn)[1]中的側(cè)邊連接方法路徑只有自上而下的模式,同時(shí)對于 RPN 的輸入是在這一組特征映射圖中選取單一尺寸進(jìn)行處理。這樣會(huì)導(dǎo)致兩個(gè)問題:其一是最高層的特征映射圖與原特征提取網(wǎng)絡(luò)結(jié)構(gòu)的最終輸出是一樣的,但是大尺寸目標(biāo)的信息需要從由此層特征映射圖主要獲取,這就使得大目標(biāo)檢測的準(zhǔn)確率與原網(wǎng)絡(luò)數(shù)據(jù)相似有時(shí)甚至偏低;其二,對自上而下路徑結(jié)構(gòu)進(jìn)行分析,可以知道對于 FPN 輸出的一組特征映射圖中每一層包含本層和更高層的信息而不包含更低層的信息,而對 RPN 又是從中選取最優(yōu)尺寸特征映射圖進(jìn)行輸入,這樣就會(huì)導(dǎo)致無法充分利用所有尺寸特征映射圖的信息,造成最后檢測準(zhǔn)確率并非更優(yōu)值。
對 FPN 生成不同尺寸的特征映射圖,增加一條自下而上的路徑,將底層信息直接傳送到高層,充分利用所有尺寸特征映射圖的信息,改進(jìn)后的FCN結(jié)構(gòu)如圖6所示。
圖6中N2與P2的尺寸相同,Ni經(jīng)步長為2的卷積,得到與Pi+1相同尺寸的映射圖,并與Pi+1進(jìn)行相加然后再進(jìn)行卷積操作得到Ni+1。
仿真實(shí)驗(yàn)中,考慮到由于BDD100k數(shù)據(jù)集圖片尺寸過大,對硬件要求過高,將Batch-Size調(diào)整為1,網(wǎng)絡(luò)用resnet50[16]進(jìn)行測試,所以會(huì)對精度造成一定的影響。
4 實(shí)驗(yàn)結(jié)果與分析
為了驗(yàn)證BDD100k[15]數(shù)據(jù)集基于Mask R-CNN檢測效果,仿真實(shí)驗(yàn)是在Windows10和tensorflow框架下,處理器為:Intel(R)Core(TM)i7-6800k ,CPU@3.40GHz,ram:64.0GB的環(huán)境中進(jìn)行的。
4.1 實(shí)驗(yàn)結(jié)果分析
BDD100k數(shù)據(jù)集檢測結(jié)果如圖7所示。
可以看出該方法可以將行人、車輛、路燈等很好的檢測并框出。
幾種算法測試結(jié)果對比如表1所示,mAP為其檢測精度的平均正確率,對結(jié)果進(jìn)行對比可知,本文提出的改進(jìn)的Mask R-CNN通過增添自下而上的路徑,高層與底層語義信息相融合,由實(shí)驗(yàn)結(jié)果可知該方法提高了檢測的平均精度。
5 結(jié)束語
本文提出了基于改進(jìn)特征金字塔的 Mask R-CNN 目標(biāo)檢測方法,針對 Mask R-CNN 在FPN 提取特征階段無法充分利用所有尺度特征映射圖信息的問題,結(jié)合 FPN 和反向側(cè)邊連接,融合連接后的特征映射圖。通過在BDD100k公開數(shù)據(jù)集上的訓(xùn)練和測試,實(shí)驗(yàn)結(jié)果表明檢測精度得到提高。
參考文獻(xiàn)
[1] Kaiming He Georgia Gkioxari Piotr Doll?ar Ross Girshick.Mask R-CNN.[cs.CV] 5 Apr 2017
[2] RossGirshick,JeffDonahue,TrevorDarrell,JitendraMalik,UC Berkeley.Rich feature hierarchies for accurate object detection and semantic segmentationTech report (v5).arXiv:1311.2524v5 [cs.CV] 22 Oct 2014.
[3] Dumitru Erhan, Christian Szegedy, Alexander Toshev, Dragomir Anguelov, Google.Scalable Object Detection using Deep Neural Networks.arXiv:1312.2249v1 [cs.CV] 8 Dec 2013.
[4] Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi.You Only Look Once:Unified, Real-Time Object Detection.arXiv:1506.02640v5 [cs.CV] 9 May 2016.
[5] Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun.Spatial Pyramid Poolingin Deep Convolutional Networks for Visual Recognition.arXiv:1406.4729v4[cs.CV] 23 Apr 2015.
[6] Ross Girshick,Microsoft Research.Fast R-CNN.arXiv:1504. 08083v2 [cs.CV] 27 Sep 2015.
[7] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun.Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.arXiv:1506.01497v3 [cs.CV] 6Jan 2016.
[8] Tsung-Yi Lin, Piotr Doll?ar, Ross Girshick, Kaiming He, Bharath Hariharan, Serge Belongie.Feature Pyramid Networks for Object Detection. [cs.CV] 19 Apr 2017.
[9] Yitong Wang,Xing Ji,Zheng Zhou,Hao Wang,Zhifeng Li.Detecting Faces Using Region-based Fully Convolutional Networks
[10] Lin T Y, Goyal P, Girshick R, et al. Focal Loss fo rDense Object Detection[C]//IEEE International Conference on Computer Vision. IEEE Computer Society, 2017:2999-3007.
[11] Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[C]// European Conference on Computer Vision. Springer, Cham, 2016:21-37.
[12] 馮小雨, 梅衛(wèi), 胡大帥. 基于改進(jìn)Faster R-CNN 的空中目標(biāo)檢測[J]. 光學(xué)學(xué)報(bào), 2018, 38(6): 0615004.
[13] Lin T Y, Dollár P, Girshick R, et al. Feature Pyramid Networks for Object Detection[C]//IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2017:936-944.
[14] 唐詩.基于車載視頻的道路車輛及行人檢測[D]:[碩士學(xué)位論文].成都:電子科技大學(xué),2018.05.11.
[15] Fisher Yu1 Wenqi Xian2 Yingying Chen1 Fangchen Liu3 Mike Liao1Vashisht Madhavan4 Trevor Darrell1.BDD100K: A Diverse Driving Video Database with Scalable Annotation Tooling.arXiv:1805.04687v1 [cs.CV] 12 May 2018.
[16] He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[C]// IEEE Conference on Computer Vision and Pattern Recognition.IEEE Computer Society, 2016:770-778.