オーガナイズド点群とアンオーガナイズド点群とは
はじめに
点群には、オーガナイズドとアンオーガナイズドの 2 つのタイプがあります。これらの用語は、点群データが構造化された方式と任意の方式のどちらで格納されているかを示します。"オーガナイズド点群" は、データが行と列に分割されているようなイメージです。一方、"アンオーガナイズド点群" は 3 次元座標の単一のストリームで構成され、各座標が単一の点を表します。
オーガナイズド点群は M×N×3 の配列であり、3 つの次元は点の x 座標、y 座標、z 座標を表します。アンオーガナイズド点群は M 行 3 列の行列であり、M は点群に含まれる点の総数です。
アプリケーションにオーガナイズド点群とアンオーガナイズド点群のどちらを使用するかの決定は、アルゴリズムの要件やメモリの制約など、さまざまな要因に影響されることがあります。アルゴリズムの中には、空間情報を含むため、より効率的な処理のためにオーガナイズド構造の点群を利用するものがあります。たとえば、segmentLidarData や segmentGroundFromLidarData などの関数を使用したセグメンテーションでは、このオーガナイズド構造によるメリットが得られます。
オーガナイズド点群からアンオーガナイズド点群への変換
オーガナイズド点群をアンオーガナイズド点群に変換するには、removeInvalidPoints オブジェクト関数を使用できます。この関数は、点群から NaN 座標値を削除し、アンオーガナイズド (M 行 3 列) の点群を返します。オーガナイズド点群をアンオーガナイズド形式に変換することにはメリットがあります。点群の保存に必要なメモリを削減できるほか、各点の x、y、および z の数値を検証しやすくなります。
航空点群は本質的にアンオーガナイズドであるため、航空点群向けの次の機能はアンオーガナイズド点群のみを受け付けることに注意してください。
これらの場合、点群は最初からアンオーガナイズドであるため、removeInvalidPoints を使用する必要はありません。
アンオーガナイズド点群からオーガナイズド点群への変換
SqueezeSegv1/v2 や SalsaNext などの一部の深層学習セグメンテーション ネットワークは、オーガナイズド点群のみを処理します。また、地面の抽出や主要な点の検出の手法でもオーガナイズド点群が使用されます。そのため、Lidar Toolbox™ の一部のワークフローでは、前処理の手順としてオーガナイズド点群の変換が重要になります。
オーガナイズド点群を必要とする関数には、次のものがあります。
アンオーガナイズド点群からオーガナイズド形式への変換は、関数 pcorganize を使用して実行できます。この基礎となるアルゴリズムでは、球面投影を使用して 3 次元の点群データを 2 次元 (オーガナイズド) の形式で表します。これには、データを変換するために、対応する LiDAR センサーの特定のパラメーター (lidarParameters オブジェクトを使用して指定) が必要になります。
pcorganize を使用して、点群を事前学習済みモデルで必要とされる形式に合わせて再構成することもできます。たとえば、事前学習済みモデルを HDL-32 センサーのデータで学習させており、データが HDL-64 センサーから取得されている場合、pcorganize を使用して点群を必要なセンサー形式に変換できます。
LiDAR センサーのパラメーター
変換に必要になるセンサーのパラメーターは、LiDAR センサーが一様ビーム構成であるか勾配ビーム構成であるかによって異なります。LiDAR センサーは、レーザー スキャナーを垂直に積み上げて作成されます。各レーザー スキャナーはレーザー パルスを放射し、回転して 3 次元点群を取得します。
レーザー スキャナーが均等に積み上げられていれば、その LiDAR センサーは "一様" ビーム (レーザー スキャナー) 構成です。

一様ビーム構成の LiDAR センサーを使用して取得されたアンオーガナイズド点群を変換するには、センサーのハンドブックから次のパラメーターを指定する必要があります。
垂直分解能 — 垂直方向のチャネル数。これは、レーザーの数で構成されます。典型的な値としては 32 と 64 があります。
水平分解能 — 水平方向のチャネル数。典型的な値としては 512 と 1024 があります。
垂直方向の視野 — 垂直方向の視野 (度)。上記の図のセンサーでは、垂直方向の視野は 45 度です。
例については、Lidar Parameters オブジェクトの作成を参照してください。
ビームが水平に密集していて、センサーの視野の上下に向かうほど薄くなっていれば、その LiDAR センサーは "勾配" ビーム構成です。

勾配ビーム構成の LiDAR センサーを使用して取得されたアンオーガナイズド点群を変換するには、センサーのハンドブックから次のパラメーターを指定する必要があります。
水平分解能 — 水平方向のチャネル数。典型的な値としては 512 と 1024 があります。
垂直ビームの角度 — 各垂直チャネルの角度位置 (度)。
例については、勾配 LiDAR センサー用の Lidar Parameters オブジェクトの作成を参照してください。
サポートされているセンサー
lidarParameters オブジェクトでは、いくつかの一般的な LiDAR センサーについて、センサーのパラメーターを自動的に読み込むことができます。次のセンサーがサポートされています。
| センサーの名前 | 入力 |
|---|---|
| Velodyne® HDL-64E | 'HDL64E' |
| Velodyne HDL-32E | 'HDL32E' |
| Velodyne VLP16 | 'VLP16' |
| Velodyne VLP32C | 'VLP32C' |
| Velodyne VLP128 | 'VLS128' |
| Velodyne Puck LITE | 'PuckLITE' |
| Velodyne Puck Hi-Res | 'PuckHiRes' |
| Ouster® OS0-32 | OS0-32 |
| Ouster OS0-64 | OS0-64 |
| Ouster OS0-128 | OS0-128 |
| Ouster OS1Gen1-32 | OS1Gen1-32 |
| Ouster OS1Gen1-64 | OS1Gen1-64 |
| Ouster OS1Gen1-128 | OS1Gen1-128 |
| Ouster OS1Gen2-32 | OS1Gen2-32 |
| Ouster OS1Gen2-64 | OS1Gen2-64 |
| Ouster OS1Gen2-128 | OS1Gen2-128 |
| Ouster OS2-32 | OS2-32 |
| Ouster OS2-64 | OS2-64 |
| Ouster OS2-128 | OS2-128 |
点群のオーガナイズド構造の維持
場合によっては、処理する点群のサブセットを選択しなければならないことがあります。たとえば、オーガナイズド構造を保持したままオーガナイズド点群の点のサブセットを選択するには、select オブジェクト関数を使用し、名前と値の引数 OutputSize を "full" に設定します。
ptCloudOut = select(ptCloudIn,indices,OutputSize="full");