The arcgis.learn module of ArcGIS API for Python serves as the foundation upon which ArcGIS’s AI capabilities are built. The AI tools in ArcGIS Pro use this technology to make deep learning approachable for GIS and Imagery analysts. Esri provided Pre-Trained Models are based upon arcgis.learn and it even integrates with ArcGIS app frameworks like Survey123 and AppStudio to create AI-infused apps and solutions.
This module makes it very easy to train and use geospatial AI models on your own datasets. You can bring in data from ArcGIS, feed it into any one of the over thirty deep learning models in arcgis.learn, fit the model to the data, and once you’re satisfied with the results, save the model as a deep learning package and use it with ArcGIS. Here’s all the code that’s needed to train a deep learning model in arcgis.learn:
These models support a wide variety of data types – overhead and oriented imagery, point clouds, LiDAR, video, feature layers, tabular, timeseries data and even unstructured text. We have recently added a number of new deep learning models to ArcGIS API for Python (v1.8.5). Here’s a quick overview of their capabilities.
Deep Learning on Imagery
The arcgis.learn module includes models for nearly every kind of feature extraction task from imagery, including models for object classification and object detection, and for pixel classification and instance segmentation.
We have recently added models for edge detection, that can be used for extracting residential and agricultural parcels, a state-of-the-art model for road extraction, as well as models for change detection, and for image translation, both from other images, as well as from images to text, i.e. image captioning.
See this Story Map to learn more about these models and see examples of what they can do.
3D Deep Learning
For 3D data, arcgis.learn includes the PointCNN point cloud classification model, and at this release we have added support for processing mobile point clouds as well as the ability to combine the results of multiple models to produce one classified point cloud with multiple classes.
In the example above, the output from the first model that classifies railway lines and poles in a point cloud, is combined with that from the second model that classifies railway tracks and cantilevers, to produce the combined output at the right.
Deep Learning on Feature, Tabular and Time Series Data
To complement the Geoprocessing tools in ArcGIS Pro, the FullyConnectedNetwork model allows you take data from feature layers and feed it directly into a deep neural network, giving superior results compared to most machine learning models.
Deep learning often needs a lot of training data. For smaller datasets, machine learning can often provide the answer without needing as much computational power. The machine learning model (we call it MLModel) in arcgis.learn lets you easily integrate ArcGIS with any classification, regression or clustering model from the popular scikit learn library.
Another feature that I’m very excited about is the addition of the TimeSeriesNetwork to arcgis.learn. This model brings the power of deep learning and convolutional neural networks to time series forecasting.
Here’s a Story Map that showcases how you can use these models on feature, tabular and time series data.
https://developers.arcgis.com/python/api-reference/arcgis.learn.toc.html#unstructured-text-modelsDeep Learning on Unstructured Text
Geospatial data is often hidden away in an unstructured format such as text based reports. That’s another area where DL has done exceedingly well.
At this release of ArcGIS API for Python, we have added an entire submodule called arcgis.learn.text for NLP. With the EntityRecognizer model, you can extract geospatial information from such text-based reports and put it on a map:
The module also has models that can take in incomplete addresses and determine the country they belong to with near perfect accuracy.
The SequenceToSequence model can be used to automatically correct spelling mistakes in addresses and normalize them to a standardized format, that’s suitable for geocoding.
Training NLP models can be hard due to the large text-corpora they require for training. Thankfully, you don’t have to train all such models yourself. The text submodule lets you use open source NLP models for these tasks and more, and what’s great is that they’re available for English as well as several other languages.
Browse this Story Map to see examples of arcgis.learn’s NLP capabilities, and how they can be applied to geospatial tasks.
That was a whirlwind tour of the dozens of geospatial deep learning models in the arcgis.learn module of ArcGIS API for Python. We can’t wait to see what you do with them!