Semantic Mapping
意味マッピングが意味セグメンテーション、深度、位置推定、センサーフュージョンを組み合わせ、Ultralytics YOLO26によるスマートなロボティクスナビゲーションを実現する仕組みを解説します。
セマンティックマッピングとは、環境の空間表現を構築し、道路、壁、出入口、人、棚、植生などの意味のあるクラスラベルを、その環境内の位置に付加するプロセスです。AIとロボティクスでは、セマンティックマップによって「何かはどこにあるか」と「それは何か」の両方に答えられます。シーンを占有空間と空き空間だけで表現するのではなく、ナビゲーション、計画、インタラクション、シーン理解を支援するコンテキスト情報を提供します。
セマンティックマッピングの仕組み#
セマンティックマッピングシステムは通常、知覚、幾何学、自己位置推定、時間的融合を組み合わせます。まず、セマンティックセグメンテーションモデルが画像内のすべてのピクセルを分類します。たとえば「道路」とラベル付けされたすべてのピクセルが道路領域を形成し、「車」とラベル付けされたピクセルが車両領域を識別します。NVIDIAのロボティクスにおける画像セグメンテーションの紹介では、こうしたピクセル単位のラベルがロボットの知覚をどのように支援するかを説明しています。
ピクセルラベルだけでは、2次元のカメラ画像に紐付いたままです。システムは、ピクセルを物理的な位置に関連付けるために、多くの場合LiDAR、ステレオカメラ、または深度推定から得られる幾何情報を必要とします。Open3DのRGB-D画像ワークフローでは、位置合わせされたカラー画像と深度画像から3D点群を生成する方法を示しています。
正確な投影には、カメラの内部パラメータと外部パラメータも必要です。OpenCVのカメラキャリブレーションドキュメントでは、画像ピクセルと3D点を関連付けるために使用されるパラメータを説明しています。一方、ROSのCameraInfoメッセージ定義は、ロボットシステムでこのキャリブレーション情報を標準化します。
最後に、センサーフュージョンによって、時間経過に伴う観測結果を統合します。ロボットの姿勢と座標変換により、各ラベル付き観測結果を共通のマップフレームに配置します。ROSのtf2座標変換は、これらの関係を維持するための一般的な仕組みを提供します。
関連概念と主な違い#
セマンティックマッピングは、複数のコンピュータビジョンおよびロボティクスの概念と重なりますが、それぞれ異なる問題を解決します。
- **ビジュアルSLAM**は、幾何マップを構築しながら、カメラまたはロボットの位置を推定します。セマンティックマッピングは、その幾何情報にクラスの意味を付加します。そのため、システムは姿勢推定にSLAMを使用し、ラベリングにセマンティック知覚を使用できます。
- 占有マッピングは、セルが空き、占有、未知のいずれであるかを表します。Nav2のマッピングおよび自己位置推定ガイドでは、占有グリッドが経路計画をどのように支援するかを説明しています。セマンティックマップではさらに、壁と人、走行可能な道路と歩道を区別できます。
- **インスタンスセグメンテーション**は、2台の異なる車など、個々の物体を分離します。セマンティックセグメンテーションは、両方の車を1つのピクセルクラスとしてまとめます。セマンティックマップでは、物体の同一性を保持する必要があるかどうかに応じて、どちらの表現も使用できます。
- セマンティック検索は概念的な類似性に基づいて情報を整理しますが、ロボティクスにおけるセマンティックマッピングは物理的な位置に意味を関連付けます。
実世界での利用例#
**自律ナビゲーション:**配送ロボットは、床を通行可能な領域、壁や縁石を障害物、人を動的な危険要因としてラベル付けできます。これらのラベルをナビゲーションコストに変換することで、プランナーは目に見えるすべての領域を同一に扱うのではなく、安全な表面を優先できます。Nav2のセマンティックセグメンテーションナビゲーションチュートリアルでは、クラスマスクと位置合わせされた点群を使用して、ロボットのコストマップを更新する方法を示しています。
**都市走行:**自動運転車は、道路、歩道、建物、植生、歩行者、車両の予測結果を永続的なワールドマップに投影できます。これにより、システムは車線境界を理解し、走行不可能な領域を認識し、脆弱な道路利用者が現れる可能性のある場所を推論できます。公式のCityscapes都市シーンデータセットは、この種のシーン理解の開発に使用できる、密にラベル付けされた道路画像を提供します。
Ultralytics YOLOによるセマンティック知覚#
以下のUltralyticsセマンティックセグメンテーションワークフローは、YOLO26を使用して密なクラスマップを生成します。この出力は、後でマッピングパイプラインによって2Dグリッドまたは3Dワールド座標系に投影できます。
from ultralytics import YOLO
# Load a pretrained semantic segmentation model
model = YOLO("yolo26n-sem.pt")
# Predict a per-pixel class map
results = model("https://ultralytics.com/images/bus.jpg")
# Select the first result and inspect its map dimensions
result = results[0]
class_map = result.semantic_mask.data
print(class_map.shape)
result.save(filename="semantic_scene.jpg")semantic_maskには、画像の各ピクセルに1つのクラスIDが含まれています。これはセマンティック知覚レイヤーを提供しますが、永続的な空間マップを構築するには、深度、キャリブレーション、自己位置推定、時間的融合も必要です。カスタムのピクセルレベルデータセットは、Ultralytics Platformのアノテーションツールを使用してラベル付けおよび管理できます。
実用上の設計上の考慮事項#
信頼性の高いセマンティックマップには、一貫したクラス定義、正確なセンサーキャリブレーション、同期されたタイムスタンプ、代表性のある学習データが必要です。姿勢ドリフトによって正しいラベルが誤った位置に配置される可能性があり、セグメンテーションエラーによって障害物が通行可能な空間としてマークされる可能性があります。また、動的物体には消去または追跡のルールも必要です。これにより、駐車車両や歩行者がマップに永久に埋め込まれることを防ぎます。
チームは、知覚精度と空間的一貫性の両方を検証し、難しい境界や小さな構造物をテストし、可能な限り予測信頼度を保持し、矛盾する観測結果をどのように更新するかを定義する必要があります。安全性が重要なナビゲーションでは、セマンティック情報は幾何学的な障害物センシングや衝突チェックを自動的に置き換えるのではなく、それらを補完する必要があります。









