Coder Social home page Coder Social logo

roaddetection's Introduction

Road Detection

Detection of roadways within satellite data
Data provided: 45 training examples, 10 test images

Problem Statement

Derive a mask depicting roadways from each 3200 x 4800 satellite image tile.

Methodology

This is an image segmentation problem requiring pixel-wise binary classification of the input image resulting in a two-class output image. An extension of a fully connected convolutional network (FCN) was selected to solve this problem as it is suitable for use with a small number of training examples. A total of 8 false positives were removed from the dataset during preprocessing.

Solution Architecture:
U-net provides good segementation capability using a symmetrical downsampling and upsampling network of layers which is more efficient than an FCN. A pre-existing open-source implementation (tf_unet) was utilised for this purpose.

Optimisation:

  • Input images were scaled from (3200, 4800) down to (400, 600) to circumvent resource constraints.
  • The number of layers in the unet was set 4 with 48 features, which provided good performance.
  • Batch normalization was added to the convolutional layer to scale and normalise the input arrays resulting in faster convergence.

Results

Training occured over 64 iterations across 50 epochs. The network was trained using an RTX2070 GPU in approximately 90 minutes resulting in an average accuracy of 98%.

Model training Accuracy: Alt text

Mask creation from the training set: Alt text

Creating a mask from the test set using the pre-trained model (no ground truth mask): Alt text

Improvements:
It would be desirable to avoid downsampling the training images in order to capture more details during learning, as well as to output a mask at the same resolution as the training images.

In order to increase the power of the network, it would be beneficial to train on multiple GPUs. Horovod - a C++ library developed by Uber for distributed tensorflow operations (https://github.com/uber/horovod) would be worth investigating to this end.

An implementation of U-net with iHorovod integration built-in would be a logical choice for testing alongside the proposed solution. https://github.com/ankurhanda/tf-unet

roaddetection's People

Contributors

numbacruncha avatar

Stargazers

 avatar Shubham avatar

Watchers

 avatar

Forkers

liyingben

roaddetection's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.