路 昊 石 敏 李 昊 朱登明
(*華北電力大學(xué)控制與計(jì)算機(jī)工程學(xué)院 北京 102200) (**中國(guó)科學(xué)院計(jì)算技術(shù)研究所前瞻研究實(shí)驗(yàn)室 北京 100190) (***太倉(cāng)中科信息技術(shù)研究院 太倉(cāng) 215400)
近20年的時(shí)間里,增強(qiáng)現(xiàn)實(shí)無(wú)論在技術(shù)層面還是應(yīng)用層面都得到了前所未有的發(fā)展。對(duì)于現(xiàn)實(shí)中普遍應(yīng)用的單目視覺(jué)而言,連續(xù)運(yùn)動(dòng)的相機(jī)的位姿估計(jì)是3維姿態(tài)估計(jì)的核心技術(shù)。傳統(tǒng)的3維姿態(tài)估計(jì)方法存在許多的局限,GPS無(wú)法應(yīng)用于室內(nèi)定位且定位精度較低;高精度的慣性導(dǎo)航單元價(jià)格過(guò)于昂貴,低廉的精度損失又相對(duì)過(guò)大;基于人工標(biāo)識(shí)的定位方法需要預(yù)先設(shè)定場(chǎng)景,導(dǎo)致應(yīng)用場(chǎng)景無(wú)法擴(kuò)展。而反觀人類,依靠雙眼獲取的視覺(jué)信息就可實(shí)現(xiàn)對(duì)周圍環(huán)境的感知,因此基于連續(xù)視頻序列的相機(jī)運(yùn)動(dòng)姿態(tài)估計(jì),即通過(guò)攝像頭采集的視頻圖像信息就可以實(shí)現(xiàn)在位置環(huán)境下的自身定位,同時(shí)恢復(fù)周圍環(huán)境的3維結(jié)構(gòu),這對(duì)于增強(qiáng)現(xiàn)實(shí)設(shè)備實(shí)現(xiàn)自身與虛擬物體的相對(duì)運(yùn)動(dòng)映射關(guān)系尤為重要。
由于基于特征點(diǎn)匹配估計(jì)相機(jī)姿態(tài)的方法受目標(biāo)場(chǎng)景特征提取的難易程度影響較大,尤其是在復(fù)雜動(dòng)態(tài)場(chǎng)景下,由于相機(jī)的快速運(yùn)動(dòng)或者目標(biāo)場(chǎng)景的快速變化導(dǎo)致特征點(diǎn)提取效果不理想。基于這種情況,利用端到端的深度學(xué)習(xí)方法來(lái)解決這一問(wèn)題成了研究的重點(diǎn)。
Kendall等人[1]提出了一種具有魯棒性和實(shí)時(shí)性的單目相機(jī)6自由度重定位方法。通過(guò)卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network, CNN)對(duì)輸入的單張RGB圖像進(jìn)行6自由度相機(jī)姿態(tài)的回歸預(yù)測(cè)。
Wu等人[2]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的相機(jī)姿態(tài)重定位方法。利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)對(duì)圖片中采樣得到的像素點(diǎn)的世界坐標(biāo)進(jìn)行預(yù)測(cè),建立預(yù)測(cè)點(diǎn)與對(duì)應(yīng)相機(jī)坐標(biāo)點(diǎn)的映射關(guān)系。Kendall和Cipolla[3]在另一篇文章中提出了建立基于不確定性的貝葉斯卷積神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)單張RGB圖像進(jìn)行相機(jī)位姿的回歸預(yù)測(cè),提高預(yù)測(cè)的置信度。
Costante等人[4]提出了一種幀間運(yùn)動(dòng)學(xué)習(xí)估計(jì)方法。利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)連續(xù)視頻圖像中稠密光流進(jìn)行視覺(jué)特征提取,通過(guò)全連接神經(jīng)網(wǎng)絡(luò)再對(duì)新學(xué)習(xí)的視覺(jué)特征進(jìn)行幀間的相機(jī)運(yùn)動(dòng)估計(jì)。
Zhou等人[5]提出了一種基于無(wú)監(jiān)督學(xué)習(xí)框架估計(jì)單目相機(jī)運(yùn)動(dòng)及深度信息。通過(guò)利用單視角深度網(wǎng)絡(luò)以及多視角位姿網(wǎng)絡(luò)對(duì)非結(jié)構(gòu)化的視頻序列進(jìn)行端到端的聯(lián)合學(xué)習(xí)。
Walch等人[6]提出了利用長(zhǎng)短記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory neural network, LSTM)[7]對(duì)單幀圖像的特征進(jìn)行降維,并與PoseNet[1]網(wǎng)絡(luò)結(jié)構(gòu)相結(jié)合,提高了定位精度,然而并沒(méi)有利用多個(gè)連續(xù)圖像之間的關(guān)系。
Wang等人[8]提出了對(duì)連續(xù)的2幀圖片疊加之后進(jìn)行特征提取,提取的特征經(jīng)過(guò)循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行時(shí)序建模估計(jì)位姿,魯棒性得到增強(qiáng),但是選用的卷積網(wǎng)絡(luò)層數(shù)較少,整體定位精度一般。
本文提出了一種基于由深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)和長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)組成的端到端的結(jié)構(gòu),使用深度卷積網(wǎng)絡(luò)提取特征并傳進(jìn)長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò),對(duì)連續(xù)視頻序列中相機(jī)位置之間的相對(duì)運(yùn)動(dòng)關(guān)系建模,進(jìn)行相機(jī)姿態(tài)的回歸預(yù)測(cè),提高了模型收斂的速度,并且提升了定位精度。
整體網(wǎng)絡(luò)結(jié)構(gòu)(圖1)屬于端到端的模型,每一幀圖片對(duì)應(yīng)一個(gè)表示相機(jī)位姿的7維向量p=[x,q],其中x=(x,y,z)T∈R3表示位置向量,使用4元數(shù)q表示方向,是考慮到標(biāo)準(zhǔn)化后的4元數(shù)同樣能映射到旋轉(zhuǎn)矩陣,并且標(biāo)準(zhǔn)化的數(shù)據(jù)更容易進(jìn)行網(wǎng)絡(luò)訓(xùn)練。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)圖
整個(gè)網(wǎng)絡(luò)的損失函數(shù)如式(1)所示:
(1)
為了充分發(fā)揮卷積神經(jīng)網(wǎng)絡(luò)提取特征的能力以及長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的時(shí)序相關(guān)性,同時(shí)考慮到數(shù)據(jù)量規(guī)模,本文將CNN與LSTM相結(jié)合,提出了一種端到端的模型:
(1)首先通過(guò)遷移學(xué)習(xí)將分類數(shù)據(jù)集上訓(xùn)練好的權(quán)重參數(shù)作為CNN部分的初始化參數(shù),將針對(duì)圖像分類任務(wù)的預(yù)訓(xùn)練模型作為本文目標(biāo)場(chǎng)景的初始化模型。
(2)利用初始化后的卷積神經(jīng)網(wǎng)絡(luò)對(duì)目標(biāo)訓(xùn)練集進(jìn)行特征提取,從視頻序列中提取特征,同時(shí)對(duì)特征進(jìn)行降維處理并送入LSTM單元中。
(3)利用長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)對(duì)CNN輸出進(jìn)行連續(xù)時(shí)序上的學(xué)習(xí)訓(xùn)練,最終輸出一個(gè)由3維位置向量以及代表方向的4元數(shù)組成的7維姿態(tài)向量。
考慮動(dòng)態(tài)場(chǎng)景的運(yùn)動(dòng)模糊和光照的魯棒性,本文選用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征。本文深度卷積網(wǎng)絡(luò)結(jié)構(gòu)參考了PoseNet的思想,選擇使用在分類任務(wù)上表現(xiàn)優(yōu)秀的深度卷積網(wǎng)絡(luò)。表1在GoogLeNet的網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行修改,去掉了原本用于分類任務(wù)而設(shè)定的softmax層,取而代之的是在最后增加了一層全連接層對(duì)高維特征進(jìn)行降維,得到的結(jié)果序列傳遞給LSTM進(jìn)行時(shí)序建模。如表1所示,為本文深度卷積網(wǎng)絡(luò)各層輸出,本文輸入統(tǒng)一為224×224分辨率的3通道彩色圖像,中間的網(wǎng)絡(luò)層相比GoogLeNet,去掉了2個(gè)原本用于中間輸出的分支結(jié)構(gòu),網(wǎng)絡(luò)的最終輸出為2 048維特征向量。
表1 卷積神經(jīng)網(wǎng)絡(luò)各層輸出
本文采用的這種卷積網(wǎng)絡(luò)為深度卷積網(wǎng)絡(luò),涉及到參數(shù)計(jì)算的共13層,深層網(wǎng)絡(luò)可以得到更深層次的特征圖;另一方面,這種卷積網(wǎng)絡(luò)結(jié)構(gòu)采取了9個(gè)Inception模塊,這種模塊采用不同尺度卷積核提取特征并聚合,增加了網(wǎng)絡(luò)模型的寬度。這種網(wǎng)絡(luò)從深度和寬度上的設(shè)計(jì)保證了網(wǎng)絡(luò)的性能,更適用于動(dòng)態(tài)場(chǎng)景的復(fù)雜特征提取。
其中卷積層在卷積神經(jīng)網(wǎng)絡(luò)中用于特征提取,卷積層輸出大小為
O=(W-K+2P)/S+1
(2)
其中,O為輸出尺寸,W為長(zhǎng)度或?qū)挾龋琄為過(guò)濾器尺寸,P是填充,S是步幅。
為避免神經(jīng)網(wǎng)絡(luò)退化為最原始的感知機(jī),本文的每個(gè)卷積層之后都選用ReLU作為激活函數(shù),使得輸入輸出之間保持高度非線性的關(guān)系。
在這種卷積神經(jīng)網(wǎng)絡(luò)中,還使用了2種池化操作:最大池化和平均池化。池化最直接的作用就是引入了不變性,這種不變性包括了平移不變性、旋轉(zhuǎn)不變性以及尺度不變性。同時(shí)池化只保留了主要的特征,減少了參數(shù),提高了模型的泛化能力,避免了過(guò)早地出現(xiàn)過(guò)擬合現(xiàn)象。
池化層輸出的大小為
O=(W-F)/S+1
(3)
其中,O為輸出尺寸,W為長(zhǎng)度或?qū)挾?,F(xiàn)為池化單元尺寸,S為步幅。
在本文卷積網(wǎng)絡(luò)最后部分設(shè)置了全連接層,該層的作用是將網(wǎng)絡(luò)學(xué)習(xí)到的特征映射到樣本的標(biāo)記空間中,即把卷積輸出的2維特征圖轉(zhuǎn)化為一個(gè)1維的向量,將由1維向量組成的序列輸入到LSTM中進(jìn)行時(shí)序建模。
在估計(jì)連續(xù)視頻序列中的相機(jī)運(yùn)動(dòng)問(wèn)題上,考慮到視頻前后的連續(xù)相關(guān)性,上一狀態(tài)的相機(jī)運(yùn)動(dòng)參數(shù)信息同樣會(huì)影響下一狀態(tài)的位置信息,所以在CNN之后,還設(shè)計(jì)了一個(gè)LSTM進(jìn)行時(shí)序?qū)W習(xí)。視頻序列通過(guò)深度卷積網(wǎng)絡(luò)得到的特征序列作為L(zhǎng)STM的輸入,學(xué)習(xí)連續(xù)圖片特征之間的時(shí)序相關(guān)性,并使得每一個(gè)圖片特征對(duì)應(yīng)一個(gè)7維的輸出,包括3維的位置向量和代表方向的4元數(shù)。
在LSTM單元當(dāng)中被放置了3個(gè)門結(jié)構(gòu),分別叫做輸入門、遺忘門和輸出門。輸入門的作用對(duì)象是細(xì)胞狀態(tài),能夠?qū)⑿碌男畔⑦x擇性地記錄到細(xì)胞狀態(tài)中,如式(4)所示:
it=sigmoid(Wxixt+Whiht-1+bi)
(4)
其中,ht-1為上一時(shí)刻輸出,xt為當(dāng)前輸入,W和b分別為權(quán)值和偏置。
遺忘門ft的作用對(duì)象是細(xì)胞狀態(tài),能夠?qū)v史信息選擇性遺忘,如式(5)所示:
ft=sigmoid(Wxfxt+Whfht-1+bf)
(5)
輸出門ot控制當(dāng)前信息流出,由上一時(shí)刻輸出ht-1和當(dāng)前輸入xt共同決定,如式(6)所示:
ot=sigmoid(Wxoxt+Whoht-1+bo)
(6)
因?yàn)榛谏疃壬窠?jīng)網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí)模型,需要大量的訓(xùn)練樣本,但是本文任務(wù)場(chǎng)景的當(dāng)前數(shù)據(jù)集還不足以支撐完整的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,很容易導(dǎo)致過(guò)擬合現(xiàn)象的發(fā)生。在訓(xùn)練之前,本文利用了在Places數(shù)據(jù)集上訓(xùn)練好的GoogLeNet[9]的權(quán)重參數(shù)作為CNN部分的初始化參數(shù),即將用作圖像識(shí)別分類的預(yù)訓(xùn)練模型用作本文目標(biāo)場(chǎng)景的初始化模型,這一方法在Kendall等人[1]的工作中得到證明。
在動(dòng)態(tài)場(chǎng)景下,由于相機(jī)的快速運(yùn)動(dòng)以及目標(biāo)場(chǎng)景存在變化,所以場(chǎng)景中的特征點(diǎn)不能很好地通過(guò)特征提取及匹配算法計(jì)算出相應(yīng)的3維空間位置,從而導(dǎo)致無(wú)法計(jì)算連續(xù)視頻序列之間的相機(jī)相對(duì)運(yùn)動(dòng)關(guān)系。因此本文將CNN和LSTM相結(jié)合,摒棄了提取特征點(diǎn)的步驟,直接利用深度卷積網(wǎng)絡(luò)作為特征提取器,在視頻序列中的每一幀提取一個(gè)2 048維的特征,本文將輸出的2 048維特征向量作為序列傳送到LSTM中進(jìn)行時(shí)序建模。
實(shí)踐中直接將2 048維特征序列輸入LSTM并沒(méi)有取得很好的效果,這是因?yàn)? 048維特征對(duì)于LSTM太長(zhǎng)以至于無(wú)法很好地關(guān)聯(lián)前后特征。為了減少LSTM輸入的特征維度,并且盡量少丟失特征信息,在CNN網(wǎng)絡(luò)輸出后添加了一個(gè)全連接層,將2 048維的特征降為1 024維,并將1 024維特征序列傳遞給LSTM進(jìn)行時(shí)序建模,構(gòu)建圖像特征的時(shí)序關(guān)系,從而保證視頻中每幀圖像的位姿狀態(tài)并不是完全獨(dú)立的,而是存在前后依賴。實(shí)驗(yàn)表明,這種做法增強(qiáng)了模型的學(xué)習(xí)能力,并且一定程度上提高了精度。
本文實(shí)驗(yàn)環(huán)境的機(jī)器配置參數(shù)如表2所示。
表2 實(shí)驗(yàn)環(huán)境配置
在微軟公共數(shù)據(jù)集7-Scenes[10]上選取了其中3個(gè)室內(nèi)場(chǎng)景數(shù)據(jù)集Chess、Office、Heads以及PoseNet文章所發(fā)布的CambridgeLandmarks數(shù)據(jù)集中室外場(chǎng)景數(shù)據(jù)集King’s College(圖2)。這2種數(shù)據(jù)集的差異很大,7-Scenes數(shù)據(jù)集的特點(diǎn)是空間范圍非常小,而圖像非常多,覆蓋密集;而CambridgeLandmarks數(shù)據(jù)集的特點(diǎn)是空間范圍很大,圖片相對(duì)較少,覆蓋很稀疏。
圖2 測(cè)試數(shù)據(jù)集
實(shí)驗(yàn)設(shè)定batchsize為75,學(xué)習(xí)率為0.0001。為了方便進(jìn)行對(duì)比,每個(gè)數(shù)據(jù)集的訓(xùn)練集、測(cè)試集選取相同,且損失函數(shù)式(1)中的β同PoseNet保持一致:在King’s College數(shù)據(jù)集上設(shè)為500,在Heads、Chess和Office室內(nèi)場(chǎng)景數(shù)據(jù)集上設(shè)定為120、500、250。
本文實(shí)時(shí)記錄了在訓(xùn)練過(guò)程中,損失(loss)值隨迭代次數(shù)的變化情況,并與PoseNet的損失函數(shù)變化情況進(jìn)行了對(duì)比。以Chess數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果為例,圖3展示了本文網(wǎng)絡(luò)結(jié)構(gòu)與PoseNet的loss值均隨著迭代次數(shù)增加的變化,在2種網(wǎng)絡(luò)結(jié)構(gòu)上都會(huì)趨于收斂,但是本文網(wǎng)絡(luò)結(jié)構(gòu)在初始階段loss值明顯低于PoseNet,并且最終收斂時(shí)loss值低于PoseNet。在不同數(shù)據(jù)集上均取得了類似的情況,整體的loss明顯低于PoseNet,證明了本文提出的網(wǎng)絡(luò)更容易訓(xùn)練。
圖3 Chess數(shù)據(jù)集loss收斂情況
如表3所示,在多個(gè)公共數(shù)據(jù)集上,本文采用的網(wǎng)絡(luò)結(jié)構(gòu)和PoseNet網(wǎng)絡(luò)結(jié)構(gòu)預(yù)測(cè)姿態(tài)結(jié)果的誤差中值進(jìn)行了對(duì)比,其中位置誤差Ex以單位米(m)衡量,角度誤差Eq以單位度(°)衡量。
表3 各數(shù)據(jù)集誤差表
Heads數(shù)據(jù)集是4個(gè)數(shù)據(jù)集中場(chǎng)景空間范圍最小的,僅1 m3。其中連續(xù)的幀差異較小,移動(dòng)速度較小。在該數(shù)據(jù)集上,將1 000張連續(xù)圖片作為訓(xùn)練集,另外1 000張連續(xù)圖片作為測(cè)試集,實(shí)驗(yàn)結(jié)果的位置誤差Ex在4個(gè)數(shù)據(jù)集中最小,預(yù)測(cè)的相機(jī)位置誤差中值僅0.28 m,并且相比PoseNet,本文的位置精度提高了20.0%,方向精度提高了30.6%。
Chess數(shù)據(jù)集的空間范圍為6 m3,數(shù)據(jù)集圖片較多幾乎覆蓋整個(gè)空間。其中圖片中含有棋盤格紋理特征豐富,并且連續(xù)圖像的旋轉(zhuǎn)較慢。選取4 000張圖片作為訓(xùn)練集,另外2 000張圖片作為測(cè)試集,實(shí)驗(yàn)結(jié)果中方向誤差Eq在室內(nèi)數(shù)據(jù)集中最小。相比PoseNet,本文方法位置精度提高了26.1%,方向精度提高了32.2%。
Office數(shù)據(jù)集空間范圍7.5 m3,圖片較多但是很多張圖片存在運(yùn)動(dòng)模糊的情況。Walch等人[6]的工作結(jié)果表明,在Office數(shù)據(jù)集上,傳統(tǒng)方法無(wú)法對(duì)其中的一些圖片進(jìn)行有效識(shí)別,無(wú)法預(yù)測(cè)位姿;而本文方法在該數(shù)據(jù)集上,每一張圖能給出一個(gè)合理的位姿預(yù)測(cè)結(jié)果,這證明了深度方法在動(dòng)態(tài)場(chǎng)景下相比傳統(tǒng)方法的優(yōu)勢(shì)和價(jià)值。本文方法訓(xùn)練集選取6 000張序列幀,測(cè)試集選取4 000張的序列幀,相比PoseNet,位置精度提高了5.9%,方向精度提高了11.2%。
King’s College數(shù)據(jù)集為大型室外場(chǎng)景,涉及5 600 m2的區(qū)域。場(chǎng)景面積大,但該數(shù)據(jù)集圖片相對(duì)較少,訓(xùn)練容易產(chǎn)生過(guò)擬合。訓(xùn)練集選取1 220幀圖片,測(cè)試集選取343幀圖片。位置誤差Ex明顯大于其他3個(gè)數(shù)據(jù)集,達(dá)到1.96 m,但是相比PoseNet,本文方法的位置精度提高了9.7%,方向精度基本一致。
為了驗(yàn)證采用遷移學(xué)習(xí)的重要性,本實(shí)驗(yàn)在King’s College數(shù)據(jù)集上增設(shè)了1組對(duì)比實(shí)驗(yàn),表4展示了采用遷移學(xué)習(xí)前后的誤差對(duì)比。在PoseNet及本文模型上,遷移學(xué)習(xí)都展示了良好的效果。引入初始化參數(shù)后,本文模型的位置精度提高了23.1%,方向精度提高了15.4%。
表4 遷移學(xué)習(xí)前后誤差對(duì)比
由于采用了LSTM,當(dāng)前幀會(huì)對(duì)同序列幀預(yù)測(cè)結(jié)果產(chǎn)生影響。如圖4所示,當(dāng)出現(xiàn)大面積遮擋的幀,甚至無(wú)效幀時(shí),對(duì)該幀圖片能夠得到一個(gè)相對(duì)合理的值,但相鄰幀的預(yù)測(cè)精度下降。本實(shí)驗(yàn)對(duì)不包含該類幀的序列進(jìn)行測(cè)試,位置誤差Ex達(dá)到1.65 m。
圖4 King’s College部分測(cè)試集
針對(duì)大型室外場(chǎng)景的實(shí)驗(yàn)結(jié)果位置誤差明顯大于小型室內(nèi)場(chǎng)景的結(jié)果,可能原因一方面是空間范圍大,另一方面是相機(jī)移動(dòng)速度快。所以增設(shè)了1組實(shí)驗(yàn)對(duì)相機(jī)速度和位置誤差的關(guān)系進(jìn)行分析。在King’s College測(cè)試集中選取了數(shù)據(jù)集中相對(duì)低速和高速的40幀序列進(jìn)行測(cè)試。如圖5、圖6所示,橫軸均為選定的測(cè)試序列,縱軸為每一幀圖片對(duì)應(yīng)的位置誤差大小,單位為m。
圖5 低速序列位置誤差
圖6 高速序列位置誤差
低速序列中,相鄰幀的相機(jī)平均位移為0.745 m,測(cè)試結(jié)果的平均位置誤差為1.290 m,誤差中值為1.138 m;高速序列相鄰幀的相機(jī)平均位移為1.363 m,測(cè)試結(jié)果的平均位置誤差為2.126 m,誤差中值為1.794 m。所以移動(dòng)速度較快的序列所估計(jì)的位置誤差較大,且明顯高于測(cè)試集整體的誤差中值,與推測(cè)相符。
針對(duì)基于自然特征的視覺(jué)3維注冊(cè)方法對(duì)于紋理特征較稀疏的場(chǎng)景以及復(fù)雜動(dòng)態(tài)場(chǎng)景表現(xiàn)不理想的情況,本文提出了一種基于CNN + LSTM網(wǎng)絡(luò)的端到端模型,以深度CNN作為特征提取器,以LSTM進(jìn)行時(shí)序建模,從而建立連續(xù)視頻序列中相機(jī)位置之間的相對(duì)運(yùn)動(dòng)關(guān)系。同PoseNet相比,獲得了更快的收斂速度,更低的損失值,更高的精度。未來(lái)的工作將針對(duì)高速移動(dòng)相機(jī)的位姿估計(jì)展開(kāi),以便提高在高速情況下估計(jì)的位置精度。