追蹤部分的主要思路是在當(dāng)前幀和(局部)地圖之間尋找盡可能多的對(duì)應(yīng)關(guān)系,來(lái)優(yōu)化當(dāng)前幀的位姿。
作者在追蹤這部分主要用了幾種模型:運(yùn)動(dòng)模型(tracking with motion model)、關(guān)鍵幀(tracking with reference key frame)和重定位(relocalization)。
下面一一介紹。
tracking with motion model
假設(shè)物體處于勻速運(yùn)動(dòng),那么可以用上一幀的位姿和速度來(lái)估計(jì)當(dāng)前幀的位姿。上一幀的速度可以通過前面幾幀的位姿計(jì)算得到。這個(gè)模型適用于運(yùn)動(dòng)速度和方向比較一致,沒有大轉(zhuǎn)動(dòng)的情形下,比如勻速運(yùn)動(dòng)的汽車、機(jī)器人、人等。而對(duì)于運(yùn)動(dòng)比較隨意的目標(biāo),當(dāng)然就會(huì)失效了。此時(shí)就要用到下面兩個(gè)模型。
tracking with reference key frame
假如motion model已經(jīng)失效,那么首先可以嘗試和最近一個(gè)關(guān)鍵幀去做匹配。畢竟當(dāng)前幀和上一個(gè)關(guān)鍵幀的距離還不是很遠(yuǎn)。作者利用了bag of words(bow)來(lái)加速匹配。首先,計(jì)算當(dāng)前幀的bow,并設(shè)定初始位姿為上一幀的位姿;其次,根據(jù)位姿和bow詞典來(lái)尋找特征匹配(參見orb-slam(六)回環(huán)檢測(cè));最后,利用匹配的特征優(yōu)化位姿。