SLAM(Simultaneous localization and mapping)とはなんですか?

SLAM(Simultaneous Localization and Mapping)は、ロボティクスやコンピュータビジョンの分野で使用される技術の一つで、未知の環境におけるロボットやカメラの位置推定と同時に、その環境の地図を構築する手法です。

SLAM問題は、センサーデータ(たとえばカメラやLIDARからのデータ)のストリームが与えられた場合、ロボットの軌跡(つまり、ポーズ)を推定し、同時に環境の地図を作成する問題として定式化されます。この問題は、ロボットのセンサーがノイズを含んでいる可能性があるため、また環境には時間の経過とともに追跡が困難な特徴が含まれる可能性があるため、課題があります。

SLAM問題を解決するためには、拡張カルマンフィルター(EKF)やパーティクルフィルターなどの確率的なアプローチから、GraphSLAMやその派生などの最適化ベースの手法まで、様々なアルゴリズムがあります。これらのアルゴリズムは、一般的にはロボットのポーズや環境中のランドマークの位置を推定し、これらの推定値を使用して地図を精製します。

SLAMには、自律ナビゲーション、拡張現実(AR)、バーチャルリアリティ(VR)など、多くの実用的な応用があります。無人航空機(UAV)、地上ロボット、水中機器など、さまざまなロボットに使用されています。

SfM(Structure-from-Motion)とはなんですか?

SfM (Structure-from-Motion) は、複数の画像から 3D 空間の構造を復元する手法です。つまり、複数の画像からオブジェクトの形状、位置、向きなどの 3D 情報を推定することができます。

SfM は、複数の画像から 3D 点を抽出し、これらの点の 3D 座標とカメラの位置と向きを推定することで機能します。このため、SfM は複数の画像の間の相対的な位置と向きの推定が必要です。この相対的な位置と向きの情報は、画像の特徴点をマッチングすることで推定されます。

SfM の応用分野は多岐にわたります。例えば、建物や遺跡の復元、地形のモデリング、動画の自動化などがあります。また、SfM は、拡張現実(AR)やバーチャルリアリティ(VR)などの応用でも使用されます。

SfM はコンピュータビジョン分野で広く研究され、様々な手法が提案されています。代表的な手法には、Bundler、VisualSFM、OpenMVG、COLMAP などがあります。これらの手法は、精度、スケーラビリティ、処理速度などの面で異なります。