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