Train Point Cloud Classification Model (3D Analyst Tools)
Summary
Trains a deep learning model for point cloud classification.
Learn more about training a point cloud classification model
Usage
This tool requires the installation of Deep Learning Essentials, which provides multiple neural network solutions that include neural architectures for classifying point clouds.
To set up your machine to use deep learning frameworks in ArcGIS Pro, see Install deep learning frameworks for ArcGIS.
The point cloud classification model can be trained using either a CUDA-capable NVIDIA graphics card or the CPU. Using the GPU is typically faster than using the CPU. Use the CPU only if no GPU is available. When using the CPU for training, start by using the RandLA-Net architecture since it consumes less memory than PointCNN. You can also experiment using the smallest possible training sample to estimate the time it will take to process the data before training with the full training dataset.
When using the GPU to train a model on a computer with multiple graphics cards, the tool will use the fastest graphics card on the computer. You can also specify the GPU using the GPU ID environment setting. If multiple graphics cards are present on the computer, you can maximize the training performance by dedicating the graphics card with the greatest computational resources for training and the one with lesser resources for display. If the selected GPU is also used for the display, its available memory will be diminished by the operating system and any applications using the display during the training process.
Using a pretrained model is advantageous, especially when facing limitations in data, time, or computational resources. Pretrained models reduce the need for extensive training and offer a reliable starting point that can accelerate the creation of a useful model. To take advantage of the pretrained model, the new training data must be compatible with the pretrained model. Ensure that the new training data has the same attributes and class codes as the training data that was used to create the pretrained model. If class codes in the training data do not much the classes in the pretrained model, the training data's classes must be remapped accordingly.
When the tool is running, its progress message reports the following statistics about the training results that were achieved in each epoch:
Epoch—The epoch number with which the result is associated
Training Loss—The result of the entropy loss function that was averaged for the training data
Validation Loss—The result of the entropy loss function that was determined when applying the model trained in the epoch on the validation data
Accuracy—The ratio of points in the validation data that were correctly classified by the model trained in the epoch (true positives) over all the points in the validation data
Precision—The macro average of the precision for all class codes
Recall—The macro average of the recall for all class codes
F1 Score—The harmonic mean of the macro average of the precision and recall values for all class codes
A model that achieves low training loss but high validation loss is considered to be overfitting the training data, whereby it detects patterns from artifacts in the training data that result in the model not working well for the validation data. A model that achieves a high training loss and a high validation loss is considered to be underfitting the training data, whereby no patterns are being learned effectively to produce a usable model.
A folder is created to store the checkpoint models, which are models that are created at the end of each epoch. The name of this folder is the same as the model with a suffix of
.checkpoints, and it is stored in the Output Model Location parameter value. Once the training is finished, a CSV table with a name that begins with the Output Model Name parameter value and ends with_stats.csvis created in the checkpoint folder. This table includes the following fields related to the results obtained for each class code and epoch:Epoch—The epoch number associated with the results in the row. This value corresponds to the model created in the checkpoint models directory. The results are obtained by applying the model trained in the epoch on the validation data.Class_Code—The class code for which the results are being reported.Precision—The ratio of points that were correctly classified (true positives) over all the points that were classified (true positives and false positives).Recall—The ratio of correctly classified points (true positives) over all the points that should have been classified with this value (true positives and false negatives).F1_Score—The harmonic mean of the precision and recall value.
The dedicated memory used during training is the sum of memory allocated by the deep learning framework and the size of the data processed in each batch of an iteration in a given epoch. The size of the data in each batch depends on the number of additional point attributes specified in the Attribute Selection parameter, the total number of points in any given block, and the number of blocks that will be processed in each batch as specified by the Batch Size parameter. The maximum number of points per block is determined when the training data is exported, and this value should be assumed when estimating the potential memory footprint of the training operation.
The Relative Height option in the Attribute Selection parameter is an attribute that identifies a point's height from a reference surface, such as a bare earth elevation model. The use of this attribute can potentially improve the model's ability to learn directional relationships during the training process.
Parameters
| Label | Explanation | Data type |
|---|---|---|
|
Input Training Data |
The point cloud training data ( |
File |
|
Output Model Location |
An existing folder that will store the new directory containing the deep learning model. |
Folder |
|
Output Model Name |
The name of the output Esri model definition file ( |
String |
|
Pre-trained Model (Optional) |
The pretrained model that will be refined. When a pretrained model is provided, the input training data must have the same attributes, class codes, and maximum number of points that were used by the training data that generated this model. |
File |
|
Attribute Selection (Optional) |
Specifies the point attributes that will be used to train the model. Only the attributes that are present in the point cloud training data will be available. No additional attributes are included by default.
|
String |
|
Minimum Points Per Block (Optional) |
The minimum number of points that must be present in a given block for it to be used when training the model. The default is 0. |
Long |
|
Class Remapping (Optional) |
Defines how class code values will map to new values before training the deep learning model. Value table columns:
|
Value Table |
|
Class Codes Of Interest (Optional) |
The class codes that will be used to filter the blocks in the training data. When class codes of interest are specified, all other class codes are remapped to the background class code. |
Long |
|
Background Class Code (Optional) |
The class code value that will be used for all other class codes when class codes of interest have been specified. |
Long |
|
Class Description (Optional) |
The descriptions of what each class code in the training data represents. Value table columns:
|
Value Table |
|
Model Selection Criteria (Optional) |
Specifies the statistical basis that will be used to determine the final model.
|
String |
|
Maximum Number of Epochs (Optional) |
The number of times each block of data will be passed forward and backward through the neural network. The default is 25. |
Long |
|
Iterations Per Epoch (%) (Optional) |
The percentage of the data that will be processed in each training epoch. The default is 100. |
Double |
|
Learning Rate (Optional) |
The rate at which existing information will be overwritten with new information. If no value is provided, the optimal learning rate will be extracted from the learning curve during the training process. This is the default. |
Double |
|
Batch Size (Optional) |
The number of training data blocks that will be processed at any given time. The default is 2. |
Long |
|
Stop training when model no longer improves (Optional) |
Specifies whether the model training will stop when the metric specified in the Model Selection Criteria parameter does not register any improvement after five consecutive epochs.
|
Boolean |
|
Learning Rate Strategy (Optional) |
Specifies how the learning rate will be modified during training.
|
String |
|
Model Architecture (Optional) |
Specifies the neural network architecture that will be used to train the model. When a pretrained model is specified, the architecture used for creating the pretrained model will be automatically set.
|
String |
|
Loss Function (Optional) |
Specifies the loss function that will be used during training.
|
String |
Derived output
| Label | Explanation | Data type |
|---|---|---|
|
Output Model |
The resulting model generated by this tool. |
File |
|
Output Model Statistics |
The |
Text File |
|
Output Epoch Statistics |
The |
Text File |
Environments
Licensing information
- Basic: Requires 3D Analyst
- Standard: Requires 3D Analyst
- Advanced: Requires 3D Analyst