Skip to content

CLASA/Contrail-Machine-Vision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Contrail Machine Vision

NASA Space Apps challenge 2016

The Clouds or Contrails challenge asks competitors to present a solution for identifying contrails left by planes. This part of CLASA’s solution entails a machine vision classifier that discriminates between photos of contrails vs. other clouds.

How it works

Data pre-processing

Images arrive from many different devices, each with different resolutions and colour profiles. First, images are pre-processed to attempt to make images from different sources as similar as possible. The following image shows the pre-processing pipeline.

readme/preprocessing.png

ml-model/1.jpg

ml-model/2.jpg

ml-model/3.jpg

ml-model/4.jpg

ml-model/5.jpg

ml-model/6.jpg

Features

Next, certain image features are quantified. Images will be recognised and classified using these features. All chosen features are based off the Hough Transform, which was chosen for its ability to recognise lines: a critical differing feature of contrails. The exact features are:

  • Standard deviation of the Hough space.
  • Kurtosis of the Hough space – to identify where lines are dominant.
  • Z-score of the maximum in Hough space – again searching for dominance of a single line.
  • Standard deviation of angles of recognised lines – are lines parallel?
  • Number of identified lines

Learning

The learning algorithm itself is the Random Forest classifier. This is a method of machine learning, meaning that the computer must decide for itself which of the provided features are important in determining whether an image is of a contrail or not.

Training and verification

The models are trained on test data collected by entering the terms “contrail” and “cirrus” into Google Images. 10-fold cross-validation determined the model estimated with approximately 75% accuracy.

Improvements

The implementation is a proof of concept only, and could be made far more accurate. Firstly, more features should be taken from the data. These could include a host of other features, for example: connected componets, and using graph analysis, blob analysis, and possibly texture analysis (not on theshholded images). Other learning models may also be investigated. Finally, a large dataset could be used for training, which will be collected through CLASA’s web dashboard.

Folders

  • =ml-model= contains the python machine training and verification code.
  • =./flask-server= contains a web RESTFUL API, currently only returning features rather than classification results.

About

Clouds or Contrails? -- Backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages