錢雯倩,王 軍
(蘇州科技大學(xué),江蘇 蘇州 210332)
隨著智能機(jī)器人技術(shù)的發(fā)展,機(jī)器人所發(fā)揮的作用不可估量,目標(biāo)人物跟隨也成為其需要具備的重要功能之一。建筑物內(nèi)部結(jié)構(gòu)復(fù)雜,不確定因素非常多,如地面障礙物以及行人遮擋等,這對(duì)于人物跟隨機(jī)器人自主導(dǎo)航任務(wù)增加了困難。常用的障礙物檢測方法有激光雷達(dá)傳感器、超聲波傳感器檢測、紅外傳感器檢測和計(jì)算機(jī)視覺檢測等。計(jì)算機(jī)視覺檢測相比于其它障礙物檢測方法具有成本低、能夠有效利用環(huán)境中的顏色與紋理信息等優(yōu)點(diǎn),所以目標(biāo)檢測是實(shí)現(xiàn)機(jī)器人跟隨目標(biāo)人物任務(wù)的關(guān)鍵技術(shù)。
目標(biāo)檢測被廣泛應(yīng)用于視頻監(jiān)控系統(tǒng)和其它領(lǐng)域。目標(biāo)檢測是用于給圖像或視頻中存在的目標(biāo)定位的主要技術(shù)之一。目標(biāo)檢測的任務(wù)主要使用機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的方法來檢測準(zhǔn)確的目標(biāo)。人類通過看圖像或視頻來檢測物體,如何讓計(jì)算機(jī)實(shí)現(xiàn)精確的目標(biāo)檢測是現(xiàn)階段研究的熱點(diǎn)問題之一。
近年來,卷積神經(jīng)網(wǎng)絡(luò)在圖片分類和目標(biāo)檢測領(lǐng)域取得了巨大的成功。常用的目標(biāo)檢測算法大概可以分為三種:第一種是傳統(tǒng)的目標(biāo)算法,首先采用滑動(dòng)窗口,并且設(shè)置不同大小,進(jìn)行區(qū)域選擇,然后利用SIFT、HOG等進(jìn)行特征提取,最后將特征送入如SVM、Adaboost等分類器進(jìn)行分類,實(shí)現(xiàn)目標(biāo)檢測。這種方法在復(fù)雜場景下的檢測精度較差;第二種是候選區(qū)域/窗結(jié)合深度學(xué)習(xí)分類(通過提取候選區(qū)域,并對(duì)相應(yīng)區(qū)域進(jìn)行以深度學(xué)習(xí)方法為主的分類的方案,如:R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、R-FCN等),其優(yōu)勢是速度快,但是均勻的密集采樣的一個(gè)重要缺點(diǎn)是訓(xùn)練比較困難,這主要是因?yàn)檎龢颖九c負(fù)樣本(背景)極其不均衡,導(dǎo)致模型準(zhǔn)確度較低;第三種是基于深度學(xué)習(xí)的回歸方法,如YOLO、SSD、DenseBox等方法,以及最近出現(xiàn)的結(jié)合RNN算法的RRC detection,結(jié)合DPM的Deformable CNN等,通過深層卷積結(jié)構(gòu)自動(dòng)學(xué)習(xí)圖像的高階特征,從而生成更加精確可靠的檢測結(jié)果。
在目標(biāo)檢測與嵌入式設(shè)備結(jié)合的過程中,在真實(shí)場景中人群密度不一致導(dǎo)致重復(fù)檢測,目標(biāo)檢測模型太大,是需要解決的主要問題?;诖?,本文提出基于SSD的輕量化檢測算法。1)減少篩選區(qū)域候選框以及選用自適應(yīng)極大值抑制方法排除重疊檢測框,在人群密度不一致的情況下,提高了檢測的精度和速度。2)通過使用MobilenetV2網(wǎng)絡(luò)代替?zhèn)鹘y(tǒng)的VGG網(wǎng)絡(luò)進(jìn)行特征提取,減少模型規(guī)模。
針對(duì)傳統(tǒng)目標(biāo)識(shí)別中的問題,基于深度學(xué)習(xí)的目標(biāo)識(shí)別檢測方法被提出,Ross Girshick等人于2014年提出R-CNN算法,這是首個(gè)將深度學(xué)習(xí)成功應(yīng)用于目標(biāo)識(shí)別檢測上的算法,Ross Girshick等人又于2015年提出Fast R-CNN,只對(duì)圖像進(jìn)行一次特征圖像提取,但是這種方法生成候選框還是會(huì)耗費(fèi)大量時(shí)間。同年,Ren等人提出了Faster R-CNN算法,改進(jìn)生成候選框方法,利用區(qū)域建議網(wǎng)絡(luò)RPN(Region Proposal Network)生成候選框,比之前的方法快了將近200倍。2015年,Joseph Redmon等人提出了基于單個(gè)神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法YOLO,這種方法檢測速度快,能夠滿足實(shí)時(shí)檢測的要求,但是對(duì)小目標(biāo)以及遮擋程度高的物體檢測能力低,精度也比Faster R-CNN低。
SSD于2016年被Liu等人提出,是經(jīng)典的單階段目標(biāo)檢測模型之一。它的精度可以媲美Faster R-CNN雙階段目標(biāo)檢測方法,但速度卻比之間的檢測算法更快,達(dá)到了59FPS。SSD集合了Faster R-CNN的anchor機(jī)制以及YOLO的回歸思想。
傳統(tǒng)的SSD網(wǎng)絡(luò)結(jié)構(gòu)采用VGG16作為基礎(chǔ)模型,其框架結(jié)構(gòu)如圖1所示,在VGG16的基礎(chǔ)上新增了卷積層來獲得更多的特征圖以用于檢測,是一種多尺度特征地圖目標(biāo)檢測算法。SSD算法利用不同尺度的特征映射來檢測不同大小的目標(biāo),并在后續(xù)的金字塔結(jié)構(gòu)中為不同的特征映射選擇不同尺度的候選框。
圖1 SSD網(wǎng)絡(luò)框架
在SSD目標(biāo)檢測算法中,如其它檢測方法一樣使用多任務(wù)的損失函數(shù),其損失函數(shù)定義為位置誤差(locatization loss,loc)與置信度誤差(confidence loss,conf)的加權(quán)和。
其損失函數(shù)為
(1)
其中,是候選框的正樣本數(shù)量;為類別置信度預(yù)測值;為候選框的所對(duì)應(yīng)邊界框的位置預(yù)測值;為真實(shí)預(yù)測框的位置參數(shù)。
(,)為區(qū)域候選框在多類別置信度c上的softmax損失,其公式為
(2)
(3)
式(2)中分為兩個(gè)部分,一部分為正樣本()的損失,即除背景外被分類為某種類別的損失,另一部分為負(fù)樣本()的損失,即被識(shí)別為背景的損失。
(,,)為位置回歸函數(shù),其公式為
(4)
(5)
(6)
(7)
(8)
其中,(,)為補(bǔ)償后的候選框的中心,(,)為候選框的寬和高。
SSD的區(qū)域候選框借鑒了Faster R-CNN中錨點(diǎn)(anchor)的理念,每個(gè)單元設(shè)置了尺度或者長寬比不相同的區(qū)域候選框,預(yù)測得到的真實(shí)框是以這些區(qū)域候選框?yàn)榛鶞?zhǔn)的,在一定程度上減少了訓(xùn)練難度。一般情況下,每個(gè)預(yù)測單元會(huì)設(shè)置多個(gè)區(qū)域候選框,其尺度和長寬比存在差異,然后根據(jù)每個(gè)候選框內(nèi)預(yù)測的各類目標(biāo)的概率以及區(qū)域候選框的位置偏移量對(duì)每個(gè)區(qū)域候選框進(jìn)行置信度打分,最后經(jīng)過非極大值抑制NMS(Non Maximum Suppression)找出最有可能出現(xiàn)目標(biāo)物的框,根據(jù)對(duì)應(yīng)的偏移量來調(diào)整候選框最后的位置以及形狀,得到最終檢測框。區(qū)域候選框定義如下式
(9)
本實(shí)驗(yàn)中,由于人的行為特征、生理特征可能出現(xiàn)行為姿態(tài)各異的情況,所以對(duì)區(qū)域候選框進(jìn)行了尺寸上的設(shè)置。寬高比為2或3的候選框不符合實(shí)際情況,所以排除這兩個(gè)寬高比的區(qū)域候選框,此時(shí)每個(gè)單元格內(nèi)就只有4個(gè)區(qū)域候選框。本文在不同層的特征圖上設(shè)置了不同的區(qū)域候選框,覆蓋住不同層上原圖上的不同大小的人或物體,這樣能夠更加準(zhǔn)確的對(duì)目標(biāo)候選框進(jìn)行回歸,減少運(yùn)算量及時(shí)間。
傳統(tǒng)SSD算法使用VGG網(wǎng)絡(luò),其網(wǎng)絡(luò)模型參數(shù)較多,且特征提取等操作需要GPU的強(qiáng)大算力做支撐,雖然其精度和速度都已經(jīng)達(dá)到了目前眾多目標(biāo)檢測算法中較為可觀的程度,但是應(yīng)用在沒有強(qiáng)大GPU的移動(dòng)設(shè)備的嵌入式系統(tǒng)中,SSD算法還需要進(jìn)行改進(jìn),由此,本文選擇MobileNetV2輕量化網(wǎng)絡(luò)代替原本的VGG網(wǎng)絡(luò)。
MobileNet網(wǎng)絡(luò)就是對(duì)卷積操作進(jìn)行輕量化處理,使用深度可分卷積(depthwise separable convolution)來減少模型的參數(shù)量。其處理方式是將標(biāo)準(zhǔn)卷積分為深度卷積(dephwise convolution)和點(diǎn)卷積(pointwise convolution)兩個(gè)過程。深度可分卷積雖然大幅降低了計(jì)算量,但是在實(shí)際訓(xùn)練時(shí)會(huì)出現(xiàn)很多訓(xùn)練失敗的卷積核,所以在輸出特征圖時(shí),它的維度也很小,它的特征圖在通過ReLU激活函數(shù)后會(huì)產(chǎn)生信息丟失。
MobileNetV2應(yīng)用了如圖2所示的倒殘差網(wǎng)絡(luò)結(jié)構(gòu)減少信息丟失。它首先對(duì)輸入的特征圖用1×1的卷積核進(jìn)行升維處理,擴(kuò)展數(shù)據(jù)中的通道數(shù)量,然后再用3×3的普通卷積進(jìn)行特征提取,最后用1×1的卷積核進(jìn)行降維,自動(dòng)選擇有用的特征,減少參數(shù)數(shù)量。在倒殘差網(wǎng)絡(luò)中為了解決ReLU函數(shù)會(huì)丟失信息的情況,就只對(duì)高維的特征圖使用ReLU函數(shù),對(duì)低維的特征圖使用線性激活函數(shù)。由于本文是將識(shí)別算法應(yīng)用于移動(dòng)設(shè)備的嵌入式系統(tǒng)中,所以用ReLU6代替ReLU函數(shù),ReLU6能夠增強(qiáng)模型的穩(wěn)定性,整個(gè)結(jié)構(gòu)中,特征圖在一系列處理后其大小維度都不會(huì)改變,所以能夠單獨(dú)使用在任意卷積網(wǎng)絡(luò)中,實(shí)現(xiàn)網(wǎng)絡(luò)輕量化。
圖2 倒殘差網(wǎng)絡(luò)結(jié)構(gòu)圖
其中,經(jīng)過第一個(gè)1×1卷積后使用ReLU6激活函數(shù),經(jīng)過3×3卷積后,使用ReLU6激活函數(shù),最后降維得到的特征圖使用線性激活函數(shù)。
MobileNetV2網(wǎng)絡(luò)應(yīng)用在SSD中如圖3,此方法結(jié)合了MobileNetV2網(wǎng)絡(luò)對(duì)模型計(jì)算量減少的優(yōu)點(diǎn)以及SSD算法本身對(duì)目標(biāo)檢測速度塊以及精確度高的優(yōu)點(diǎn),使得這個(gè)新的目標(biāo)檢測模型在移動(dòng)設(shè)備的嵌入式設(shè)備中得到高效率以及高精度的效果。這個(gè)模型使用了以MobileNetV2為特征提取網(wǎng)絡(luò),SSD多尺度檢測方法來進(jìn)行對(duì)不同大小物體的檢測,使用了五種不同尺度的特征圖,分別為19×19、10×10、5×5、3×3、1×1,這五個(gè)尺度特征圖生成不同大小比例的候選框進(jìn)行預(yù)測回歸,最后通過NMS去除無用候選框,得到最終結(jié)果。
圖3 MobileNetV2網(wǎng)絡(luò)應(yīng)用于SSD算法的模型結(jié)構(gòu)圖
根據(jù)畫面目標(biāo)識(shí)別出來的多個(gè)候選框出現(xiàn)重疊時(shí),通過候選框的IOU值,排除其它重疊框,留下極大值的候選框。針對(duì)公共場所內(nèi),人流量密集稀疏程度帶來目標(biāo)檢測效率低,容易出現(xiàn)人物重疊等問題,本文使用了一種判斷目標(biāo)密集和稀疏情況的自適應(yīng)非極大值抑制方法(Adaptive NMS),它在soft-NMS基礎(chǔ)上加了一個(gè)目標(biāo)密度預(yù)測,其公式如下:
(10)
:=max(,)
(11)
(12)
其中函數(shù)是一個(gè)的函數(shù),會(huì)隨著的變化來增大減小分?jǐn)?shù),即當(dāng)與的值大于時(shí),=1-或者=(-),為-中的抑制閾值,是的目標(biāo)密度。該方法將抑制策略法分為三類情況討論:
第一種是當(dāng)相鄰的框遠(yuǎn)離目標(biāo)時(shí),使用;第二種,當(dāng)位于密集區(qū)域時(shí),則使用-,會(huì)被保留;第三種,當(dāng)位于稀疏區(qū)域時(shí),=(是一個(gè)更高的閾值)。
該方法相較于NMS與soft-NMS,其對(duì)于不同行人密度情況下,能夠自動(dòng)改變閾值大小,其效率更高。
本文算法的具體實(shí)驗(yàn)使用的是深度學(xué)習(xí)框架PyTorch,實(shí)驗(yàn)環(huán)境為Ubuntu16.04操作系統(tǒng),使用NVIDIA 1080Ti圖像處理器(GPU)運(yùn)算。本文使用Caltech行人數(shù)據(jù)集進(jìn)行訓(xùn)練和評(píng)估。該數(shù)據(jù)集大約拍攝10個(gè)小時(shí),分辨率為640×480,標(biāo)注了大約250000幀,其中約120000幀圖像包含行人,350000個(gè)矩形框,2300個(gè)行人。本文選取Caltech數(shù)據(jù)集中set00-set05中的2000幀圖像作為訓(xùn)練集。將訓(xùn)練好的網(wǎng)絡(luò)在VOC2007的數(shù)據(jù)集上進(jìn)行測試。
由于應(yīng)用的側(cè)重點(diǎn)不同,目標(biāo)檢測算法的評(píng)估標(biāo)準(zhǔn)也有很多,本文使用精度檢測,檢測效率和模型大小對(duì)本文模型進(jìn)行評(píng)估。采用mAP(mean average precision)來評(píng)估模型在行人目標(biāo)檢測上性能的好壞,使用每秒檢測幀數(shù)FPS(frames per second)來評(píng)估檢測效率,使用MB(MByte)來評(píng)估模型的大小。通過實(shí)驗(yàn)證明測試模型的各個(gè)性能。
為了驗(yàn)證本文算法的有效性,在真實(shí)場景中進(jìn)行檢測實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如圖4所示,在復(fù)雜的室內(nèi)場景中,能夠?qū)π腥诉M(jìn)行精確的檢測,不會(huì)出現(xiàn)重復(fù)檢測導(dǎo)致檢測框重疊的情況。
圖4 行人檢測
1)本節(jié)通過改變輸入圖像的尺度,評(píng)估檢測精度,檢測效率和模型的大小。如表1所示,改變輸入圖像的尺度對(duì)檢測精度,檢測效率的影響幾乎沒有;而提高輸入圖像的分辨率可以有效的提高網(wǎng)絡(luò)的檢測精度,其原因是因?yàn)殡S著分辨率的增加,行人目標(biāo)在圖像中的尺寸也隨之增加,提高了網(wǎng)絡(luò)的檢測精度。
2)為了與現(xiàn)在其它流行的目標(biāo)檢測網(wǎng)絡(luò)做對(duì)比,證實(shí)實(shí)驗(yàn)方法的有效性。本節(jié)在VOC2007測試數(shù)據(jù)集上對(duì)模型進(jìn)行評(píng)估。其中Tiny SSD和Tiny YOLO是目前最流行的兩種輕量級(jí)目標(biāo)檢測網(wǎng)絡(luò)。
表1 不同輸入尺度下的網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)對(duì)比結(jié)果如表2所示。本文所提出的網(wǎng)絡(luò)結(jié)構(gòu)SSD+MobileNetV2相比于傳統(tǒng)的目標(biāo)檢測方法,在模型大小方面明顯優(yōu)于這兩種方法,更能適用于嵌入式的系統(tǒng)中。目標(biāo)檢測的進(jìn)度方面達(dá)到了71.8%,明顯優(yōu)于Tiny YOLO和Tiny SSD這這種輕量化的網(wǎng)絡(luò)模型,在模型大小上,本文提出的算法小于Tiny YOLO,Tiny SSD算法雖然模型參數(shù)更小,但是檢測精度方面較低。權(quán)衡目標(biāo)檢測的評(píng)估標(biāo)準(zhǔn),本文提出的網(wǎng)絡(luò)結(jié)構(gòu)SSD+MobileNetV2的性能最好。
表2 不同檢測網(wǎng)絡(luò)精度模型對(duì)比
本文針對(duì)嵌入式場景內(nèi)的行人檢測的遮擋,存在障礙物和人流密度不同的問題,提出了一種基于SSD的目標(biāo)檢測算法,實(shí)現(xiàn)了基于深度學(xué)習(xí)的輕量化目標(biāo)檢測模型。以MobileNetV2為基礎(chǔ)的網(wǎng)絡(luò),實(shí)現(xiàn)了網(wǎng)絡(luò)模型的輕量化。通過引入自適應(yīng)極大值抑制方法,針對(duì)場景中不同行人密度,自動(dòng)改變閾值大小,其網(wǎng)絡(luò)的檢測效率更高。
實(shí)驗(yàn)表明本文提出的輕量化行人檢測網(wǎng)絡(luò)在Caltech數(shù)據(jù)集上的訓(xùn)練結(jié)果在各項(xiàng)評(píng)估指標(biāo)中表現(xiàn)更為優(yōu)秀,與其它的輕量化網(wǎng)絡(luò)模型相比,在檢測的精確性都更加優(yōu)秀。在未來的工作中將會(huì)在嵌入式的機(jī)器人方面進(jìn)行進(jìn)一步的實(shí)時(shí)測試。