王紅君 郝金龍 趙 輝,2 岳有軍
1(天津市復(fù)雜系統(tǒng)控制理論及應(yīng)用重點(diǎn)實(shí)驗(yàn)室 天津 300384)2(天津農(nóng)學(xué)院 天津 300384)
近年來(lái),位置識(shí)別在機(jī)器視覺和機(jī)器人領(lǐng)域中得到了極大的關(guān)注。2014年以來(lái),國(guó)際機(jī)器人與自動(dòng)化會(huì)議(ICRA)和國(guó)際計(jì)算機(jī)視覺與模式識(shí)別會(huì)議(CVPR)中多次設(shè)置視覺位置識(shí)別相關(guān)研討會(huì)[1]。
位置識(shí)別可廣泛應(yīng)用于定位與地圖構(gòu)建(SLAM)、自動(dòng)駕駛、機(jī)器人導(dǎo)航、增強(qiáng)現(xiàn)實(shí)和圖片地理定位等技術(shù)。比如,在SALM技術(shù)中,位置識(shí)別可以應(yīng)用于回環(huán)檢測(cè)環(huán)節(jié)?;丨h(huán)檢測(cè)是移動(dòng)機(jī)器人抑制累計(jì)誤差的關(guān)鍵,通過(guò)識(shí)別對(duì)同一位置的重新訪問(wèn),機(jī)器人可以進(jìn)行姿態(tài)和全局地圖的優(yōu)化,提高系統(tǒng)的精度和穩(wěn)定性。
在大規(guī)模城市環(huán)境下,往往存在著光照變化(圖1)、攝像機(jī)拍攝角度變化(圖2)、移動(dòng)物體(圖3)、建筑物和地表外觀改變(圖4)等。然而傳統(tǒng)圖像特征如SIFT、SURF、BRIEF、FAST和ORB已經(jīng)無(wú)法應(yīng)對(duì)這種環(huán)境條件的劇烈變化。
圖1 光照變化
圖2 攝像機(jī)拍攝角度變化
圖3 移動(dòng)物體(人車等)
圖4 建筑物和地表外觀改變
近些年隨著卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,各種CNN如AlexNet[2]、VGG[3]、GoogLeNet[4]和ResNet[5]等越來(lái)越多地被用來(lái)進(jìn)行圖像特征提取。這些方法被廣泛應(yīng)用于物體檢測(cè)追蹤、場(chǎng)景識(shí)別、人體動(dòng)作識(shí)別和語(yǔ)義識(shí)別等領(lǐng)域。同樣CNN也被應(yīng)用到視覺位置識(shí)別中,2016年CVPR上Arandjelovic等[6]提出了一種可進(jìn)行端到端訓(xùn)練的視覺位置識(shí)別網(wǎng)絡(luò)NetVLAD。NetVLAD嘗試解決了大規(guī)模視覺地點(diǎn)識(shí)別的問(wèn)題,實(shí)驗(yàn)表明,其在Pittsburgh和Tokyo 24/7數(shù)據(jù)集上,效果明顯優(yōu)于傳統(tǒng)的圖像表示算法,并且超越了當(dāng)時(shí)最先進(jìn)的圖像描述方法VLAD。
從FaceNet[7]與SENet[8]中得到啟發(fā)提出一種基于SENet改進(jìn)的ResNet[5]的視覺位置識(shí)別方法PlaceNet。通過(guò)引入注意力機(jī)制,使得ResNet擁有更高的精度。同時(shí)使用自建大規(guī)模數(shù)據(jù)集進(jìn)行訓(xùn)練使得網(wǎng)絡(luò)的魯棒性更強(qiáng)。
深度殘差網(wǎng)絡(luò)(Deep Residual Network,ResNet)由He等[5]提出,并在ImageNet比賽分類任務(wù)上獲得第一名。因?yàn)樗Y(jié)構(gòu)簡(jiǎn)單但識(shí)別能力強(qiáng),圖像檢測(cè)、分割和識(shí)別等領(lǐng)域的很多方法都是在ResNet50或者ResNet101的基礎(chǔ)上完成的。ResNet 由若干個(gè)基礎(chǔ)塊或瓶頸模型組成,其結(jié)構(gòu)如圖5所示。不同數(shù)量的基礎(chǔ)塊或瓶頸模型組成了不同深度的ResNet。本文使用101層的ResNet來(lái)對(duì)圖像進(jìn)行特征提取。
圖5 基礎(chǔ)塊與瓶頸模型的結(jié)構(gòu)圖
胡杰團(tuán)隊(duì)(WMW)在CVPR 2017上提出了壓縮激勵(lì)網(wǎng)絡(luò)(Squeeze-and-Excitation Networks,SENet),利用SENet,一舉取得最后一屆 ImageNet 2017 競(jìng)賽 Image Classification 任務(wù)的冠軍,在ImageNet數(shù)據(jù)集上將top-5 error降低到2.251%,原先的最好成績(jī)是2.991%[8]。
圖6 SE block結(jié)構(gòu)圖
2015年Schroff等[7]提出了FaceNet,其使用深度卷積網(wǎng)絡(luò)進(jìn)行人臉識(shí)別,實(shí)現(xiàn)了人臉識(shí)別系統(tǒng)的端到端學(xué)習(xí)。先將人臉圖像通過(guò)卷積神經(jīng)網(wǎng)絡(luò)直接映射到特征空間,再通過(guò)三元組損失(Triplet Loss),使得相同身份的所有面部之間的歐氏平方距離變小,而來(lái)自不同身份的面部圖像之間的歐氏平方距離變大。這樣就可以通過(guò)人臉圖像映射后的特征向量間的歐氏平方距離來(lái)判斷是不是同一個(gè)人。圖7為FaceNet的基本結(jié)構(gòu)。
圖7 FaceNet的基本結(jié)構(gòu)
本文使用ResNet的瓶頸模型來(lái)搭建PlaceNet。SENet的核心操作是壓縮與激勵(lì)。為了將SENet嵌入ResNet中,使用全局平均池化來(lái)進(jìn)行壓縮操作,使用兩次全連接來(lái)進(jìn)行激勵(lì)操作。通過(guò)第一次全連接將通道數(shù)降到輸入的1/16,然后使用ReLU激活函數(shù)激活后進(jìn)行第二次全連接將輸出恢復(fù)到原來(lái)的通道數(shù),最后通過(guò)Sigmoid激活函數(shù)激活后經(jīng)過(guò)Scale操作加權(quán)到輸入的每一個(gè)通道上。改進(jìn)后的瓶頸模型結(jié)構(gòu)如圖8所示。
圖8 改進(jìn)后的瓶頸模型結(jié)構(gòu)
與FaceNet類似,本文使用改進(jìn)后的ResNet101進(jìn)行視覺位置識(shí)別,實(shí)現(xiàn)了視覺位置識(shí)別的端到端學(xué)習(xí)。先通過(guò)改進(jìn)后的ResNet101將圖片映射到特征空間。再通過(guò)三元組損失使得不同地點(diǎn)特征向量間的標(biāo)準(zhǔn)歐氏距離變大,相同地點(diǎn)特征向量間的歐氏平方距離變小。這樣就可以用圖片特征向量間的歐氏平方距離來(lái)判斷圖片的相似度,進(jìn)而再判斷兩幅圖片的拍攝地是否相同。
PlaceNet的基本結(jié)構(gòu)如圖9所示,其中每一個(gè)Block的基本結(jié)構(gòu)相同,只是其瓶頸結(jié)構(gòu)重復(fù)次數(shù)和輸出通道數(shù)不同。Block1到Block4的瓶頸結(jié)構(gòu)重復(fù)次數(shù)分別是3、4、23和3,而輸出通道數(shù)分別為256、512、1 024和2 048。
圖9 PlaceNet的基本結(jié)構(gòu)
整個(gè)視覺位置識(shí)別系統(tǒng)的結(jié)構(gòu)如圖10所示。通過(guò)PlaceNet對(duì)所有的數(shù)據(jù)庫(kù)圖片進(jìn)行映射得到它們的特征向量,然后建立KD樹。同樣得到待查詢圖片的特征向量之后使用最鄰近匹配獲得最相似的匹配項(xiàng),如果它們的特征向量間距小于閾值即匹配成功,反之則不成功。
圖10 整個(gè)系統(tǒng)的結(jié)構(gòu)
有關(guān)視覺位置識(shí)別的數(shù)據(jù)集并不多,其中一部分包含可訓(xùn)練圖片較少,還有一部分私有不可獲取。所以,本文選擇自建數(shù)據(jù)集。從谷歌街景中使用Python爬蟲在世界范圍爬取了紐約、東京、吉隆坡三個(gè)城市100萬(wàn)幅街景圖片。將同一地點(diǎn)按偏航角(Yaw)從0°到360°每隔5°爬取72組街景圖片。東京數(shù)據(jù)集中的部分圖片如圖11所示。
圖11 東京某地同Yaw角拍攝的3幅不同時(shí)間的圖片
在數(shù)據(jù)集中每幅圖片都包含GPS坐標(biāo)信息,把GPS坐標(biāo)距離小于等于10 m的圖片看作同一地點(diǎn)拍攝的圖片,大于10 m的為不同地方拍攝的圖片,這樣就可以選出可用于訓(xùn)練的圖片三元組。選取東京街景數(shù)據(jù)集中拍攝偏航角為0°、90°、180°和270°四組圖片共計(jì)62 450幅圖片當(dāng)作訓(xùn)練集。
在PlaceNet的訓(xùn)練中選取損失函數(shù)的關(guān)鍵是要體現(xiàn)出圖片之間的差異,用來(lái)監(jiān)督訓(xùn)練,這種關(guān)聯(lián)變量因數(shù)據(jù)集的特征而定,在自建的東京街景數(shù)據(jù)集上使用GPS坐標(biāo)比較合適。使用Triplet損失函數(shù)[7]進(jìn)行PlaceNet的訓(xùn)練,Triplet損失函數(shù)為:
(1)
在PlaceNet的訓(xùn)練中有一些重要參數(shù)需要根據(jù)數(shù)據(jù)集進(jìn)行針對(duì)設(shè)置。將訓(xùn)練迭代次數(shù)設(shè)置為30萬(wàn)。采用指數(shù)衰減學(xué)習(xí)率,將初始學(xué)習(xí)率設(shè)置為2.0E-4,在迭代次數(shù)為13 000次時(shí)開始衰減。將輸出特征向量維度設(shè)置為256。訓(xùn)練時(shí)的損失與TOP3精度隨迭代次數(shù)變化的曲線如圖12和圖13所示。
圖12 損失與隨迭代次數(shù)變化曲線
圖13 TOP3精度與隨迭代次數(shù)變化曲線
驗(yàn)證實(shí)驗(yàn)在一臺(tái)圖像處理服務(wù)器上進(jìn)行,該服務(wù)器配備了64 GB的運(yùn)行內(nèi)存、48個(gè)2.20 GHz 的英特爾至強(qiáng)CPU、2張12 GB顯存的GeForce GTX 1080Ti 顯卡。在該實(shí)驗(yàn)平臺(tái)上搭建深度學(xué)習(xí)環(huán)境Anaconda3以及深度學(xué)習(xí)框架TensorFlow進(jìn)行實(shí)驗(yàn)。
測(cè)試集選取公共數(shù)據(jù)集SL(St Lucia Multiple Time of Day)[9]和自建數(shù)據(jù)集KL(Kuala Lumpur)。SL數(shù)據(jù)集采集于澳大利亞昆士蘭州圣盧西亞郊區(qū)的一條道路,其查詢數(shù)據(jù)庫(kù)含有7 045幅車載攝像機(jī)拍攝的圖片,待匹配圖片集有6 709幅車載攝像機(jī)拍攝的圖片。KL數(shù)據(jù)集為在谷歌街景爬取馬來(lái)西亞吉隆坡的街景照片,其查詢數(shù)據(jù)庫(kù)含有9 574幅街景圖片,待匹配圖片集含有1 064幅街景圖片。
如果前N個(gè)檢索到的數(shù)據(jù)庫(kù)圖像中的至少一個(gè)與查詢圖像拍攝地的距離小于等于10 m,則認(rèn)為查詢圖像被準(zhǔn)確召回。然后針對(duì)不同的N值繪制準(zhǔn)確召回的比例曲線。在KL和SL測(cè)試集上進(jìn)行測(cè)試,得到兩個(gè)曲線如圖14和圖15所示。
圖14 本文方法在KL上準(zhǔn)確召回率隨N的變化曲線
圖15 本文方法在SL上準(zhǔn)確召回率隨N的變化曲線
可以看出在KL和SL測(cè)試集上相同的候選項(xiàng)個(gè)數(shù)N下,嵌入SENet的PlaceNet比未嵌入SENet的PlaceNet有著更高的準(zhǔn)確召回率。這說(shuō)明了通過(guò)嵌入SENet把注意力機(jī)制引入的PlaceNet,提高了PlaceNet在視覺位置識(shí)別任務(wù)上的精度。
同樣在KL和SL測(cè)試集上進(jìn)行測(cè)試,測(cè)試結(jié)果如圖16和圖17所示。
圖16 不同方法在KL上準(zhǔn)確召回率隨N的變化曲線
圖17 不同方法在SL上準(zhǔn)確召回率隨N的變化曲線
從圖16可以看出在KL測(cè)試集上使用TokyoTM、pitts30k訓(xùn)練集的NetVLAD的準(zhǔn)確召回率十分相近,在N=1到N=11時(shí)低于使用KL訓(xùn)練集的NetVLAD的召回精度。而嵌入SENet的PlaceNet準(zhǔn)確召回率一直最高,在N=1時(shí)更是高出0.36。從圖17可以看出在SL測(cè)試集上使用TokyoTM、pitts30k訓(xùn)練集的NetVLAD的準(zhǔn)確召回率,前者比后者多約0.05,同時(shí)都低于使用KL訓(xùn)練集的NetVLAD的召回精度。而嵌入SENet的PlaceNet召回精度一直最高,且比使用TokyoTM、pitts30k訓(xùn)練集的NetVLAD的召回精度高出0.4。
從結(jié)果上來(lái)看在不同測(cè)試集上PlaceNet都比NetVLAD擁有更高的召回精度。在自建數(shù)據(jù)集KL上訓(xùn)練得到的NetVLAD模型的召回精度比NetVLAD在原有數(shù)據(jù)集訓(xùn)練得到模型的召回精度高,說(shuō)明本文數(shù)據(jù)集更適用于視覺地點(diǎn)識(shí)別任務(wù)的訓(xùn)練。同時(shí)PlaceNet匹配一幅圖片平均耗時(shí)1.9 ms而NetVLAD則需要300 ms,表明PlaceNet匹配效率更高。
在大規(guī)模城市環(huán)境下,為提高視覺位置識(shí)別的精度,本文提出一種新的視覺位置識(shí)別網(wǎng)絡(luò)PlaceNet。實(shí)驗(yàn)表明,大規(guī)模城市環(huán)境下PlaceNet在面對(duì)光照變化、攝像機(jī)拍攝角度變化、存在移動(dòng)物體、建筑物和地表外觀改變時(shí),仍然可以準(zhǔn)確地進(jìn)行視覺位置識(shí)別;在同樣的大規(guī)模城市環(huán)境下,PlaceNet比NetVLAD擁有更高的精度和匹配效率。