randlanet
Description
RandLA-Net is a widely used, fast, and efficient deep learning network designed
for semantic segmentation of large-scale point clouds. RandLA-Net uses random sampling to
downsample large point clouds and boost speed, while also employing a local feature
aggregation module to preserve significant features, making it an efficient semantic
segmentation network. Create a pretrained or untrained semantic segmentation network using the
randlanet
object. If you have a pretrained network, you can perform
transfer learning and retrain it using the trainRandlanet
function. If you have an untrained network, you can train it using the trainRandlanet
function. Segment objects in a point cloud using the segmentObjects
function on the pretrained, retrained, or newly trained segmentation network.
Creation
Syntax
Description
Pretrained RandLA-Net Semantic Segmentation
creates a pretrained RandLA-Net semantic segmentation network with the weights
determined by the data set on which the network is pretrained. Specify
segmenter
= randlanet(weights
)weights
as "dales"
to create a pretrained
RandLA-Net network trained on the Dayton Annotated Lidar Earth Scan (DALES) point cloud
data set. Specify weights
as "pandaset"
to
create a pretrained RandLA-Net network trained on the PandaSet point cloud data
set.
Custom RandLA-Net Semantic Segmentation
creates a RandLA-Net network, and configures it to perform segmentation using the
specified set of classes segmenter
= randlanet(weights
,classNames
)classNames
. The
classNames
argument sets the ClassNames
property of the network. You can create a pretrained network to perform transfer
learning for the new set of classes by specifying weights
as
"dales"
or "pandaset"
. You can create an
untrained network by specifying weights
as
"none"
. You must train the network using the
trainRandlanet
function.
Additional Options
sets the ModelName,
GridStep,
NumPoints,
and PointProperty properties by using name-value arguments in addition to any
combination of input arguments from previous syntaxes. For example,
segmenter
= randlanet(___,Name=Value
)randlanet("none",classNames,ModelName="semanticSegmenter")
creates
a randlanet
object with the model name
"semanticSegmenter"
.
Note
This functionality requires Deep Learning Toolbox™ and the Lidar Toolbox™ Model for RandLA-Net Semantic Segmentation. You can download and install the Lidar Toolbox Model for RandLA-Net Semantic Segmentation from Add-On Explorer. For more information about installing add-ons, see Get and Manage Add-Ons.
Input Arguments
Properties
Object Functions
segmentObjects | Segment point cloud using RandLA-Net semantic segmentation |
Examples
References
[1] Hu, Qingyong, Bo Yang, Linhai Xie, Stefano Rosa, Yulan Guo, Zhihua Wang, Niki Trigoni, and Andrew Markham. “Learning Semantic Segmentation of Large-Scale Point Clouds With Random Sampling.” IEEE Transactions on Pattern Analysis and Machine Intelligence 44, no. 11 (November 2022): 8338–54. https://doi.org/10.1109/TPAMI.2021.3083288.
Version History
Introduced in R2024a