ORB-SLAM2 ソース コード分析 (単眼) - ローカル マップ トラッキング

ORB-SLAM2 ソース コード分析 (単眼) - ローカル マップ トラッキング

ここに画像の説明を挿入

1. ローカルマップトラッキングの概要

キー フレーム、等速モデル、再配置追跡方法を参照して、各追跡に使用される現在のフレーム マップ ポイントの後処理を取得します。前提として、現在のフレームのポーズとマップ ポイントが (正確ではありませんが) わかっている必要があり、ポーズをより正確にするために、現在のフレームの 2 レベルのコモン ビュー キーフレームの情報が使用されます。
現在のフレーム:mCurrentFrame(現在のフレームは通常フレーム)
参照キーフレーム:現在のフレームとの共通ビューが最も高いキーフレームを参照キーフレームとし、mCurrentFrame.mpReferenceKFで親子関係を決定します。 KeyFrame::UpdateConnections() のキーフレーム (現在のフレームはキーフレームである必要があります)
親キーフレーム: 現在のキーフレームとの共同ビューの度合いが最も高いキーフレーム
子キーフレーム: 上記の親キーフレームの子キーフレーム

まず、以前に取得した現在のフレームのマップ ポイントに従って、現在のフレームを観察できる第 1 レベルのコモンビュー キーフレームを見つけ、これらの第 2 レベルのキー コモンビュー フレーム、子キーフレーム、親キーフレームを使用します。第 1 レベルの共通ビュー キーフレームをローカル キー フレームとしてまとめます。
上記のローカル キー フレーム内のすべてのマップ ポイントをローカル マップ ポイントとして取り出します。
ローカル マップ ポイントを現在のフレームに投影し、視野を調整し、残りのローカル マップ ポイントを現在のフレームに投影してマッチングします (関数 SearchByProjection) マッチング結果に対して BA 最適化を実行します (ポーズのみを最適化します)。

2. ローカル キー フレーム mvpLocalKeyFrames とローカル マップ ポイント mvpLocalMapPoints を更新します。

ここに画像の説明を挿入
ここに画像の説明を挿入

3. 現在のフレームの第 1 レベルのコモンビュー キー フレームと第 2 レベルのコモン ビュー キー フレームのマップ ポイントを現在のフレームに投影し、検索および照合してより多くの一致情報を取得します。

現在のフレームの第 1 レベル コモン ビュー キーフレームと第 2 レベル コモン ビュー キーフレームのマップ ポイントを現在のフレームに投影し、マップ ポイントが現在のフレームでも観測できる場合は、検索と照合を実行して、一致するポイントの数を増やすだけでなく、現在のフレームで観察されるマップ ポイントの数も増やすことができるため、追跡がより安定し、取得された姿勢がより正確になります。
ここに画像の説明を挿入

1. 現在のフレームのマップ ポイントをトラバースし、後続の投影検索マッチングに参加しないようにこれらのマップ ポイントをマークします。
ここに画像の説明を挿入

2. 現在のフレームのマップ ポイントを除くすべてのローカル マップ ポイントが現在のフレームの視野内にあるかどうかを判断します。
ここに画像の説明を挿入

3. 射影マッチングに必要なポイント数が 0 より大きい場合、射影マッチングを実行し、さらにマッチング関係を追加します。
ここに画像の説明を挿入

4. マップ ポイントを現在のフレームに投影してローカル マップポイントを追跡します (SearchByProjection)
ここに画像の説明を挿入

5.前面にさらに多くのマッチング関係を追加し、より正確なポーズを取得するためのBA最適化
ここに画像の説明を挿入

6. 追跡の一致と再配置の数に従って追跡が成功したかどうかを判断します。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_43391596/article/details/129692784