What are Organized and Unorganized Point Clouds?
Introduction
There are two types of point clouds: organized and unorganized. These describe point cloud data stored in a structured manner or in an arbitrary fashion, respectively. An organized point cloud resembles a 2-D matrix, with its data divided into rows and columns. The data is divided according to the spatial relationships between the points. As a result, the memory layout of an organized point cloud relates to the spatial layout represented by the xyz-coordinates of its points. In contrast, unorganized point clouds consist of a single stream of 3-D coordinates, each coordinate representing a single point. You can also differentiate these point clouds based on the shape of their data. Organized point clouds are M-by-N-by-3 arrays, with the three channels representing the x-, y-, and z- coordinates of the points. Unorganized point clouds are M-by-3 matrices, where M is the total number of points in the point cloud.
Unorganized to Organized Conversion
Most deep learning segmentation networks, such as SqueezeSegv1/v2, RangeNet++, and SalsaNext, process only organized point clouds. In addition, organized point clouds are used in ground plane extraction and key point detection methods. This makes organized point cloud conversion an important preprocessing step for many Lidar Toolbox™ workflows.
You can convert unorganized point clouds to organized point clouds by using the
pcorganize
function. The underlying algorithm uses spherical projection to represent the 3-D point
cloud data in a 2-D (organized) form. It requires certain corresponding lidar sensor
parameters, specified using the lidarParameters
object, in order to convert the data.
Lidar Sensor Parameters
The sensor parameters required for conversion differ based on whether the lidar sensor has a uniform beam or a gradient beam configuration. A lidar sensor is created by stacking laser scanners vertically. Each laser scanner releases a laser pulse and rotates to capture a 3-D point cloud.
When the laser scanners are stacked with equal spacing, the lidar sensor has a uniform beam (laser scanner) configuration.
To convert unorganized point clouds captured using a lidar sensor with a uniform beam configuration, you must specify these parameters from the sensor handbook:
Vertical resolution — Number of channels in the vertical direction, consisting of the number of lasers. Typical values include 32 and 64.
Horizontal resolution — Number of channels in the horizontal direction. Typical values include 512 and 1024.
Vertical field of view — Vertical field of view, in degrees. The sensor in the preceding picture has a vertical field of view of 45 degrees.
For an example, see Create a Lidar Parameters Object.
When the beams at the horizon are tightly packed, and those toward the top and bottom of the sensor field of view are more spaced out, the lidar sensor has a gradient beam configuration.
To convert unorganized point clouds captured using a lidar sensor with a gradient beam configuration, you must specify these parameters from the sensor handbook:
Horizontal resolution — Number of channels in the horizontal direction. Typical values include 512 and 1024.
Vertical beam angles — Angular position of each vertical channel, in degrees.
For an example, see Create Lidar Parameters Object for Gradient Lidar Sensor.
Supported Sensors
The lidarParameters
object can automatically load the sensor
parameters for some popular lidar sensors. These sensors are supported:
Sensor Name | Input |
---|---|
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 |