Skip to content
Not-yet-working web service to train a classification algorithm to identify land types and perform classification on arbitrary images... esp. eventually map tiles. Will act as a map tile proxy which generates classified land cover imagery. Please help make this happen.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
config
db
doc
lib
public
script
test
vendor/plugins
.gitignore
Gemfile
LICENSE
README
Rakefile
config.ru

README

##Clashifier##

Clashifier is open source software, and is part of open source research by the Public Laboratory for Open Technology and Science.

To use Clashifier, you can:

* Train it with a "classname" and a set of corresponding color bands (red, green, blue, near-infrared)
* Find the nearest classname to a set of color bands (and their relative cartesian distance)
* (soon) point it at the URL of an image to get back an image color-coded by classname
* (soon) "draw" on an image in-browser with a colored "pen" to classify pixels from that image and train a model

We hope this will be useful for:

* automatically classifying aerial imagery by land use or type
* detecting and quantifying geographic events like oil spills or chemical seeps
* identifying different plant species, especially in a monoculture as found in wetlands
* (maybe?) identifying crop diseases

This project is in early-stage development and we really need all the help we can get! Get in touch on the Public Laboratory mailing list (sign up at publiclaboratory.org/user/register to join) and pitch in!

########################
Depends on:
########################

* RMagick
* rmagick gems, paperclip

########################
To do: 
########################

* start with a few sample images and set up Fred to grab pixel colors based on clicks (naming a class in an input field)
* allow submission of batches of pixels and start collecting sets of pixels based on dragging -- "painting"
  * try coloring what you've "painted"
* Set up image uploading with Paperclip
* histogram an image by classname
* generate a new image colored by classname, with an HTML key
* create an image proxy which colors by classname

Later on:

* Consider normalized RGB: R/(R+G+B) to reduce lighting effects?
* Other classification techniques: SVM, KNN, Neural network

########################
Helpful reading
########################

"Naive Bayes Classification in Ruby using Hadoop and HBase"
  * http://findingscience.com/ankusa/hbase/hadoop/ruby/2010/12/02/naive-bayes-classification-in-ruby-using-hadoop-and-hbase.html

"Bayesian marker extraction for color watershed in segmenting microscopic images"
  * Olivier Lezoray, Hubert Cardot

"Classifier gem: Classifier is a general module to allow Bayesian and other types of classifications."
  * https://github.com/cardmagic/classifier

"Progress in pattern recognition, image analysis and applications"
  * Luis Rueda, Domingo Mery, Josef Kittler
  * http://books.google.com/books?id=JMQk1HJmhv0C&pg=PA813&lpg=PA813&dq=naive+bayes+color+classification+rgb&source=bl&ots=MJnQgy9Wwf&sig=Z_99zvjO-LsKBbp9v3D29dJ039o&hl=en&ei=TVitTsPmJ-Ld0QGMp-GuDw&sa=X&oi=book_result&ct=result&resnum=2&ved=0CCEQ6AEwAQ#v=onepage&q=naive%20bayes%20color%20classification%20rgb&f=false

"Ways to improve Image Pixel Classification"
  * Stack Overflow
  * http://stackoverflow.com/questions/6613825/ways-to-improve-image-pixel-classification
You can’t perform that action at this time.