This seminar is an applied study of deep learning methods for extracting information from geospatial data, such as aerial imagery, multispectral imagery, digital terrain data, and other digital cartographic representations. We first provide an introduction and conceptualization of artificial neural networks (ANNs). Next, we explore appropriate loss and assessment metrics for different use cases followed by the tensor data model, which is central to applying deep learning methods. Convolutional neural networks (CNNs) are then conceptualized with scene classification use cases. Lastly, we explore semantic segmentation, object detection, and instance segmentation. The primary focus of this course is semantic segmenation for pixel-level classification.
The associated GitHub repo provides a series of applied examples. We hope to continue to add examples as methods and technologies further develop. These examples make use of a vareity of datasets (e.g., SAT-6, topoDL, Inria, LandCover.ai, vfillDL, and wvlcDL). Please see the repo for links to the data and associated papers. All examples have associated videos that walk through the process, which are also linked to the repo. A variety of deep learning architectures are explored including UNet, UNet++, DeepLabv3+, and Mask R-CNN. Currenlty, two examples use ArcGIS Pro and require no coding. The remaining five examples require coding and make use of PyTorch, Python, and R within the RStudio IDE. It is assumed that you have prior knowledge of coding in the Python and R enviroinments. If you do not have experience coding, please take a look at our Open-Source GIScience and Open-Source Spatial Analytics (R) courses, which explore coding in Python and R, respectively.
After completing this seminar you will be able to:
explain how ANNs work including weights, bias, activation, and optimization.
describe and explain different loss and assessment metrics and determine appropriate use cases.
use the tensor data model to represent data as input for deep learning.
explain how CNNs work including convolutional operations/layers, kernel size, stride, padding, max pooling, activation, and batch normalization.
use PyTorch, Python, and R to prepare data, produce and assess scene classification models, and infer to new data.
explain common semantic segmentation architectures and how these methods allow for pixel-level classification and how they are different from traditional CNNs.
use PyTorch, Python, and R (or ArcGIS Pro) to prepare data, produce and assess semantic segmentation models, and infer to new data.
explain how object and instance segmentation are different from traditional CNNs and semantic segmentation and how they can be used to generate bounding boxes and feature masks for each instance of a class.
use ArcGIS Pro to perform object detection (to obtain bounding boxes) and instance segmentation (to obtain pixel-level instance masks).