Suneel Marthi Jose Luis Contreras. June 11, 2018 Berlin Buzzwords, Berlin, Germany

Similar documents
arxiv: v1 [cs.cv] 19 Jun 2017

Convolutional Networks for Image Segmentation: U-Net 1, DeconvNet 2, and SegNet 3

NU-Net: Deep Residual Wide Field of View Convolutional Neural Network for Semantic Segmentation

Road detection with EOSResUNet and post vectorizing algorithm

arxiv: v1 [stat.ml] 10 Nov 2017

TimeSync V3 User Manual. January Introduction

Deep Learning for Infrastructure Assessment in Africa using Remote Sensing Data

DEEP LEARNING ON RF DATA. Adam Thompson Senior Solutions Architect March 29, 2018

Lecture 23 Deep Learning: Segmentation

arxiv: v3 [cs.cv] 18 Dec 2018

Introduction of Satellite Remote Sensing

Satellite Remote Sensing: Earth System Observations

Lesson 08. Convolutional Neural Network. Ing. Marek Hrúz, Ph.D. Katedra Kybernetiky Fakulta aplikovaných věd Západočeská univerzita v Plzni.

Deep Learning. Dr. Johan Hagelbäck.

An Introduction to Convolutional Neural Networks. Alessandro Giusti Dalle Molle Institute for Artificial Intelligence Lugano, Switzerland

Atmospheric Correction (including ATCOR)

Semantic Segmentation on Resource Constrained Devices

Lecture 13: Remotely Sensed Geospatial Data

Comparison between Apache Flink and Apache Spark

GROßFLÄCHIGE UND HOCHFREQUENTE BEOBACHTUNG VON AGRARFLÄCHEN DURCH OPTISCHE SATELLITEN (RAPIDEYE, LANDSAT 8, SENTINEL-2)

Lecture 11-1 CNN introduction. Sung Kim

Tiny ImageNet Challenge Investigating the Scaling of Inception Layers for Reduced Scale Classification Problems

Interpreting land surface features. SWAC module 3

A Fuller Understanding of Fully Convolutional Networks. Evan Shelhamer* Jonathan Long* Trevor Darrell UC Berkeley in CVPR'15, PAMI'16

Land Cover Classification With Superpixels and Jaccard Index Post-Optimization

Comparing of Landsat 8 and Sentinel 2A using Water Extraction Indexes over Volta River

Semantic Segmentation in Red Relief Image Map by UX-Net

Convolutional Networks Overview

Detection and Segmentation. Fei-Fei Li & Justin Johnson & Serena Yeung. Lecture 11 -

Present and future of marine production in Boka Kotorska

Artificial Intelligence Machine learning and Deep Learning: Trends and Tools. Dr. Shaona

PLANET: IMAGING THE EARTH EVERY DAY

GESTURE RECOGNITION WITH 3D CNNS

Passive Acoustic Monitoring of Blue and Fin Whales through

SIMULATION-BASED MODEL CONTROL USING STATIC HAND GESTURES IN MATLAB

How to Access Imagery and Carry Out Remote Sensing Analysis Using Landsat Data in a Browser

An Introduction to Remote Sensing & GIS. Introduction

Practical Uses of Satellite Data in Forest Management

Colorful Image Colorizations Supplementary Material

The studies began when the Tiros satellites (1960) provided man s first synoptic view of the Earth s weather systems.

Advanced satellite image fusion techniques for estimating high resolution Land Surface Temperature time series

Remote Sensing. Odyssey 7 Jun 2012 Benjamin Post

Fully Convolutional Networks for Semantic Segmentation

Machine Learning and Decision Making for Sustainability

Sensor resolutions from space: the tension between temporal, spectral, spatial and swath. David Bruce UniSA and ISU

Convolutional Neural Networks

Classification Accuracies of Malaria Infected Cells Using Deep Convolutional Neural Networks Based on Decompressed Images

Neural Networks The New Moore s Law

Lecture 2. Electromagnetic radiation principles. Units, image resolutions.

Module 3 Introduction to GIS. Lecture 8 GIS data acquisition

large area By Juan Felipe Villegas E Scientific Colloquium Forest information technology

GPU ACCELERATED DEEP LEARNING WITH CUDNN

The Art of Neural Nets

23270: AUGMENTED REALITY FOR NAVIGATION AND INFORMATIONAL ADAS. Sergii Bykov Technical Lead Machine Learning 12 Oct 2017

Using Multi-spectral Imagery in MapInfo Pro Advanced

Radio Deep Learning Efforts Showcase Presentation

Software for roof defects recognition on aerial photographs

Introduction to TimeSync A Tool For Landsat Time Series Visualization. Warren B Cohen, USDA Forest Service Zhiqiang Yang, Oregon State University

Fundamentals of Remote Sensing

arxiv: v1 [cs.ce] 9 Jan 2018

CS 7643: Deep Learning

GTC Todd Bacastow, DigitalGlobe Radiant Todd Stavish, In-Q-Tel CosmiQ Works

Synthetic View Generation for Absolute Pose Regression and Image Synthesis: Supplementary material

COMPARISON OF DIFFERENT METHODS FOR TISSUE SEGMENTATION IN HISTOPATHOLOGICAL WHOLE-SLIDE IMAGES

Application of Satellite Remote Sensing for Natural Disasters Observation

DigitalGlobe High Resolution Satellite Imagery

Quality Assessment Method for Warping and Cropping Error Detection in Digital Repositories

Inter-Calibration of the RapidEye Sensors with Landsat 8, Sentinel and SPOT

USGS Welcome. 38 th CEOS Working Group on Calibration and Validation Plenary (WGCV-38)

NASA Missions and Products: Update. Garik Gutman, LCLUC Program Manager NASA Headquarters Washington, DC

Preparing for the exploitation of Sentinel-2 data for agriculture monitoring. JACQUES Damien, DEFOURNY Pierre UCL-Geomatics Lab 2 octobre 2013

University of Texas at San Antonio EES 5053 Term Project CORRELATION BETWEEN NDVI AND SURFACE TEMPERATURES USING LANDSAT ETM + IMAGERY NEWFEL MAZARI

University of Bristol - Explore Bristol Research. Peer reviewed version. Link to publication record in Explore Bristol Research PDF-document

REMOTE SENSING. Topic 10 Fundamentals of Digital Multispectral Remote Sensing MULTISPECTRAL SCANNERS MULTISPECTRAL SCANNERS

HSI CAMERAS FOR FOOD SAFETY AND FRAUD DETECTION

Google Earth Engine Image Pre-processing Tool: User guide

ArcGIS Runtime: Analysis. Lucas Danzinger Mark Baird Mike Branscomb

Comparison of Google Image Search and ResNet Image Classification Using Image Similarity Metrics

CHANGE DETECTION USING OPTICAL DATA IN SNAP

Visualizing a Pixel. Simulate a Sensor s View from Space. In this activity, you will:

Raster is faster but vector is corrector

Using Freely Available. Remote Sensing to Create a More Powerful GIS

Land Cover Analysis to Determine Areas of Clear-cut and Forest Cover in Olney, Montana. Geob 373 Remote Sensing. Dr Andreas Varhola, Kathry De Rego

arxiv: v1 [cs.cv] 4 Apr 2017

Detecting Greenery in Near Infrared Images of Ground-level Scenes

Global hot spot monitoring with Landsat 8 and Sentinel-2. Soushi Kato Atsushi Oda Ryosuke Nakamura (AIST)

Satellite Imagery and Remote Sensing. DeeDee Whitaker SW Guilford High EES & Chemistry

LedEngin, Inc. High Luminous Efficacy Red LED Emitter LZ4-00R110. Key Features. Typical Applications. Description

earthobservation.wordpress.com

Plant Health Monitoring System Using Raspberry Pi

Learning Deep Networks from Noisy Labels with Dropout Regularization

JECAM/SEN2AGRI CROSS SITES

Embedding Artificial Intelligence into Our Lives

Applying Convolutional Neural Networks to Per-pixel Orthoimagery Land Use Classification

Introduction to image processing for remote sensing: Practical examples

WorldView-2. WorldView-2 Overview

Copernicus Introduction Lisbon, Portugal 13 th & 14 th February 2014

LifeCLEF Bird Identification Task 2016

Advances in the Processing of VHR Optical Imagery in Support of Safeguards Verification

Supplementary Material for Generative Adversarial Perturbations

Transcription:

Large Scale Landuse Classification of Satellite Imagery Suneel Marthi Jose Luis Contreras June 11, 2018 Berlin Buzzwords, Berlin, Germany 1

Agenda Introduction Satellite Image Data Description Cloud Classification Segmentation Apache Beam Beam Inference Pipeline Demo Future Work 2

Goal: Identify Tulip fields from Sentinel-2 satellite images 3

Workflow 4

Data: Sentinel-2 Earth observation mission from ESA 13 spectral bands, from RGB to SWIR (Short Wave Infrared) Spatial resolution: 10m/px (RGB bands) 5 day revisit time Free and open data policy 5

Data acquisition Images downloaded using Sentinel Hub s WMS (web mapping service) Download tool from Matthieu Guillaumin (@mguillau) 6

256 x 256 px images, RGB Data 7

Workflow 8

Filter Clouds Need to remove cloudy images before segmenting Approach: train a Neural Network to classify images as clear or cloudy CNN Architectures: ResNet50 and ResNet101 9

ResNet building block 10

Filter Clouds: training data Planet: Understanding the Amazon from Space Kaggle competition 40K images labeled as clear, hazy, partly cloudy or cloudy 11

Origin Filter Clouds: Training data(2) No. of Images Cloudy Images Kaggle Competition 40000 30% Sentinel-2(hand labelled) 5000 50% Total 45000 32% Only two classes: clear and cloudy (cloudy = haze + partly cloudy + cloudy) 12

Training data split 13

Results Model Accuracy F1 Epochs (train + finetune) ResNet50 0.983 0.986 23 + 7 ResNet101 0.978 0.982 43 + 9 Choose ResNet50 for filtering cloudy images 14

Example Results 15

Data Augmentation import Augmentor p = Augmentor.Pipeline(img_dir) p.skew(probability=0.5, magnitude=0.5) p.shear(probability=0.3, max_shear=15) p.flip_left_right(probability=0.5) p.flip_top_bottom(probability=0.5) p.rotate_random_90(probability=0.75) p.rotate(probability=0.75, max_rotation=20) 16

Example Data Augmentation 17

Workflow 18

Segmentation Goals 19

Approach U-Net State of the Art CNN for Image Segmentation Commonly used with biomedical images Best Architecture for tasks like this O. Ronneberger, P.Fischer, and T. Brox. U-net: Convolutional networks for biomedical image segmentation. arxiv:1505.04597, 2015 20

U-Net Architecture 21

U-Net Building Blocks def conv_block(channels, kernel_size): out = nn.hybridsequential() out.add( nn.conv2d(channels, kernel_size, padding=1, use_bias=false nn.batchnorm(), nn.activation('relu') ) return out def down_block(channels): out = nn.hybridsequential() out.add( conv_block(channels, 3), conv_block(channels, 3) ) return out 22

U-Net Building Blocks (2) class up_block(nn.hybridblock): def init (self, channels, shrink=true, **kwargs): super(up_block, self). init (**kwargs) self.upsampler = nn.conv2dtranspose(channels=channels, ker strides=2, padding=1, self.conv1 = conv_block(channels, 1) self.conv3_0 = conv_block(channels, 3) if shrink: self.conv3_1 = conv_block(int(channels/2), 3) else: self.conv3_1 = conv_block(channels, 3) def hybrid_forward(self, F, x, s): x = self.upsampler(x) x = self.conv1(x) x = F.relu(x) x = F.Crop(*[x,s], center crop=true) 23

U-Net: Training data Ground truth: tulip fields in the Netherlands Provided by Geopedia, from Sinergise 24

Loss function: Soft Dice Coefficient loss Prediction = Probability of each pixel belonging to a Tulip Field (Softmax output) ε serves to prevent division by zero 25

Evaluation Metric: Intersection Over Union(IoU) Aka Jaccard Index Similar to Dice coefficient, standard metric for image segmentation 26

Results IoU = 0.73 after 23 training epochs Related results: DSTL Kaggle competition IoU = 0.84 on crop vs building/road/water/etc segmentation https://www.kaggle.com/c/dstl-satellite-imagery-feature-detection/discussion/29790 27

Was ist Apache Beam? Agnostic (unified Batch + Stream) programming model Java, Python, Go SDKs Runners for Dataflow Apache Flink Apache Spark Google Cloud Dataflow Local DataRunner 28

Warum Apache Beam? Portierbar: Code abstraction that can be executed on different backend runners Vereinheitlicht: Unified batch and Streaming API Erweiterbare Modelle und SDK: Extensible API to define custom sinks and sources 29

Die Apache Beam Vision End Users: Create pipelines in a familiar language SDK Writers: Make Beam concepts available in new languages Runner Writers: Support Beam pipelines in distributed processing environments 30

Inference Pipeline 31

Beam Inference Pipeline pipeline_options = PipelineOptions(pipeline_args) pipeline_options.view_as(setupoptions).save_main_session = True pipeline_options.view_as(standardoptions).streaming = True with beam.pipeline(options=pipeline_options) as p: filtered_images = (p "Read Images" >> beam.create(glob.glob "Batch elements" >> beam.batchelements(0, known_args.batchs "Filter Cloudy images" >> beam.pardo(filtercloudyfn.filterc filtered_images "Segment for Land use" >> beam.pardo(unetinference.unetinferencefn(known_args.m 32

Cloud Classifier DoFn class FilterCloudyFn(apache_beam.DoFn): def process(self, element): """ Returns clear images after filtering the cloudy ones :param element: :return: """ clear_images = [] batch = self.load_batch(element) batch = batch.as_in_context(self.ctx) preds = mx.nd.argmax(self.net(batch), axis=1) idxs = np.arange(len(element))[preds.asnumpy() == 0] clear_images.extend([element[i] for i in idxs]) yield clear_images 33

U-Net Segmentation DoFn class UNetInferenceFn(apache_beam.DoFn): def save_batch(self, filenames, predictions): for idx, fn in enumerate(filenames): base, ext = os.path.splitext(os.path.basename(fn)) mask_name = base + "_predicted_mask" + ext imsave(os.path.join(self.output, mask_name), predict 34

Demo 35

No Tulip Fields 36

Large Tulip Fields 37

Small Tulips Fields 38

Future Work 39

Classify Rock Formations Using Shortwave Infrared images (2.107-2.294 nm) Radiant Energy reflected/transmitted per unit time (Radiant Flux) Eg: Plants don't grow on rocks https://en.wikipedia.org/wiki/radiant_flux 40

Measure Crop Health Using Near-Infrared (NIR) radiation Emitted by plant Chlorophyll and Mesophyll Chlorophyll content differs between plants and plant stages Good measure to identify different plants and their health https://en.wikipedia.org/wiki/near-infrared_spectroscopy#agriculture 41

Use images from Red band Identify borders, regions without much details with naked eye - Wonder Why? Images are in Redband Unsupervised Learning - Clustering 42

Credits Jose Contreras, Matthieu Guillaumin, Kellen Sunderland (Amazon - Berlin) Ali Abbas (HERE - Frankfurt) Apache Beam: Pablo Estrada, Lukasz Cwik, Sergei Sokolenko (Google) Pascal Hahn, Jed Sundvall (Amazon - Germany) Apache OpenNLP: Bruno Kinoshita, Joern Kottmann Stevo Slavic (SAP - Munich) 43

Links Earth on AWS: https://aws.amazon.com/earth/ Semantic Segmentation - U-Net: https://medium.com/@keremturgutlu/semanticsegmentation-u-net-part-1-d8d6f6005066 ResNet: https://arxiv.org/pdf/1512.03385.pdf U-Net: https://arxiv.org/pdf/1505.04597.pdf 44

Links (contd) Apache Beam: https://beam.apache.org Slides: https://smarthi.github.io/bbuzz18-satelliteimage-classification-for-landuse Code: https://github.com/smarthi/satellite-images 45

Fragen??? 46