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 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 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.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 Management
Data preparation, augmentation and model training workflows using
arcgis.learn have 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
Feedback on this topic?