Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

Range Image

  • 別名: range view, spherical range image
  • カテゴリ: Sensing › Perception outputs
  • タグ: lidar, 3d-perception, semantic-segmentation, point-cloud, data-representation

3D 距離スキャンの 2D 画像で、各画素が一つのビーム方向に沿って測定された距離を保持する。これによりスキャンを高速処理できる画像グリッドに載せる。

定義

距離画像(range image)は、3D スキャンを 2D 配列として保存するもので、各画素が一つの視線方向に対応し、その方向に沿って測定された距離を保持する。回転式のマルチビーム LiDAR では、通常、行がレーザービーム(すなわち仰角)に、列が回転方向の方位角に対応し、各点はその方向の球面投影によって配置される。追加のチャネルには、x、y、z 座標、反射強度、有効性マスクが保持されることが多い。

画像としての配置により、近傍関係を安価に扱える。画像上で近い点は通常空間的にも近いため、法線、エッジ、地面分割、クラスタリングを、3D での最近傍探索の代わりに単純な画像処理で計算できる。また、標準的な 2D 畳み込みネットワークで LiDAR データを処理できるようになる。SqueezeSeg や RangeNet++ などのネットワークは各画素にラベルを付け、そのラベルが 3D の点に投影し戻される。SuMa と SuMa++ は別の理由で距離画像を使う。サーフェルマップを同じ画像配置にレンダリングし、新しいスキャンを画素位置によってマップと対応付けるためである。

この投影には代償がある。複数の点が一つの画素に入ると、一つ(通常は最も近い点)だけが残されるため、一部の点には後から近傍点に基づいてラベルを付ける必要がある。空、ガラス、吸収性の表面などで反射が返ってこない画素はマスクしなければならない。物体の境界では、ある画素の近傍が奥行きの大きく異なる面上にあることがあり、これが前景と背景の間でラベルのにじみを引き起こす。RangeNet++ はこれを減らすため、3D での k 最近傍によるクリーンアップを加えている。距離画像はカメラの深度画像(depth image)とは投影方法と値が異なる。深度カメラはピンホール投影を使い、通常は光軸に沿った距離を保存するのに対し、LiDAR の距離画像は角度座標を使い、各ビームに沿った距離を保存する。

重要な理由

距離画像は、疎で順序のない LiDAR 点群を、高速な画像アルゴリズムや畳み込みネットワークで処理できる密なグリッドに変換する。多くのリアルタイム LiDAR セグメンテーション、オドメトリ、圧縮のパイプラインがこれに依存している。

主な用途

  • 2D ネットワークによる LiDAR スキャンのセマンティックセグメンテーション
  • LiDAR SLAM における投影によるデータ対応付け
  • 地面除去と障害物のクラスタリング
  • LiDAR オドメトリ用特徴のための法線とエッジの推定
  • LiDAR データの圧縮と保存

実際の使われ方

ある自動運転チームは、LiDAR の各点を道路、車、歩行者、植生のいずれかにリアルタイムでラベル付けする必要がある。チームは各スキャンを、レーザー 1 本につき 1 行、列数は固定の距離画像に投影し、距離、x、y、z、強度を 5 つのチャネルに保存する。2D セグメンテーションネットワークが画素ごとにクラスを予測し、ラベルは点に投影し戻され、3D での最近傍投票によって、投影で落とされた点や物体の縁で誤ってラベル付けされた点が修正される。同じ距離画像は後段でも再利用され、地面除去や、連結した画素領域による障害物のクラスタリングに使われる。

よくある誤解

  • 距離画像はカメラの深度画像と同じである — 投影はピンホールではなく角度によるもので、画素は光軸ではなくビームに沿った距離を保持する
  • 投影ですべての点が保たれる — 同じ画素を共有する点は捨てられるため、それらの点にはラベルを伝播し戻す必要がある
  • 隣り合う画素は常に隣り合う面である — 奥行きの不連続部では隣接画素が大きく離れていることがあり、ラベルのにじみの原因になる
  • 距離画像は回転式 LiDAR にしか向かない — 一部のソリッドステート LiDAR を含め、ビーム方向が規則的なグリッドをなすセンサーであれば、この形式で保存できる

知っておくべき人

  • LiDAR 知覚エンジニア
  • 自動運転のセグメンテーションチーム
  • SLAM およびオドメトリの開発者
  • 3D データを扱う機械学習エンジニア

関連技術

  • RangeNet++
  • SqueezeSeg
  • 球面投影(Spherical Projection)
  • 鳥瞰図投影(Bird's-Eye-View Projection)
  • Semantic KITTI

関連用語

  • LIDAR
  • Point Cloud
  • Depth Camera
  • Surfel
  • LiDAR Odometry
  • Semantic Map

関連プロジェクト

  • Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • PCL: Industry-standard C++ library for point cloud processing in robotics perception
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。