Semantic Mapping
セマンティックマッピングは、セグメンテーション、深度、姿勢を時間軸に沿って融合し、道路、壁、ドア、人など、何がどこにあるかを記録した地図を作成します。
セマンティックマッピングとは、幾何形状に加えて、道路、歩道、壁、ドア、椅子、人などのクラスラベルが各地点に付与された環境の空間マップを作成するプロセスです。幾何マップはロボットに地表面の位置を伝えますが、セマンティックマップは地表面が何であるかも伝えるため、「キッチンのテーブルに行く」という指示に従ったり、芝生を避けたり、横断歩道付近に歩行者がいると想定したりできます。セマンティックマップは、セマンティックセグメンテーションまたは物体検出を深度センシングや位置推定と組み合わせたもので、ロボティクス、自動運転車、空間コンピューティングの認識機能を支える中核要素です。
セマンティックマッピングの仕組み#
新しいカメラフレームは、次の3つのステップで処理されます。セグメンテーションモデルが各ピクセルにクラスを割り当てます。LiDAR、ステレオカメラ、RGB-Dカメラ、または単眼深度推定によって、ラベル付きピクセルを3D点に変換します。ビジュアルSLAMまたはオドメトリーで推定したロボットの姿勢を使い、これらの点を共有マップのセルに配置します。最後に、時間経過に伴うセンサーフュージョンで新しいラベルを各セルの蓄積情報と統合します。通りかかった人が恒久的な壁として記録されないよう、移動物体は別途処理します。
Cityscapesで事前学習したUltralytics YOLO26のセマンティックセグメンテーションモデルは、道路、歩道、建物、植生、人、車を含む19種類の都市クラスのいずれかを各ピクセルに割り当てます。これは、街路レベルのセマンティックマップが各フレームで統合する入力です。
フレームごとのノイズを含む予測から信頼性の高いマップを作り出すのがフュージョンです。Imperial College LondonのJohn McCormacらが2017年に発表したSemanticFusionは、各表面要素のクラス確率分布を保持し、新たなネットワーク予測を逐次的なベイズ更新で乗算しました。このシミュレーションでは、70%の確率で正解するセグメンテーションモデルが観測した1,000セルのマップに、同じ更新を適用します。
import numpy as np
rng = np.random.default_rng(0)
num_cells, num_classes = 1000, 4 # map cells; classes such as road, sidewalk, building, vegetation
truth = rng.integers(0, num_classes, num_cells)
# Sensor model: segmentation labels a cell correctly 70% of the time, otherwise picks another class
likelihood = np.full((num_classes, num_classes), 0.1)
np.fill_diagonal(likelihood, 0.7)
log_belief = np.zeros((num_cells, num_classes)) # uniform prior in every cell
for frame in range(1, 11):
# A new frame observes every cell from a new viewpoint, with independent errors
wrong = rng.random(num_cells) > 0.7
labels = np.where(wrong, (truth + rng.integers(1, num_classes, num_cells)) % num_classes, truth)
# Recursive Bayesian update: add the log-likelihood of this observation to each cell's belief
log_belief += np.log(likelihood[labels])
if frame in (1, 3, 10):
print(f"Frame {frame:>2}: {(log_belief.argmax(axis=1) == truth).mean():.1%} of cells correct")マップの正解率は、1フレーム後に69.6%、3フレーム後に80.6%、10フレーム後に98.2%になります。この改善は、観測ごとに誤りが変化することに依存するため、ロボットがさまざまな視点から各場所を見る場合にフュージョンが最も効果を発揮します。モデルがあらゆる角度で繰り返す誤りは、マップに残り続けます。SemanticFusionでも同じ傾向が報告されており、視点の変化が大きいデータセットでは、単一フレームのラベルに対してより大きな改善が見られました。
マップ表現と関連概念#
セマンティックマップは、占有マップの各セルにクラスも保存する2Dグリッドから、ラベル付き3D点群、ボクセル、メッシュまでさまざまです。MITのKimeraは、計量・セマンティック3Dメッシュをリアルタイムで構築します。3Dシーングラフは、同じ情報を関係で結ばれた物体、部屋、建物として整理します。オープンボキャブラリーマップは固定クラスの代わりにCLIP埋め込みを保存するため、ロボットは「消火器」など、任意のテキストクエリでマップ内を検索できます。
セマンティックマッピングはいくつかの関連タスクを基盤としています。ビジュアルSLAMはカメラの姿勢と幾何マップを提供します。占有マッピングは、空間が空いているか、占有されているか、不明かだけを記録します。インスタンスセグメンテーションとパノプティックセグメンテーションは個々の物体を分離するため、物体レベルのマップで椅子の数を数えたり、駐車中の車を追跡したりできます。セマンティック検索は別の検索手法であり、共通するのは名前だけです。
実際のアプリケーション#
- 自動運転: 高精細マップには車線、横断歩道、信号、縁石がセンチメートル単位の精度で記録されます。オンラインセマンティックマッピングでは、車載センサーから同じ要素の俯瞰マップを作成します。
- 移動ロボット: ROS 2のナビゲーションスタックNav2は、セマンティックセグメンテーションのコストマップレイヤーを提供し、各クラスに通行コストを割り当てることで、ロボットが優先する地表面を通る経路を計画できるようにします。
- 農業: 圃場ロボットやドローンは、的を絞った散布や収量推定のために、作物や雑草を列ごとにマッピングします。
- 拡張現実: AppleのARKitは、再構築した部屋のメッシュの各面を、壁、床、天井、テーブル、座席、窓、ドア、その他のいずれかに分類します。










