国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

卷積編碼器在無(wú)人機(jī)回環(huán)檢測(cè)上的應(yīng)用

2022-04-14 12:38駱旭鋒李智
科學(xué)與信息化 2022年7期
關(guān)鍵詞:回環(huán)關(guān)鍵幀編碼器

駱旭鋒 李智

四川大學(xué)電子信息學(xué)院 四川 成都 610065

引言

無(wú)人機(jī)的自主飛行已然成為現(xiàn)階段研究的重點(diǎn)。SLAM應(yīng)用在無(wú)人機(jī)上是一個(gè)必然的趨勢(shì)。無(wú)人機(jī)既能通過(guò)相機(jī)得到的圖像數(shù)據(jù)來(lái)進(jìn)行自主定位,又能通過(guò)這些圖像數(shù)據(jù)來(lái)進(jìn)行空間障礙物的構(gòu)建,為避障提供數(shù)據(jù)。因此一個(gè)高效、穩(wěn)定且精確的SLAM系統(tǒng)對(duì)于中小型無(wú)人機(jī)在自主飛行中有著重要的作用。在現(xiàn)有開(kāi)源的SLAM框架中,由中國(guó)香港科技大學(xué)提出的VINS-Fusion框架在精確度和算法消耗上最契合中小型無(wú)人機(jī)。

由于SLAM是根據(jù)相鄰圖像幀之間匹配計(jì)算相機(jī)的位姿變化,根據(jù)位姿變化累計(jì)定位,所以在長(zhǎng)時(shí)間的運(yùn)動(dòng)過(guò)程中會(huì)產(chǎn)生累積誤差。Raul Mur-Artal團(tuán)隊(duì)提出了回環(huán)檢測(cè)方法[1]來(lái)消除累計(jì)誤差。若無(wú)人機(jī)到達(dá)已飛行過(guò)的路徑時(shí),即當(dāng)前幀圖像與歷史圖像幀之間相匹配時(shí),進(jìn)行位姿的匹配優(yōu)化,從而消除累積誤差。在VINS-Fusion中,回環(huán)檢測(cè)使用的是基于詞袋模型構(gòu)建的回環(huán)檢測(cè)。但是隨著運(yùn)行時(shí)間的增長(zhǎng),檢測(cè)每幀關(guān)鍵幀的時(shí)間也在逐步增長(zhǎng)。詞袋模型中的詞典數(shù)會(huì)不斷記錄關(guān)鍵幀的特征描述子,詞典樹(shù)中的數(shù)據(jù)量會(huì)不斷擴(kuò)大。當(dāng)運(yùn)動(dòng)環(huán)境有比較大的變化,例如從街道環(huán)境運(yùn)動(dòng)到森林環(huán)境時(shí),描述子放在不同的葉子節(jié)點(diǎn)中,此時(shí)檢測(cè)的效率是可以接受的;但是當(dāng)運(yùn)動(dòng)環(huán)境相似,例如長(zhǎng)時(shí)間在樹(shù)林中飛行時(shí),相似的描述子會(huì)放入同一個(gè)葉子節(jié)點(diǎn)中,關(guān)鍵幀比較會(huì)更加費(fèi)時(shí)。因此運(yùn)動(dòng)一段時(shí)間之后,詞袋模型檢測(cè)關(guān)鍵幀的效率會(huì)顯著下降。針對(duì)這一問(wèn)題,本文提出了在VINS-Fusion中融入卷積編碼器這一算法。通過(guò)實(shí)驗(yàn)運(yùn)行KITTI數(shù)據(jù)集證明,該算法不僅能夠節(jié)省算力,而且能夠提高整個(gè)回環(huán)檢測(cè)的正確率。

1 VINS-Fusion

VINS-Fusion是由中國(guó)香港科技大學(xué)提出的視覺(jué)慣性SLAM算法[2]。VINS-Fusion在前端使用的是特征點(diǎn)法和光流法結(jié)合的方法來(lái)跟蹤關(guān)鍵點(diǎn)的運(yùn)動(dòng)。先用前一幀的運(yùn)動(dòng)估計(jì)前一幀的特征點(diǎn)在當(dāng)前幀的位置,用LK光流來(lái)跟蹤特幀點(diǎn),如果是雙目相機(jī),還需左右匹配關(guān)鍵點(diǎn)。當(dāng)使用LK光流匹配特征點(diǎn)誤差過(guò)大時(shí),直接丟棄該點(diǎn)。所以會(huì)出現(xiàn)特征點(diǎn)數(shù)目減少的情況。當(dāng)光流匹配的特征點(diǎn)數(shù)目不夠時(shí),通過(guò)FAST提取特征點(diǎn)加入匹配。然后在后端結(jié)合IMU的殘差和圖像特征殘差來(lái)進(jìn)行位姿優(yōu)化。VINS- Fusion在現(xiàn)在的框架中,準(zhǔn)確性和魯棒性表現(xiàn)的都比較優(yōu)秀。在前端利用光流來(lái)減少計(jì)算所消耗的資源,對(duì)于高速飛行的無(wú)人機(jī)等平臺(tái)有很好的適用性。

2 卷積編碼器

Nate Merrill團(tuán)隊(duì)因環(huán)境光照、動(dòng)態(tài)物體、天氣變化等對(duì)于詞袋模型檢測(cè)回環(huán)有極大的影響,提出了輕量級(jí)無(wú)監(jiān)督學(xué)習(xí)回環(huán)檢測(cè),即回環(huán)檢測(cè)卷積編碼器。設(shè)計(jì)卷積編碼器是為了得到與圖像的方向梯度直方圖描述子接近的數(shù)值序列來(lái)代表這幅圖像。HOG描述子為用一組字符序列來(lái)代表一幅圖像,常用于深度學(xué)習(xí)中的物體檢測(cè)。HOG使表征圖像的數(shù)據(jù)維度降低、數(shù)據(jù)量大量減少。最重要的是,HOG使用局部區(qū)域的歸一化直方圖,可以減小由局部光照變化帶來(lái)的影響。但是由于圖像的HOG描述子計(jì)算較為復(fù)雜,消耗大量的計(jì)算資源,實(shí)時(shí)性差,所以在回環(huán)檢測(cè)中直接去計(jì)算圖像的HOG描述子是一個(gè)不可取的方案。卷積編碼器通過(guò)訓(xùn)練,圖像通過(guò)該卷積編碼器得到的序列是接近HOG描述子的。也就是說(shuō),圖像通過(guò)卷積編碼器得到的序列是可以在圖像檢測(cè)中使用。而圖像只要通過(guò)3層的卷積神經(jīng)網(wǎng)絡(luò)就能得到圖像的序列值,大大節(jié)省了計(jì)算資源,可以在回環(huán)檢測(cè)中使用。

卷積編碼器的網(wǎng)絡(luò)框架如圖1所示,首先原始圖像都需要轉(zhuǎn)換為灰度,同時(shí)對(duì)每一幅圖像轉(zhuǎn)換為120×160大小的圖像塊。然后把這些圖像塊送入到卷積編碼器中,即一個(gè)3層的卷積神經(jīng)網(wǎng)絡(luò)。該神經(jīng)網(wǎng)絡(luò)包括兩個(gè)卷積池化層以及一個(gè)純卷積層。在這3層中,每一層之后都會(huì)有一個(gè)ReLU激活層,使整個(gè)網(wǎng)絡(luò)引入非線性變化。一張圖片經(jīng)過(guò)這三層卷積之后,得到一個(gè)4×14×19的圖像塊。最后把這些數(shù)據(jù)進(jìn)行重新排列,得到1064個(gè)數(shù)值,即一個(gè)大小為1064的序列塊。此序列塊為該圖像HOG描述子的近似替代。

圖1 卷積編碼器的網(wǎng)絡(luò)結(jié)構(gòu)

由于整個(gè)卷積編碼器得到的數(shù)值要盡量代表此圖像HOG描述子,所以此網(wǎng)絡(luò)模型使用圖像的HOG描述子來(lái)進(jìn)行訓(xùn)練。尺寸為120×160的圖像經(jīng)過(guò)opencv的HOG算法計(jì)算描述子,得到3648位的描述子。因此在訓(xùn)練時(shí)使用了三個(gè)全連接層,把通過(guò)卷積編碼器得到的1064位擴(kuò)充至3648位。在每個(gè)全連接層后都使用了sigmod激活層來(lái)更好地重建HOG描述子。計(jì)算HOG描述子和用卷積編碼器恢復(fù)的描述子之間的歐幾里得距離作為損失函數(shù),從而進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。圖2即為卷積編碼器的訓(xùn)練部分網(wǎng)絡(luò)結(jié)構(gòu)示意圖。

圖2 卷積編碼器的訓(xùn)練部分網(wǎng)絡(luò)結(jié)構(gòu)示意圖

3 VINS-Fusion結(jié)合卷積編碼器的回環(huán)系統(tǒng)

在VINS-Fusion中結(jié)合卷積編碼器的算法流程如圖3所示。

圖3 結(jié)合卷積編碼器的回環(huán)檢測(cè)算法流程圖

本算法將卷積編碼器融入到了VINS-Fusion回環(huán)檢測(cè)之中。先將當(dāng)前幀的圖像送入卷積編碼器中進(jìn)行編碼,把編碼得到的編碼值與數(shù)據(jù)庫(kù)中當(dāng)前幀20幀之前的關(guān)鍵幀的編碼值矢量乘積得到兩幀畫(huà)面之間的匹配值。篩選出這些匹配值中最大的匹配值,若這個(gè)最大匹配值大于所設(shè)定的閾值,就認(rèn)為檢測(cè)到回環(huán),返回該候選幀的序號(hào)。進(jìn)入回環(huán)校驗(yàn)部分,將候選幀與當(dāng)前幀進(jìn)行關(guān)鍵點(diǎn)匹配,若匹配點(diǎn)數(shù)小于25個(gè),則認(rèn)為檢測(cè)錯(cuò)誤。如果匹配點(diǎn)大于25個(gè)則計(jì)算兩幀之間的位姿,若位姿距離大于20m或位姿的偏航角大于30度,認(rèn)為檢測(cè)錯(cuò)誤,反之,則認(rèn)為檢測(cè)到回環(huán),將兩幀的位姿匹配放入位姿圖中進(jìn)行優(yōu)化。我們需要把檢測(cè)失敗或檢測(cè)錯(cuò)誤的關(guān)鍵幀的編碼值記錄在數(shù)據(jù)庫(kù)中。雖然在與數(shù)據(jù)庫(kù)匹配的過(guò)程中使用了暴力匹配的算法,但是1064位向量矢量乘積計(jì)算所消耗的資源較小,在數(shù)據(jù)庫(kù)增長(zhǎng)的過(guò)程中,所消耗的時(shí)間緩慢會(huì)上升,所以該算法在算力的消耗上是合理的。

4 實(shí)驗(yàn)環(huán)境

4.1 實(shí)驗(yàn)環(huán)境

本實(shí)驗(yàn)采用的硬件配置如下:電腦處理器為Intel core i7-9700KF @ 3.60GHz 8核;內(nèi)存為32GB DDR4 3200MHz。

本實(shí)驗(yàn)采用的軟件配置如下:操作系統(tǒng)為Ubuntu18.04;開(kāi)發(fā)平臺(tái)為機(jī)器人器人操作系統(tǒng)(Robot Operating System,ROS);深度學(xué)習(xí)的框架為Caffe。

4.2 KITTI數(shù)據(jù)集

KITTI數(shù)據(jù)集是由德國(guó)卡爾斯魯厄理工學(xué)院和豐田美國(guó)技術(shù)研究院共同創(chuàng)立的數(shù)據(jù)集,主要應(yīng)用在測(cè)評(píng)自動(dòng)駕駛場(chǎng)景下關(guān)于計(jì)算機(jī)視覺(jué)的算法[3]。本次實(shí)驗(yàn)使用的是KITTI數(shù)據(jù)集中的2011_10_03_drive_0027_syncedraw數(shù)據(jù),此數(shù)據(jù)集含有采集到的左右灰度圖像、左右彩色圖像、雷達(dá)點(diǎn)云數(shù)據(jù)、GPS、IMU、位姿等數(shù)據(jù)信息。在本次實(shí)驗(yàn)中需要把這些數(shù)據(jù)處理為rosbag再使用。

5 實(shí)驗(yàn)結(jié)果分析

5.1 匹配閾值選擇

在上述算法中首先需要解決的問(wèn)題是匹配閾值的設(shè)定。如果閾值設(shè)置的太高,實(shí)際匹配的圖像對(duì)因?yàn)槠ヅ渲档陀陂撝刀徽J(rèn)為是不匹配的,導(dǎo)致該算法的檢出率降低。如果閾值設(shè)置的太低,實(shí)際不匹配的圖像對(duì)因?yàn)槠ヅ渲颠_(dá)到了設(shè)定的閾值而被認(rèn)為是匹配的,導(dǎo)致該算法的誤檢率大幅上升。因此,設(shè)定一個(gè)適當(dāng)?shù)拈撝祵?duì)于整個(gè)算法來(lái)說(shuō)是比較重要的。本小節(jié)對(duì)不同閾值返回幀的正誤情況在KITTI數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)范圍為0.920-0.970,以0.005為實(shí)驗(yàn)使用數(shù)據(jù)間隔,實(shí)驗(yàn)結(jié)果如圖4所示。

圖4 不同閾值下返回幀的正誤情況圖

可以由圖4看出,在0.940與0.945的表現(xiàn)效果最佳。在0.945時(shí),錯(cuò)誤個(gè)數(shù)在之后減小的幅度較小,而在0.940時(shí),正確的個(gè)數(shù)達(dá)到了較高值。因此,對(duì)0.940和0.945兩個(gè)閾值,在KITTI數(shù)據(jù)集上分別進(jìn)行了3次實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果記錄在表1中。

表1 KITTI數(shù)據(jù)集下兩個(gè)閾值設(shè)定所消耗的時(shí)間和返回幀正誤情況

實(shí)驗(yàn)結(jié)果顯示,閾值設(shè)定在0.940和0.945之間是相差不大的,也就是這些值都是可以使用的。但是,隨著使用時(shí)間的增長(zhǎng),光影、動(dòng)態(tài)物體等會(huì)發(fā)生改變,所以在實(shí)際長(zhǎng)時(shí)間使用過(guò)程中,閾值需要緩慢降低來(lái)適應(yīng)這些變化。

5.2 算法對(duì)比

針對(duì)在VINS-Fusion回環(huán)檢測(cè)運(yùn)行過(guò)程中消耗的時(shí)間問(wèn)題和返回幀的正誤情況進(jìn)行實(shí)驗(yàn)分析。把基于詞袋模型回環(huán)檢測(cè)算法和本文提出的算法進(jìn)行對(duì)比,將算法運(yùn)行時(shí)間、算法返回幀的正誤幀數(shù)進(jìn)行記錄,每一個(gè)算法的結(jié)果取三次實(shí)驗(yàn)的平均,記錄在如圖5中。由于閾值為0.945和0.940的差距并不是很大,下文中所有的數(shù)值都以閾值0.940為例。算法主要在回環(huán)檢測(cè)關(guān)鍵幀時(shí)產(chǎn)生了差異。本章算法比原使用詞袋模型進(jìn)行關(guān)鍵幀匹配的算法在檢測(cè)關(guān)鍵幀時(shí)所花費(fèi)時(shí)間節(jié)省了58.5%。由算法返回幀數(shù)量對(duì)比圖看,基于詞袋模型的檢測(cè)正確率為12.9%,本章算法檢測(cè)正確率為70.1%,大大降低了回環(huán)校驗(yàn)在排除錯(cuò)誤幀上所花費(fèi)的時(shí)間。在回環(huán)檢測(cè)總體時(shí)間上看,融合卷積編碼器與VINS-Fusion回環(huán)檢測(cè)時(shí)間比原算法減少了65.5%的時(shí)間。

圖5 不同閾值下返回幀的正誤情況圖

6 結(jié)束語(yǔ)

本文將卷積編碼器融入VINS-Fusion中,在一定程度上解決了基于詞袋模型檢測(cè)時(shí)間長(zhǎng)而表現(xiàn)較差的問(wèn)題。實(shí)驗(yàn)結(jié)果表明,該算法不僅在回環(huán)檢測(cè)上節(jié)省算力,而且在回環(huán)檢測(cè)返回幀的正確率上遠(yuǎn)高于基于詞袋模型的VINS-Fusion算法。該算法相較于原始算法更適合用在中小型無(wú)人機(jī)長(zhǎng)時(shí)間飛行定位上。

猜你喜歡
回環(huán)關(guān)鍵幀編碼器
基于ResNet18特征編碼器的水稻病蟲(chóng)害圖像描述生成
WV3650M/WH3650M 絕對(duì)值旋轉(zhuǎn)編碼器
WDGP36J / WDGA36J編碼器Wachendorff自動(dòng)化有限公司
基于圖像熵和局部幀差分的關(guān)鍵幀提取方法
基于Beaglebone Black 的絕對(duì)式編碼器接口電路設(shè)計(jì)*
嘟嘟闖關(guān)記
基于誤差預(yù)測(cè)模型的半自動(dòng)2D轉(zhuǎn)3D關(guān)鍵幀提取算法
《中國(guó)現(xiàn)代詩(shī)歌散文欣賞》之新詩(shī)教學(xué)多樣性探索
基于計(jì)算機(jī)三維動(dòng)畫(huà)建模技術(shù)的中國(guó)皮影藝術(shù)新傳承
運(yùn)動(dòng)圖像關(guān)鍵幀快速跟蹤系統(tǒng)的改進(jìn)
光山县| 大悟县| 牡丹江市| 沁水县| 太白县| 湄潭县| 梁山县| 张家界市| 万荣县| 萍乡市| 阳春市| 循化| 无为县| 巴林左旗| 监利县| 萍乡市| 宝应县| 昔阳县| 酉阳| 两当县| 揭东县| 乌拉特中旗| 阿尔山市| 九龙城区| 罗定市| 贺兰县| 隆回县| 泸水县| 苍南县| 班戈县| 台南市| 外汇| 忻州市| 普宁市| 都匀市| 阜平县| 汤阴县| 九江县| 阿拉善左旗| 武夷山市| 慈溪市|