オーガナイズド点群とアンオーガナイズド点群とは
はじめに
点群には、オーガナイズドとアンオーガナイズドの 2 つのタイプがあります。これらは、それぞれ構造化された方式と任意の方式で格納された点群データを示します。"オーガナイズド点群" は 2 次元行列に似ており、データが行と列に分割されます。このデータの分割は点の間の空間関係に従って行われます。結果として、オーガナイズド点群のメモリ レイアウトは、点の xyz 座標で表される空間レイアウトに関連することになります。一方、"アンオーガナイズド点群" は 3 次元座標の単一のストリームで構成され、各座標が単一の点を表します。これらの点群の区別はデータの形状からも判断できます。オーガナイズド点群は M×N×3 の配列であり、3 つのチャネルは点の x 座標、y 座標、z 座標を表します。アンオーガナイズド点群は M 行 3 列の行列であり、M は点群に含まれる点の総数です。
アンオーガナイズドからオーガナイズドへの変換
SqueezeSegv1/v2、RangeNet++、SalsaNext など、ほとんどの深層学習セグメンテーション ネットワークは、オーガナイズド点群のみを処理します。また、地面の抽出や主要な点の検出の手法でもオーガナイズド点群が使用されます。そのため、Lidar Toolbox™ の多くのワークフローでは、前処理の手順としてオーガナイズド点群の変換が重要になります。
アンオーガナイズド点群からオーガナイズド形式への変換は、関数 pcorganize
を使用して実行できます。この基礎となるアルゴリズムでは、球面投影を使用して 3 次元の点群データを 2 次元 (オーガナイズド) の形式で表します。これには、データを変換するために、対応する LiDAR センサーの特定のパラメーター (lidarParameters
オブジェクトを使用して指定) が必要になります。
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 |