Deep learning is a rapidly evolving method of machine learning data analysis that uses neural networks to mimic the processes of the human brain. When integrated with GIS, it can provide better data handling and more accurate data analysis.
There are typically three major challenges associated with machine learning algorithms: analyzing large amounts of data, insufficient computational resources, and the efficiency and accuracy of algorithms. By integrating ArcGIS Notebook Server and deep learning algorithms, you can better manage these challenges.
Deep learning in ArcGIS Notebook Server
The deep learning models for imagery data available in ArcGIS Notebook Server fall into four major categories:
- Object classification—Used to determine the class of a feature. For example, it can be used to determine whether a building is damaged after a natural disaster.
- Object detection—The localization process of finding an object in an image within a bounding box. For instance, object detection can be used to detect swimming pools in an image.
- Pixel classification—Used to assign classes to pixels within an image. For example, pixel classification can be used for land cover classification.
- Instance classification—Integrates both object detection and pixel classification. Instance classification can be used to detect an object and to further classify it. For instance, pixel classification can be used in damage detection to not only identify damage, but to further classify the severity of the damage.
Note:
ArcGIS Notebook Server also supports models focusing on tabular, point cloud, and other structured datasets.
Pretrained models vs. training models
There are two methods of deep learning models you can use in ArcGIS:
- Pretrained models—Used to infer preliminary insights from data without needing large pools of training data or long model training duration. While faster, there will be a compromise in accuracy when using a pretrained model. These models can be retrained to improve their accuracy.
- Example: Land cover classification using sparse training data using a UNet classifier as a pretrained model
unet = UnetClassifier(data, backbone='resnet34', ignore_classes=[0]) unet.show_results() unet.per_class_metrics()
- Example: Land cover classification using sparse training data using a UNet classifier as a pretrained model
- Training deep learning models—By training a deep learning model on a large dataset with sufficient resources and training time, you can develop a more accurate model.
- Example: Land cover classification using sparse training data using a UNet classifier and retraining the model
unet = UnetClassifier(data, backbone='resnet34', ignore_classes=[0]) unet.lr_find() unet.fit(10, lr) #10 iterations of model fitting unet.show_results() unet.per_class_metrics()
- Example: Land cover classification using sparse training data using a UNet classifier and retraining the model
Run deep learning models in ArcGIS Notebooks
To use a deep learning model in ArcGIS Notebooks, follow these steps:
Note:
Deep learning is computationally intensive and it is recommended that you use a powerful GPU to process large datasets.
- Select a deep learning model in the group 04_gis_analysts_data_scientists in the downloadable data archive.
- Download the .ipynb file of the model you will be using.
- Click to the Content page of your portal.
- Click New item and upload the .ipynb file of the model you downloaded.
- Open the notebook created by the .ipynb model file.
- Add the data you want to analyze.
- Run the following sections of the notebook:
- Prepare input data
- Visualize training data
- Load model architecture
- Train the model
Note:
This section can be skipped if you want to use the pretrained model only.
- Save the model
- Inference