視覺里程計的重定位問題1 SVO的重定位部分

2021-10-01 06:26:53 字數 1853 閱讀 7065

svo的重定位功能體現在:運動跟蹤丟失後通過與上一關鍵幀匹配以及地圖點投影,找回當前相機位姿。由於沒有後端和回環,svo的重定位並不是回環校正後的重定位。

**部分被放在運動跟蹤執行緒裡,只有寥寥幾行,作用效果十分有限。

原文**部分如下:

framehandlermono::updateresult framehandlermono::relocalizeframe(  const se3 &t_cur_ref, frameptr ref_keyframe)

sparsealign img_align(config::kltmaxlevel(), config::kltminlevel(), 30, true, false);//false false

size_t img_align_n_tracked = img_align.run(ref_keyframe, new_frame_);

//接下來進行判斷1:如果跟蹤到超過30個點

if (img_align_n_tracked > 30) else

return res;

}//2. 如果跟蹤小於30個點 《重定位失敗》

return result_failure;

}

從上面的**看來,svo的重定位成功的條件必要滿足:1.上一關鍵幀存在;2當前幀與上一關鍵幀的影象對齊,跟蹤到》30個特徵點;3能夠通過processframe()的重重考驗(相鄰幀位姿優化、重投影位姿優化後的內點》閾值)

要滿足前兩點非常容易,但重定位往往在第三點上吊死。

在實際執行過程中發現,重定位在影象對齊環節還是可以跟蹤到的點是足夠的,但是經過重投影之後剩下的匹配點數太少,以至於重定位失敗!!

再來看看啟動重定位的條件有哪些:

在整個frame_handler_mono.cpp裡面 我只找到了當res== result_faliure時才會進行下一幀的重定位。因此在運動跟蹤過程中,一旦某一步失敗——下一幀馬上開始重定位,要是重定位又失敗呢?——繼續下一幀重定位·· 重定位···

~ 如果載體在跟蹤丟失點附近小範圍慢速運動,由於觀測的地圖點相差並不太大,即便多次重定位失敗,還是有機會跟蹤回來的。

~ 但是更真實的情況是,機體運動一下子超出範圍,開足馬力拍屁股走人,然後重定位再也無法跟蹤上,視覺跟蹤宣布失敗!!!

~ 並且重定位一直假定當前幀位姿為上乙個有效跟蹤點地位姿,當一直重定位不上時,可以通過視覺化看見機體位姿不再移動也不再增加,而是一直在丟失點閃啊閃啊閃···

跟蹤質量不佳的判定

在運動跟蹤過程中,若不滿足給定指標要求,則會判定tracking_quality_ = tracking_insufficient

出現以下幾種情況都將被判定為跟蹤質量不佳:

1.num_observation < config::qualityminfts()

[num_observations實為位姿優化後保留下來的特徵點數]

2.feature_drop / init_match_number >0.6

[feature_drop = init_match_number -num_observation ]

重投影後當前幀與地圖的匹配點數 - 優化後剩下的特徵點數 = 優化過程中特徵丟失的數量

即:位姿優化後丟失的特徵點數不能超過優化前的3/5,不然就認為跟蹤質量不佳

3.repr_n_new_references 總結起來,svo 的重定位部分問題比較多,丟失之後基本無法重定位回來,有很多地方值得修改

里程計 推算定位與視覺里程計

以下內容翻譯自wiki百科。里程計是一種利用從移動感測器獲得的資料來估計物體位置隨時間的變化而改變的方法。該方法被用在許多種機械人系統 輪式或者腿式 上面,來估計,而不是確定這些機械人相對於初始位置移動的距離。這種方法對由速度對時間積分來求得位置的估計時所產生的誤差十分敏感。快速 精確的資料採集,裝...

里程計 推算定位與視覺里程計

以下內容翻譯自wiki百科。里程計是一種利用從移動感測器獲得的資料來估計物體位置隨時間的變化而改變的方法。該方法被用在許多種機械人系統 輪式或者腿式 上面,來估計,而不是確定這些機械人相對於初始位置移動的距離。這種方法對由速度對時間積分來求得位置的估計時所產生的誤差十分敏感。快速 精確的資料採集,裝...

里程計 推算定位與視覺里程計

里程計是一種利用從移動感測器獲得的資料來估計物體位置隨時間的變化而改變的方法。該方法被用在許多種機械人系統 輪式或者腿式 上面,來估計,而不是確定這些機械人相對於初始位置移動的距離。這種方法對由速度對時間積分來求得位置的估計時所產生的誤差十分敏感。快速 精確的資料採集,裝置標定以及處理過程對於高效的...