The field of Artificial Intelligence (AI) has made rapid progress in recent years, matching or in some cases, even surpassing human accuracy. Broadly speaking, AI is the ability of computers to perform a task that typically requires some level of human intelligence. Machine learning is one type of engine that makes this possible, and uses data driven algorithms to learn from data to give you the answers that you need. One type of machine learning that has emerged in recent years is deep learning and it refers to deep neural networks, that are inspired from and loosely resemble the human brain. The
arcgis.learn module provides tools that support machine learning and deep learning workflows with geospatial data. This section of the guide focusses on deep learning with remote sensing satellite imagery.
Applying Computer Vision to geospatial imagery¶
One area of AI where deep learning has done exceedingly well is computer vision, i.e. the ability for computers to 'see'. This is particularly useful for GIS, as satellite, aerial and drone imagery is being produced at a rate that makes it impossible to analyse and derive insight from through traditional means. Object detection and pixel classification are among the most important computer vision tasks and are particularly useful for spatial analysis.
Object Detection involves finding objects within an image as well as their location in terms of bounding boxes. This is a very important task in GIS — finding what is in satellite, aerial or drone imagery, and where, and plotting it on a map can be used for infrastructure mapping, anomaly detection and feature extraction.
Pixel Classification, also referred to as image segmentation, is another important task in which we classify each pixel of an image as belonging to a particular class. In GIS, segmentation can be used for Land Cover Classification or for extracting roads or buildings from satellite imagery.
ArcGIS platform includes support for these tasks and has tools to help with every step of the deep learning workflow: from data labeling and preparation, to training deep learning models, deploying them for inferencing and finally disseminating results using web layers/maps and driving field activity.
- ArcGIS API for Python allows access to every step of the deep learning workflow in a programmatic way and is semalessly integrated with other components of the platform.
- ArcGIS Pro includes tools for labeling features and exporting training data for deep learning workflows and has being enhanced for deploying trained models for feature extraction or classification.
- ArcGIS Image Server in the ArcGIS Enterprise 10.7 release has similar capabilities and allow deploying deep learning models at scale by leveraging distributed computing.
- ArcGIS Notebooks provide one-click access to pre-configured Jupyter Notebooks along with the necessary deep learning libraries and a gallery of starter notebooks that show how deep learning models can be easily trained and deployed.
arcgis.learn module in ArcGIS API for Python enable GIS analysts and geospatial data scientists to easily adopt and apply deep learning in their workflows. It enables training state-of-the-art deep learning models with a simple, intuitive API. By adopting the latest research in deep learning, such as fine tuning pretrained models on satellite imagery, fast.ai's learning rate finder and one-cycle learning, it allows for much faster training and removes guesswork in picking hyperparameters. It integrates seamlessly with the ArcGIS platform by consuming the exported training samples directly, and the models that it creates can be used directly for inferencing (object detection and pixel classification) in ArcGIS Pro and Image Server.
This module includes methods and classes for:
- Exporting Training Data
- Data Preparation
- Model Training
- Model Deployment
- Model Inference
Exporting training samples can be done using both ArcGIS Pro and ArcGIS Image Server. Our guide will mainly focus on how to do it using Image Server. More information about export training data for deep learning workflow in ArcGIS Pro can be found here. Please note that if you have already exported training samples using Pro, you can just take the data and start training using
Data preparation, augmentation and model training workflows using
arcgis.learnhave a dependency on PyTorch and fast.ai deep learning libraries. They can be installed using conda as follows:
conda install -c fastai -c pytorch fastai=1.0.39 pytorch=1.0.0 torchvision
- The output model from ArcGIS API for Python can be used in ArcGIS Pro or Image Server for model inference. Again, our guide will be mostly about using Image Server, which can be scaled out using multiple GPU enabled nodes. Please refer to guide about Detect Objects Using Deep Learning and Classify Pixels Using Deep Learning if you would like to do it in ArcGIS Pro.
Feedback on this topic?