1 of 46

Earth Engine + TensorFlow

Chris Brown, Software Engineer

cfb@google.com

2 of 46

Who am I?

  • Software Engineer on Google Earth Engine
  • Satellites + Machine Learning
  • Penn State ‘13
  • Villanova ‘15

3 of 46

What to expect

  1. Broad overview of machine learning in the context of remote sensing.
  2. Hands-on exercise applying ML to classify regions of the earth’s surface.
  3. More advanced use cases.
  4. Whats next?

4 of 46

Machine Learning (specifically supervised learning)

An algorithm design technique that supplants the “how” with examples of the “what.”

5 of 46

ALL THE ALGORITHMS

  • Logistic Regression
  • Bayesian Classification
  • Random Forest
  • K-NN
  • Like 400 more…

6 of 46

Onion???

200x400 pixels = 80000D Input Space!

7 of 46

ARTIFICIAL NEURAL NETS

8 of 46

Neural Nets

  • When built up of more than ~2 layers, referred to as a “Deep Neural Net” (or DNN) and training these is sometimes referred to as “Deep Learning”
  • A network of activation functions very apt at transforming complex input manifolds.
  • We call values at the input “Features,” and values at the output “Labels”.
  • Incredible expressive power, and the ML algorithm around which TensorFlow is build.
  • I highly recommend https://developers.google.com/machine-learning/crash-course/ to learn more and build intuition.

9 of 46

"Deep learning is a particular kind of machine learning that achieves great power and flexibility by representing the world as a nested hierarchy of concepts, with each concept defined in relation to simpler concepts, and more abstract representations computed in terms of less abstract ones."

Ian Goodfellow and Yoshua Bengio and Aaron Courville, "Deep Learning"

10 of 46

Machine Learning in Remote Sensing

11 of 46

Machine Learning in Remote Sensing

  • Predicting climate
  • Classifying land-cover
  • Classifying land-use
  • Removing clouds from images
  • Predicting crop yield
  • Use your imagination!

12 of 46

ML Input Features for Remote Sensing

  • Per-pixel spectra.
  • Time-series.
  • Statistics
  • Any combination of the above!

13 of 46

About TensorFlow

TensorFlow™ is an open source software library for high performance numerical computation. Its flexible architecture allows easy deployment of computation across a variety of platforms (CPUs, GPUs, TPUs), and from desktops to clusters of servers to mobile and edge devices. Originally developed by researchers and engineers from the Google Brain team within Google’s AI organization, it comes with strong support for machine learning and deep learning and the flexible numerical computation core is used across many other scientific domains.

14 of 46

15 of 46

Useful docs

16 of 46

Train/Test data (Export.table)

.TFRecord

Image data (Export.Image)

.TFRecord

.train()

.predict()

Predictions

.TFRecord

upload

1

2

3

4

5

17 of 46

18 of 46

's

19 of 46

20 of 46

21 of 46

Search

22 of 46

23 of 46

24 of 46

  1. Get these slides
  2. Make a copy of this notebook.
    1. (File > Save a copy in Drive)

25 of 46

Let’s get to work!

26 of 46

27 of 46

28 of 46

29 of 46

Spatial Contexts

30 of 46

Spatial Context

  • Our exercise explored classification of land-cover. This can be thought of as detecting material: “This surface is impervious, this surface is vegetation, etc…”
  • When we want to detect land-use, we need to know the material, and how that material is arranged in space.
  • At higher resolutions, detecting objects is nigh-impossible without spatial context

ROAD

ROAD???

31 of 46

Convolutional Neural Nets

  • Vanilla CNN (whole image labeling)
  • R-CNN (bounding box detection)
  • FCNN (semantic segmentation), a label for every pixel in the image

32 of 46

CNN Intuition

33 of 46

Convolution

34 of 46

Fully Convolutional Neural Nets

35 of 46

Detecting Objects

  • Detect cars in 15cm aerial imagery
  • Use RGB as our input channels (bands)
  • Get the location of each car in the image.

36 of 46

Car Detector

Generate Training Data

Annotate examples

Export training data

Train Model

Export Inference Data

Predict

Extract Features

37 of 46

Case Study

38 of 46

Settlement Detection

  • Where do humans live?
  • Important for detecting:
    • Flood/disease risk.
    • Carbon footprint
    • Population
    • Habitat impact
    • Etc..

39 of 46

40 of 46

Settlement Detection

  • Problem concerns land-use, so spatial context is relevant.
  • We’ll opt to use a FCNN like architecture for our modeling.
  • We have a dataset of ~84k settlement/non-settlement point samples collected in partnership with the German Aerospace Center.

41 of 46

Blindspot

  • XCeption-like U-Net.
  • Lightweight, designed for low-resolution imagery.
  • Able to learn complex spatial relationships with only point-samples.
  • Really an ensemble of Blindspots for coping with noisiness of input data.
  • Trained using CloudML Engine.

42 of 46

43 of 46

44 of 46

Demo

45 of 46

Where do I go from here?

46 of 46

Thank You!