Clashifier
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.
Install / Use
/learn @jywarren/ClashifierREADME
##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
