劉德兒 , 唐武 , 陳增輝 , 趙塵
(1. 江西理工大學(xué)土木與測(cè)繪工程學(xué)院,江西 贛州 341000; 2. 福建經(jīng)緯測(cè)繪信息有限公司,福州 350000)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,機(jī)器視覺(jué)、計(jì)算機(jī)視覺(jué)的出現(xiàn)給計(jì)算機(jī)領(lǐng)域帶來(lái)了再次蓬勃發(fā)展的機(jī)會(huì)。 計(jì)算機(jī)視覺(jué)已經(jīng)成為熱點(diǎn)研究領(lǐng)域,其內(nèi)容主要包括圖像分類[1]、目標(biāo)檢測(cè)與跟蹤[2-4]、實(shí)例分割[5]等,而目標(biāo)檢測(cè)與識(shí)別是其中最主要的研究熱點(diǎn)之一[6]。 2014 年之后,基于深度學(xué)習(xí)的方法為目標(biāo)檢測(cè)帶來(lái)了更多機(jī)遇和挑戰(zhàn)[7]。由于視力障礙,盲人無(wú)法正常使用生物視覺(jué)感知出行路徑周圍的環(huán)境信息,這使得他們?cè)趹敉獬鲂袝r(shí)受到羈絆,而利用現(xiàn)代科學(xué)技術(shù)來(lái)彌補(bǔ)盲人出行時(shí)對(duì)空間感知的不足,可以改善他們的戶外活動(dòng)能力[8],有助于增加對(duì)殘疾人的社會(huì)關(guān)懷和提升城市的生活品質(zhì)[9]。目前,協(xié)助盲人進(jìn)行障礙探測(cè)的方法主要包括將雷達(dá)和超聲波等傳感器結(jié)合進(jìn)行物體探測(cè)或利用機(jī)器視覺(jué)技術(shù)輔助進(jìn)行檢測(cè),如基于超聲波和語(yǔ)音播報(bào)技術(shù)相結(jié)合的智能導(dǎo)盲系統(tǒng)[10],該系統(tǒng)能夠通過(guò)超聲波對(duì)設(shè)備前方的物體進(jìn)行探測(cè)并采用語(yǔ)音提示的方式告知盲人物體的遠(yuǎn)近。還有研究者將傳感器設(shè)計(jì)在夾克內(nèi)從而檢測(cè)到障礙物并安全地導(dǎo)航至目的地[11]。 Ying 等提出了一種基于深度學(xué)習(xí)的感知導(dǎo)航框架 DLSNF (Deep-Learning-based Sensory Navigation Framework),取得了較好的實(shí)驗(yàn)效果[12]。Serr?o 等首次將GIS 和計(jì)算機(jī)視覺(jué)結(jié)合進(jìn)行室內(nèi)引導(dǎo)及對(duì)門、樓梯等物體的檢測(cè),在正常照明條件下可以達(dá)到良好的識(shí)別效果[13]。 Afif 等利用RetinaNet 網(wǎng)絡(luò)作為檢測(cè)的基礎(chǔ)網(wǎng)絡(luò)設(shè)計(jì)了一個(gè)室內(nèi)物體檢測(cè)和識(shí)別系統(tǒng)[14],該系統(tǒng)可以準(zhǔn)確定位和分類輸入圖像中存在的室內(nèi)物體,能夠識(shí)別包括門、窗、燈等室內(nèi)常見(jiàn)的物體,但是僅僅局限于室內(nèi)的環(huán)境。 在室外障礙物識(shí)別方面,Ou 等利用 Google 和TensorFlow 的API 針對(duì)室外人行橫道和立柱進(jìn)行識(shí)別,并通過(guò)語(yǔ)音來(lái)引導(dǎo)盲人前進(jìn),取得了良好的效果[15]。 除了上述研究之外,還有一些輔助性的研究,例如對(duì)盲道的檢測(cè)識(shí)別[16]、利用虛擬導(dǎo)航對(duì)盲人出行路徑規(guī)劃[17]以及利用多傳感器設(shè)計(jì)的各種穿戴設(shè)備等[18-22]。由于出行環(huán)境多變,盲人所遇見(jiàn)的物體具有多樣化特點(diǎn),并且室外的環(huán)境相對(duì)室內(nèi)要復(fù)雜很多, 現(xiàn)有方法仍存在檢測(cè)效果不直觀或精度較低等問(wèn)題[23]。慶幸的是當(dāng)前目標(biāo)檢測(cè)的發(fā)展彌補(bǔ)了一些傳統(tǒng)方法的不足且被廣泛應(yīng)用[24-27],例如:Fast RCNN[28-29]、YOLO(You Only Look Once,只需要看一次)[27,30-32], 以及 SSD (Single Shot MultiBox De tector,單發(fā)多盒檢測(cè)器)[33-35]系列等,并且有很多學(xué)者在此基礎(chǔ)上對(duì)算法進(jìn)行改進(jìn)以適應(yīng)不同場(chǎng)景的目標(biāo)檢測(cè)[36-40]。本文針對(duì)盲人戶外出行的真實(shí)場(chǎng)景,提出了改進(jìn)的SSD 目標(biāo)檢測(cè)方法, 構(gòu)建了戶外盲人出行障礙物檢測(cè)模型SSMD (Single Shot Multiscale Detector,單發(fā)多尺度檢測(cè)器)。 通過(guò)不同角度和背景環(huán)境, 獲取了類別豐富的障礙物目標(biāo)圖像,并建立了障礙物樣本數(shù)據(jù)集,使用SSMD 網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)集建立基本的檢測(cè)模型,使其能夠有效、準(zhǔn)確地檢測(cè)和識(shí)別盲人出行遇到的障礙物,實(shí)驗(yàn)結(jié)果表明SSMD 模型在障礙物檢測(cè)方面取得了比傳統(tǒng)SSD 模型更好的檢測(cè)效果。
CNN 網(wǎng)絡(luò)的特點(diǎn)是前面的特征圖尺寸比較大,通過(guò)卷積和池化操作特征圖會(huì)逐步變小[41],而SSD 的結(jié)構(gòu)正是抓住了這一特點(diǎn),較小的特征圖和較大的特征圖都用來(lái)做檢測(cè)并輸出[33],是一種直接對(duì)目標(biāo)進(jìn)行預(yù)測(cè)輸出邊界框的端到端算法。SSD 以VGG16(Visual Geometry Group 16)為骨干網(wǎng)絡(luò),其特征圖結(jié)構(gòu)如圖1 所示,類似于金字塔結(jié)構(gòu),能夠綜合多層不同大小的特征圖進(jìn)行檢測(cè)。 SSD 采用了不同尺度的先驗(yàn)框/默認(rèn)框 (Prior boxes, Default boxes),每一個(gè)需要檢測(cè)的特征圖的每一個(gè)像素點(diǎn)都會(huì)生成約4~6 個(gè)先驗(yàn)框, 而不同大小的特征圖生成先驗(yàn)框的大小也不盡相同, 其尺度的設(shè)定遵循式(1)[42]。
其中,Sk表示先驗(yàn)框大小相對(duì)于圖片的比例;m 為用作目標(biāo)檢測(cè)的特征圖的個(gè)數(shù); Smin和Smax則表示設(shè)定比例的最小值與最大值,分別為0.2 和0.9。 對(duì)于長(zhǎng)寬比,文中默認(rèn)為{1,2,3,1/2,1/3},根據(jù)實(shí)際情況進(jìn)行調(diào)整。
SSD 對(duì)多尺度目標(biāo)檢測(cè)效果較好,在檢測(cè)精度上超過(guò)了Faster RCNN,因此比較適用于做盲人出行的障礙目標(biāo)檢測(cè)。
圖1 SSD 特征結(jié)構(gòu)
盲人在出行時(shí)會(huì)受到各種尺度大小的障礙物的影響,特別是尺度較小的目標(biāo)[43],原始的SSD 檢測(cè)器設(shè)置了各種比例的先驗(yàn)框,因此對(duì)多尺度目標(biāo)的檢測(cè)效果比較好。但是由于用來(lái)檢測(cè)特征的特征層經(jīng)過(guò)卷積和池化輸出的特征圖相比較于原始的輸入圖像縮小了好幾倍,這使得需要檢測(cè)的目標(biāo)特征的像素信息丟失嚴(yán)重,在訓(xùn)練模型時(shí)對(duì)模型的各種參數(shù)的影響較大不利于訓(xùn)練,從而導(dǎo)致對(duì)輸入圖像中尺度較小的目標(biāo)檢測(cè)效果并不明顯,且對(duì)特殊尺度的障礙目標(biāo)檢測(cè)效果不好。 為了使SSD 能夠識(shí)別出尺寸不同的障礙物, 對(duì)SSD 的特征層結(jié)構(gòu)進(jìn)行調(diào)整使其能夠檢測(cè)出常見(jiàn)的不同尺寸的障礙物,建立盲人出行障礙物檢測(cè)模型SSMD。
文章在充分考慮到盲人出行時(shí)可能遇到常見(jiàn)的障礙物情況下對(duì)檢測(cè)的實(shí)時(shí)性和準(zhǔn)確性提出要求, 將SSD 檢測(cè)器網(wǎng)絡(luò)結(jié)構(gòu)中不同尺寸的特征層的圖像特征進(jìn)行選擇性輸出,增加了Conv3_3 層作為特征輸出層并將Conv7 替換成Conv6。 通過(guò)結(jié)合各層特征進(jìn)行檢測(cè),由高層到低層依次提取目標(biāo)特征, 最后綜合各層檢測(cè)結(jié)果識(shí)別出各種尺寸的障礙。 SSMD 的網(wǎng)絡(luò)結(jié)構(gòu)如圖 2 所示, 卷積層Conv3_3、Conv4_3 用于檢測(cè)距離攝像頭較遠(yuǎn)的尺寸較小的障礙物;Conv6、Conv8_2、Conv9_2 用于檢測(cè)圖片中較近的障礙物; 特征層尺寸較小的Conv10_2 和Conv11_2 經(jīng)過(guò)多層卷積與池化后用于檢測(cè)輸入圖像中尺寸相對(duì)較大的障礙物,最終綜合多層卷積的特征層來(lái)進(jìn)行識(shí)別從而達(dá)到檢測(cè)各種尺寸障礙物的目的。SSD 檢測(cè)器在每一層的特征圖上都設(shè)置了多種固定比例的先驗(yàn)框用于與真實(shí)框的匹配,通過(guò)修改其寬高比以檢測(cè)擁有特殊尺寸目標(biāo)。 由于像電線桿之類的目標(biāo)寬高比比較小,與其他類別障礙目標(biāo)的尺寸有較大差距,因此在本文中分別取長(zhǎng)寬比為{1,2,3,1/4,1/6}以適應(yīng)在訓(xùn)練障礙數(shù)據(jù)集時(shí)先驗(yàn)框與真實(shí)框的匹配度,從而減小了圖片或視頻中目標(biāo)的邊框回歸損失,并且在訓(xùn)練的過(guò)程中由于調(diào)整了先驗(yàn)框尺度的預(yù)設(shè)比例,因此預(yù)先生成的框與真實(shí)標(biāo)注框之間的匹配度會(huì)隨之升高,這也會(huì)加速訓(xùn)練時(shí)總損失的收斂速度。
圖2 SSMD 檢測(cè)過(guò)程
其次,SSD 檢測(cè)器根據(jù)輸入圖片尺寸的不同有兩個(gè)版本, 分別是 SSD300 和 SSD512。 原始的SSD300 通 過(guò) 引 出 block4、block7、block8、block9、block10 和block11 共6 層作為特征檢測(cè)層用于最后的檢測(cè)。 SSD512 由于其輸入圖像尺寸較大,因此通 過(guò) 引 出 block4、block7、block8、block9、block10、block11 和block12 作為其特征檢測(cè)層。 正是由于對(duì)輸入圖像的分辨率進(jìn)行了擴(kuò)大, 為了更好地處理圖像,SSD512 的卷積層達(dá)到了 12 層,并且 SSD512 版本的參數(shù)可以繼承SSD300 版本的參數(shù)。 根據(jù)這一特點(diǎn), 本文在訓(xùn)練障礙數(shù)據(jù)集的過(guò)程中首先用SSD300 版本訓(xùn)練,期間通過(guò)調(diào)整訓(xùn)練參數(shù)待損失值基本收斂到平穩(wěn)值時(shí)轉(zhuǎn)而利用SSD512 版本進(jìn)行訓(xùn)練直至損失收斂到平穩(wěn)值。 SSMD 的訓(xùn)練方式與此相同,首先使用增加Conv3_3 層、替換了Conv7 層并修改了先驗(yàn)框參數(shù)的SSMD300 版本訓(xùn)練, 然后在此基礎(chǔ)上使用SSMD512 繼承訓(xùn)練。在同等條件下通過(guò)繼承訓(xùn)練的方式對(duì)平均識(shí)別精度有較大提升。同時(shí),在訓(xùn)練過(guò)程中采用小批量處理方法,減小訓(xùn)練時(shí)輸入圖片的批次大小并且根據(jù)損失情況間隔一定訓(xùn)練步數(shù)更新訓(xùn)練超參數(shù)。實(shí)驗(yàn)結(jié)果表明,采用上述方法步驟訓(xùn)練障礙數(shù)據(jù)集,能夠有效降低訓(xùn)練損失,提升了檢測(cè)精度。
模型是否取得良好的檢測(cè)效果不僅僅與數(shù)據(jù)量有很大的關(guān)系,還與數(shù)據(jù)集的樣本、小尺度目標(biāo)的標(biāo)注和背景的復(fù)雜度等息息相關(guān),這些因素在訓(xùn)練的過(guò)程中也會(huì)大幅度影響最后的檢測(cè)結(jié)果。訓(xùn)練的樣本數(shù)太少了會(huì)造成損失震蕩及過(guò)擬合等問(wèn)題,而類別、背景單一則會(huì)造成模型的泛化能力不強(qiáng)。當(dāng)前開(kāi)放的數(shù)據(jù)集如 COCO[44]、PascalVOC[45]、KITTI[46]等的基本類別都是針對(duì)生活中常見(jiàn)的物體進(jìn)行標(biāo)注,應(yīng)用的都是正常人的生活場(chǎng)景,如COCO 中包含一些動(dòng)物、運(yùn)動(dòng)裝備及一些食物和水果等。 這些數(shù)據(jù)集中標(biāo)注的類別并不是特別適用于盲人出行的障礙物檢測(cè)。 但是COCO 中其他的一些類別比如汽車、消防栓等是戶外出行中常見(jiàn)的物體可以用來(lái)作為一種障礙物。因此,如果需要對(duì)障礙物進(jìn)行識(shí)別,就要確定好常見(jiàn)的障礙物類別并從多處采集相關(guān)圖片建立一個(gè)障礙數(shù)據(jù)集。
有學(xué)者提出了一種盲人戶外障礙檢測(cè)數(shù)據(jù)集BLIND[47],該數(shù)據(jù)集中包含七類目標(biāo):自行車、公交車、汽車、摩托車、人、卡車等。 BLIND 總共包含了1194 張圖像, 根據(jù)BLIND 中包含的障礙物類別,再結(jié)合實(shí)際調(diào)查總結(jié)出了在盲人出行道路上較為常見(jiàn)的物體類別。 主要類別包含行人(person)、汽車(car)、自行車(bicycle)、反光錐(reflective cone)及路障(spherical roadblock)等較為常見(jiàn)的 12 類物體,如圖3 所示。數(shù)據(jù)集包含的樣本數(shù)量、背景的多樣性及標(biāo)注等信息在訓(xùn)練SSMD 的過(guò)程中也會(huì)影響模型的學(xué)習(xí)能力。所以,如果希望模型得到很好的檢測(cè)效果和良好的泛化能力,必須使樣本庫(kù)多樣化,包括圖片的數(shù)量、分辨率、目標(biāo)數(shù)量等要素。
圖3 障礙數(shù)據(jù)集的類別
現(xiàn)有的COCO 數(shù)據(jù)集包含了自行車、汽車、公交車等80 類,根據(jù)設(shè)定的障礙數(shù)據(jù)集基本類別,從COCO 數(shù)據(jù)中選取了部分人、自行車、卡車等6 個(gè)類別的圖片大約2000 張用來(lái)建立障礙數(shù)據(jù)集。 從PASCAL VOC 數(shù)據(jù)集包含的20 個(gè)類別中選取了摩托車、 狗等6 個(gè)類別的圖片約1000 張作為建立障礙數(shù)據(jù)集的基礎(chǔ)樣本;其次,還從清華大學(xué)與騰訊聯(lián)合發(fā)布的TT100K[48]數(shù)據(jù)集中選取了部分包含有障礙的圖片約100 張用于數(shù)據(jù)集的建立; 然后,將挑選出來(lái)的圖片逐一篩選,過(guò)濾掉分辨率太低的一些圖片;最后,通過(guò)實(shí)地行走盲人出行的道路,身臨其境地從盲人的角度感受出行時(shí)遇到的各種障礙物, 并且用手持便攜設(shè)備采集了若干多光照、多角度、多背景狀態(tài)下的各種障礙目標(biāo)圖片用于數(shù)據(jù)集的建立。在總共12 個(gè)類別中,有7 個(gè)類別來(lái)自現(xiàn)有的公開(kāi)數(shù)據(jù)集,其余的5 個(gè)類別是由研究團(tuán)隊(duì)拍攝的視頻、圖像建立的。從互聯(lián)網(wǎng)收集的圖像均為無(wú)版權(quán)圖像,由設(shè)備采集的圖像均對(duì)車牌、人臉等信息做馬賽克處理。 具體的類別及其他信息,如表1 所列。
表1 各類別統(tǒng)計(jì)信息
本文以SSD 檢測(cè)器為基礎(chǔ), 因此建立的數(shù)據(jù)集需遵循SSD 訓(xùn)練數(shù)據(jù)的格式。 SSD 訓(xùn)練的標(biāo)準(zhǔn)數(shù)據(jù)集是 VOC2007,VOC 數(shù)據(jù)集格式是采用的xml 文件對(duì)圖像中標(biāo)注的各個(gè)物體的名稱、相對(duì)位置坐標(biāo)等進(jìn)行記錄。 因此,需要將障礙數(shù)據(jù)集的格式整理成VOC2007 數(shù)據(jù)的標(biāo)準(zhǔn)格式, 并且使用開(kāi)源標(biāo)注工具 Labelimg[49]對(duì)從 COCO、PASCAL VOC和TT100K 中挑選出來(lái)的未標(biāo)注的障礙目標(biāo)進(jìn)行第二次標(biāo)注,如反光錐、警示柱等不包含在上述三種數(shù)據(jù)集類別的障礙物;然后,根據(jù)設(shè)定的12 個(gè)類別逐一過(guò)濾篩選的圖片并進(jìn)行補(bǔ)充標(biāo)注,歸一化來(lái)自不同數(shù)據(jù)集的標(biāo)簽信息,如圖4 所示;其次,對(duì)拍攝的用于數(shù)據(jù)集的照片和視頻等也進(jìn)行標(biāo)注處理。
圖4 在來(lái)自COCO 數(shù)據(jù)集的圖片上添加對(duì)障礙物的標(biāo)注
來(lái)自各個(gè)數(shù)據(jù)集的圖片分辨率并不統(tǒng)一,在SSMD 訓(xùn)練數(shù)據(jù)集時(shí)模型會(huì)自動(dòng)對(duì)輸入的訓(xùn)練圖片進(jìn)行鏡像和縮放等幾何變換操作,這也增強(qiáng)了模型的魯棒性。輸入的圖片中也包含了各種復(fù)雜背景下目標(biāo)的標(biāo)注信息,符合本文研究需求的數(shù)據(jù)集的復(fù)雜性。針對(duì)實(shí)際采集的各種復(fù)雜背景的圖片數(shù)據(jù)同樣使用Labelimg 工具對(duì)圖片進(jìn)行手工標(biāo)注與篩選。 標(biāo)注的信息對(duì)后期訓(xùn)練與識(shí)別的效果非常重要,特別是對(duì)小目標(biāo)物體的標(biāo)注。最后將所有的標(biāo)注信息輸出為xml 文件用于模型的訓(xùn)練, 其中包含了 size、object bndbox 等要素。 并且將 xml 文件轉(zhuǎn)化為模型能夠識(shí)別的、TensorFlow 通用的tfrec ord 文件。
SSD 在訓(xùn)練VOC2007 數(shù)據(jù)時(shí)將 21 個(gè)類別(包含背景) 劃分為了五大類型:Background,Vehicle,Animal,Person 和 Indoor, 對(duì)數(shù)據(jù)的類別進(jìn)行劃分可有效提升其分類的精度。 同樣,在訓(xùn)練SSMD 模型時(shí), 將障礙數(shù)據(jù)集的12 個(gè)類別也劃分成了不同的五大類, 有效還原了SSD 模型訓(xùn)練數(shù)據(jù)的真實(shí)性,其類別分類結(jié)構(gòu)如圖5 所示。
圖5 障礙數(shù)據(jù)集的類別結(jié)構(gòu)
截至目前障礙數(shù)據(jù)集已經(jīng)包含了超過(guò)6000 張圖片用于模型訓(xùn)練,雖然樣本的數(shù)量不如現(xiàn)有的公開(kāi)數(shù)據(jù)集, 但這足以訓(xùn)練模型達(dá)到良好的識(shí)別效果。 建立的數(shù)據(jù)集中存在許多與VOC 和COCO 中標(biāo)注尺寸差異較大的目標(biāo),并且數(shù)據(jù)集中各類別之間的差異性較大,這也會(huì)給訓(xùn)練的算法帶來(lái)一定的挑戰(zhàn)性。
實(shí)驗(yàn)環(huán)境:Windows10 系統(tǒng)下使用NVIDIA GTX 1650(4 GB)顯卡進(jìn)行物理加速計(jì)算,內(nèi)存為16 GB,使用 TensorFlow-gpu 1.14.0 及 1.9.0,CUDA10.0 搭配CuDNN 進(jìn)行加速計(jì)算并訓(xùn)練和評(píng)估模型。
在目標(biāo)檢測(cè)中對(duì)模型的評(píng)估指標(biāo)通常有精確度(Precision)、召回率(Recall)和均值平均度(mAP)等。 在二分類問(wèn)題中,召回率和精確度是較為常用且直觀的評(píng)估參數(shù)。 在多目標(biāo)檢測(cè)中,由于需要預(yù)測(cè)圖像中目標(biāo)的位置和所屬類別,如果在圖像中能檢測(cè)到物體而不能定位物體在圖像中的位置,則達(dá)不到預(yù)期的檢測(cè)效果。 而本文中模型實(shí)現(xiàn)的是多個(gè)類別目標(biāo)的檢測(cè), 因此召回率和精確度等指標(biāo)并不適用于此, 所以本文采用均值平均精度對(duì)兩種模型進(jìn)行評(píng)估和對(duì)比。 真實(shí)標(biāo)注框與預(yù)測(cè)框之間交集與并集的比例IoU 是計(jì)算mAP 時(shí)的重要參數(shù)。在訓(xùn)練數(shù)據(jù)時(shí),設(shè)置IoU>0.5 的為正樣本,其余均為負(fù)樣本。 用計(jì)算模型得到的每一個(gè)檢測(cè)框的IoU 值與真實(shí)值進(jìn)行比較即可得到每個(gè)類別正確的檢測(cè)數(shù), 由此可以得出一個(gè)類別c 的模型精度,如式(2):
則一個(gè)類別的平均精度(AP)如式(3):
如果有多個(gè)類別,則可通過(guò)一個(gè)簡(jiǎn)單的指標(biāo)來(lái)確定一個(gè)模型的表現(xiàn)即mAP,如式(4):
其次,文章研究盲人出行的障礙物檢測(cè),對(duì)檢測(cè)速度要求較高,至少需要達(dá)到實(shí)時(shí)檢測(cè)目標(biāo)的要求。 所以引入對(duì)視頻的檢測(cè)速度指標(biāo)評(píng)價(jià)相關(guān)模型,即每秒鐘檢測(cè)圖片的數(shù)量。
訓(xùn)練的數(shù)據(jù)集包括建立的障礙數(shù)據(jù)集和VOC2007 標(biāo)準(zhǔn)數(shù)據(jù)集。 通過(guò)兩種模型訓(xùn)練數(shù)據(jù)集發(fā)現(xiàn)SSMD 網(wǎng)絡(luò)在訓(xùn)練時(shí)損失收斂的情況相比較原始的SSD 收斂速度較快且收斂度較好, 如圖6所示。 在訓(xùn)練過(guò)程中首先用SSD 訓(xùn)練障礙數(shù)據(jù)集,初始學(xué)習(xí)率設(shè)置為 0.001, 結(jié)束學(xué)習(xí)率設(shè)置為0.0001。 先使用300*300 的網(wǎng)絡(luò)訓(xùn)練,根據(jù)損失情況動(dòng)態(tài)調(diào)整batch_size 等超參數(shù),待loss 值降低至20 左右切換至 512*512 網(wǎng)絡(luò)訓(xùn)練。512*512 網(wǎng)絡(luò)繼承300*300 模型的權(quán)重參數(shù)繼續(xù)訓(xùn)練,最終損失收斂于5 以內(nèi)模型基本上達(dá)到了最佳。 SSMD 的訓(xùn)練過(guò)程與上述步驟基本一致, 由于原始 SSD 在anchor_ratio 上設(shè)置的比例與障礙數(shù)據(jù)集中標(biāo)注目標(biāo)的比例差距較大, 造成了預(yù)測(cè)框與真實(shí)框匹配度不高, 因此用原始的SSD 訓(xùn)練時(shí)損失相對(duì)較大。 而在 SSMD 中修改 anchor_ratio 參數(shù),增加Conv3_3 特征層作為檢測(cè)層并且根據(jù)式(1)設(shè)置相應(yīng)的anchor_step 能夠在訓(xùn)練中使生成框與真實(shí)框匹配程度提升。 與此同時(shí)在訓(xùn)練的過(guò)程中動(dòng)態(tài)調(diào)整學(xué)習(xí)率和batch_size 等參數(shù)也對(duì)損失的收斂起到了一定的控制作用。
圖6 損失收斂情況對(duì)比
為了對(duì)算法的調(diào)整情況形成一個(gè)良好的對(duì)比,繼續(xù)用兩種算法訓(xùn)練VOC2007 標(biāo)準(zhǔn)數(shù)據(jù)集。 通過(guò)對(duì)兩種不同的數(shù)據(jù)集進(jìn)行評(píng)估得出如圖7、圖8 所示的結(jié)果。 由圖7 可以看出在訓(xùn)練障礙數(shù)據(jù)集時(shí),SSD 的 mAP 上較為平穩(wěn),而 SSMD 的 mAP 則呈現(xiàn)出波動(dòng)的狀態(tài),忽高忽低。 雖然在一開(kāi)始SSMD 的mAP 值只有 0.245, 但是在訓(xùn)練達(dá)到 90,000 時(shí)SSD 的 mAP 為 0.461, 而 SSMD 的 mAP 為 0.511,相較于SSD 提升了5%。 這是由于SSMD 針對(duì)先驗(yàn)框的尺寸進(jìn)行了優(yōu)化, 提升了其中部分類別的AP值。通過(guò)對(duì)訓(xùn)練模型的評(píng)估實(shí)驗(yàn)表明SSMD 對(duì)障礙的綜合識(shí)別效果要優(yōu)于SSD。 而在訓(xùn)練VOC2007數(shù)據(jù)集時(shí),兩種模型的差異并不明顯,這是由于在anchor_ratio 的設(shè)置上并未與VOC2007 數(shù)據(jù)集的標(biāo)注框相適應(yīng), 因此SSMD 的表現(xiàn)與SSD 相差無(wú)幾。 而增加的Conv3_3 層又使得某些類別的AP 有較小提升, 因此SSMD 訓(xùn)練的模型評(píng)估m(xù)AP 值比SSD 略高1.1%。 并且VOC2007 的類別比本文的障礙數(shù)據(jù)集多, 在各類別的AP 值均有差距, 所以mAP 相比較于障礙數(shù)據(jù)集略有下降。 而從圖8 可以看出, 通過(guò)修改anchor_ratio, SSMD 在特殊尺寸目標(biāo)檢測(cè)的 AP 上有了提升, 如 pole、warning column 目標(biāo)等。 SSD 訓(xùn)練結(jié)果中 warning column 的AP 僅有3.62%的精度, 而SSMD 的檢測(cè)精度卻達(dá)到了4.11%。 同樣的, 在其他常規(guī)尺寸目標(biāo)上,AP也均有提升。 因此在mAP 上SSMD 的評(píng)估結(jié)果也比SSD 要高,這是由于修改后的anchor_ratio 相比較于原始的SSD 更加適用于建立的障礙數(shù)據(jù)集中的目標(biāo)尺寸。 在檢測(cè)速度上, 受限于本機(jī)硬件配置,兩種模型的檢測(cè)速度都只有10.1 fps,但是在配置有足夠硬件的終端上或者將模型輕量化部署到手機(jī)等移動(dòng)設(shè)備上檢測(cè)速度能夠達(dá)到實(shí)時(shí)檢測(cè)的要求。
圖7 兩種模型訓(xùn)練障礙數(shù)據(jù)集和VOC 數(shù)據(jù)集的mAP 曲線
圖8 SSD 及SSMD 訓(xùn)練障礙數(shù)據(jù)的各類別AP 值
為了與SSMD 形成對(duì)比, 本文選取了Faster RCNN 和YOLOv3 兩種目標(biāo)檢測(cè)器訓(xùn)練障礙數(shù)據(jù)集。 并對(duì)訓(xùn)練的模型進(jìn)行評(píng)估得到各類別的AP、mAP 和檢測(cè)速度等指標(biāo),如表2 和圖9 所示。 實(shí)驗(yàn)表明,在不利用COCO 的原始權(quán)重文件參數(shù)訓(xùn)練的情況下從頭開(kāi)始訓(xùn)練,設(shè)定閾值大于0.5 即為匹配成功, 評(píng)估出 YOLOv3 的 mAP 僅僅只有 0.26。YOLOv3 的mAP 比SSMD 低并且在實(shí)際檢測(cè)中的效果差很多,但是檢測(cè)速度卻比SSMD 快。 當(dāng)對(duì)采用Faster RCNN 訓(xùn)練障礙數(shù)據(jù)的模型進(jìn)行評(píng)估時(shí)mAP 達(dá)到了 0.35, 但是由于 Faster RCNN 結(jié)構(gòu)不同,其花了部分時(shí)間在候選區(qū)域的提取上,所以在檢測(cè)速度上趕不上SSMD。
在最后本文針對(duì)真實(shí)場(chǎng)景下的障礙物識(shí)別做了一些檢測(cè)實(shí)驗(yàn)以驗(yàn)證模型識(shí)別障礙物的實(shí)際效果。 利用計(jì)算機(jī)搭載 MYNT EYE D (https://xiao mishuma.tmall.com/?spm =a220o.1000855.1997427721.d4918089.65034a19mvqwT8) 攝像頭到盲道及人行道上對(duì)障礙物進(jìn)行識(shí)別。從中選擇了部分照片進(jìn)行對(duì)比,如圖 10 所示。 通過(guò)對(duì)比發(fā)現(xiàn),SSMD 在多尺寸目標(biāo)檢測(cè)和多類別目標(biāo)檢測(cè)中的效果要比其他算法好,能夠識(shí)別出位于采集攝像頭較遠(yuǎn)的障礙物并進(jìn)行定位。 當(dāng)場(chǎng)景里有多種目標(biāo)時(shí),SSMD 也能夠發(fā)揮其優(yōu)勢(shì), 識(shí)別出其中包含的各種類別的障礙。這是因?yàn)橐隽颂卣鞒叽巛^大的Conv3_3 層用作檢測(cè)層, 并且將中間的Conv7 替換成了Conv6,雖然這兩層的特征圖尺寸相同,但是由于Conv6 層卷積核數(shù)量遠(yuǎn)高于Conv7,因此在對(duì)物體檢測(cè)的過(guò)程中Conv6 層發(fā)揮的作用大于Conv7 層。 而修改anchor_ratio 能夠使模型生成的各種比例的先驗(yàn)框準(zhǔn)確匹配各類別標(biāo)注的真實(shí)框,從而達(dá)到良好的訓(xùn)練和識(shí)別效果。而從初始權(quán)重訓(xùn)練的YOLOv3 模型雖然在速度上超過(guò)了SSMD,但是其實(shí)際的識(shí)別效果要遠(yuǎn)低于 SSMD。 圖 10(c)顯示的是 YOLOv3 算法在設(shè)定threshold 大于0.5 的檢測(cè)結(jié)果,而SSMD則是設(shè)定threshold 大于0.9 的檢測(cè)結(jié)果。 threshold是邊框定位精度的調(diào)整參數(shù), 由此可見(jiàn)當(dāng)提高threshold 時(shí),YOLOv3 的檢測(cè)效果和邊框定位精度并不如SSMD。 Faster RCNN 訓(xùn)練的模型在實(shí)際檢測(cè)中的效果相比較于其他算法也沒(méi)有達(dá)到很好的效果,存在漏檢和重復(fù)檢測(cè)的情況。
圖9 4 種算法訓(xùn)練的模型評(píng)估結(jié)果
表2 SSMD 與現(xiàn)有算法訓(xùn)練障礙數(shù)據(jù)集對(duì)比
其次, 為了體現(xiàn)多背景環(huán)境下算法的檢測(cè)能力,挑選了部分傍晚拍攝的光線不充足情況下的圖片進(jìn)行識(shí)別,其中僅包含了一種本文設(shè)定的目標(biāo)障礙物。然后將圖片輸入到訓(xùn)練過(guò)障礙數(shù)據(jù)集的四種模型得到識(shí)別效果,如圖10 所示。 由圖10 可以看出以SSD 為基礎(chǔ)的兩個(gè)模型在傍晚暗光環(huán)境下也能較為準(zhǔn)確識(shí)別和定位圖中的3 個(gè)障礙物。 而YOLOv3 和Faster RCNN 訓(xùn)練的障礙數(shù)據(jù)集模型則對(duì)該背景條件下的物體識(shí)別效果并不好,存在漏檢和錯(cuò)檢的情況,并且邊框置信度也比兩個(gè)以SSD為基礎(chǔ)的模型檢測(cè)的要低得多。SSD 和SSMD 訓(xùn)練的模型能在此環(huán)境下識(shí)別出障礙,這給盲人在復(fù)雜環(huán)境狀態(tài)下的出行帶來(lái)了更大的便利。 由此表明,以SSD 為基礎(chǔ)的兩個(gè)模型具有良好的泛化能力,能夠在多種背景多種角度和多種光照條件下識(shí)別并定位攝像頭可視范圍內(nèi)約2~8 m 的障礙。 而SSMD 模型相較于SSD 有著更高一點(diǎn)的置信度和邊框定位精度,能夠勝任在正常行走條件下對(duì)一些常見(jiàn)障礙物識(shí)別的要求。
圖10 4 種檢測(cè)算法實(shí)驗(yàn)結(jié)果對(duì)比
通過(guò)修改SSD 的參數(shù)和在結(jié)構(gòu)上引出大尺寸特征層做檢測(cè)建立了障礙物識(shí)別框架SSMD。 利用計(jì)算機(jī)視覺(jué)技術(shù)為盲人出行的障礙物檢測(cè)做出了一些貢獻(xiàn),也為以后利用機(jī)器視覺(jué)或智能機(jī)器人解決盲人出行問(wèn)題提供了一個(gè)方向。 在本文中,通過(guò)采集真實(shí)場(chǎng)景的障礙物圖片等方式建立了障礙數(shù)據(jù)集。 在訓(xùn)練檢測(cè)模型時(shí),通過(guò)一系列方法對(duì)訓(xùn)練中的模型進(jìn)行優(yōu)化提升了模型的泛化性和魯棒能力。 相比較于原始的SSD,修改了先驗(yàn)框生成的參數(shù)及增加特征層的SSMD 算法能夠更好地適應(yīng)建立的障礙數(shù)據(jù)集,通過(guò)不斷調(diào)參優(yōu)化提升了模型檢測(cè)障礙物的性能。在同等環(huán)境條件下相比較于其他現(xiàn)有的目標(biāo)檢測(cè)算法,SSMD 在多目標(biāo)檢測(cè)和邊框置信度上都有一些優(yōu)勢(shì)。而建立的盲人出行障礙數(shù)據(jù)集也為模型提供了一個(gè)良好的訓(xùn)練樣本,為模型的泛化能力提供了保證,使模型能夠識(shí)別出不同背景條件下的大部分障礙物從而為盲人的出行提供了較為充足的周圍場(chǎng)景信息。盡管這些工作取得了一些成果,但是對(duì)障礙物的檢測(cè)方式還有待進(jìn)一步加強(qiáng),下一步的研究主要從對(duì)目標(biāo)的三維位置探測(cè)和模型的檢測(cè)性能上著手,針對(duì)特定的地形場(chǎng)景如樓梯、臺(tái)階等進(jìn)行識(shí)別與判斷,繼續(xù)擴(kuò)充強(qiáng)化現(xiàn)有數(shù)據(jù)集,增加常見(jiàn)障礙的類別,為盲人的出行提供力所能及的技術(shù)支持。