Other lists of techniques to look at:
Convolutional Neural Networks are another approach to image classification.
This goes outside the realm of sklearn, but has been used successfully on
some fairly complex data. For example, I have some code at
https://github.com/kastnerkyle/kaggle-cifar10 which uses pylearn2 for a
problem called cifar10 - this is classification of image data in (3,32,32)
arrays into 1 of 10 possible classes. Though the cifar10 dataset is 32x32
RGB images, I would assume the same framework would work with 6 (or really
N) channels of XxY data, given enough processing horsepower (though
processing is not negligible for this task...).
Other things that fall into the realm of sklearn would be applying feature
extractors like SIFT (
http://en.wikipedia.org/wiki/Scale-invariant_feature_transform) or HOG (
http://en.wikipedia.org/wiki/Histogram_of_oriented_gradients), then using
these feature sets with algorithms supported in sklearn such as SVMs,
random forests, etc. Other things to look at might be a) an "average" image
which has the information from all 6 channels, b) a single image made by
applying higher order statistics across channels (variance, skewness,
kurtosis) c) correlations between channels, d) "super pixel" approaches
which break the image into larger pieces (
http://ttic.uchicago.edu/~xren/research/superpixel/). Some of these
techniques may be available in scikit-image (http://scikit-image.org/).
Multi-spectral image classification is something a friend of mine has been
working on for a project - I will ask for some additional tips. This sounds
like really cool stuff! If you end up with any publicly available samples
I, for one, would be interested.
Kyle
On Wed, Oct 23, 2013 at 10:08 AM, jim vickroy <jim.vick...@noaa.gov> wrote:
> On 10/22/2013 9:30 PM, Andreas Mueller wrote:
>
> I would also suggest the book "computer vision" by Richard Szeliski.
>
> For you classification problem it really depends on what you want as
> output and what the statistics of the data are.
> If I understand you correctly, you want a prediction for each label. If
> your images are somewhat natural, the labels
> are usually smooth in the sense that neighboring regions are often
> labelled the same way.
> Then it might be helpful to use an oversegmentation of the image into
> superpixels (for example using slic from scikit-image)
> and then classify on a superpixel basis.
> Each superpixel could be described by descriptors as mentioned by Joseph.
> I have been planing to write a tutorial on that for a long time :-/
>
> What are the classes? Are they semantic?
>
> A completely different approach would be to use image-based random
> forests, such as implemented here:
> https://github.com/deeplearningais/curfil
>
> Hth,
> Andy
>
>
> Thanks Andy.
>
> I've been dancing around the classification task trying not to give more
> information than I thought was useful.
>
> The task is to classify each pixel in "matched sets" of Solar images in
> "near real-time". The classification labels are Solar features like
> (Corona, Flare, Filament, Prominence, Sunspot, etc.). A "matched set"
> consists of 6 temporally-related images each captured using one of 6 unique
> filters. This stack of 6 images (called a multi-channel image) is what is
> to be analyzed and classified. Since each multi-channel pixel has a depth
> of 6, its signature is "almost" unique with regard to Solar feature; but
> there is some overlap.
>
> We presently have a custom-rolled (pixel-by-pixel) Bayesian classifier
> doing the task with live Solar data, but we are not completely satisfied
> with its performance and it is difficult/tedious to train.
>
> I am starting to look for alternative approaches, but I am really a
> complete novice at this. This is my first foray into ML; nevertheless, it
> is very interesting to me!
>
> -- jv
>
>
>
> On 10/22/2013 02:35 PM, jim vickroy wrote:
>
> On 10/22/2013 3:32 PM, Joseph Jacobs wrote:
>
> The best book I have come across for image processing/vision + machine
> learning is one by Simon Prince. You can download the book from his website
> (http://computervisionmodels.com/). Chapter 13 gives a good intro to
> feature extraction.
>
>
> OK, great -- just what I need! --jv
>
>
> Joe
>
> On 22 Oct 2013, at 22:27, jim vickroy wrote:
>
> On 10/22/2013 2:47 PM, Joseph Jacobs wrote:
>
> Hey Jim,
>
> From my (non-expert) perspective, performing classification pixel-wise
> would not be ideal (please correct me if I am wrong). I think the better
> way would be to perform some sort of feature extraction on the image (eg.
> SIFT, SURF, HOG, LBP and many, many more...checkout scikit-image or google
> it) and to do classification using that. Which feature extraction method
> would be ideal for you and how you apply it would depend on the application.
>
>
> Thanks for the suggestion; I'll look into that! I'm a novice, but I agree
> pixel-by-pixel classification would not seem to scale well. --jv
>
>
> Not sure how helpful that was.
>
> Joe
>
> On 22 Oct 2013, at 21:10, jim vickroy wrote:
>
> Hi,
>
> Apologies if this is an inappropriate question for this forum.
>
> I have a collection of (1024x1024) mono-chromatic images in which each
> pixel is to be labeled as 1 of several categories (e.g., 10). Furthermore,
> each mono-chromatic image was captured through several filters (e.g., 5).
>
> My understanding of the sci-kit documentation is that I would train a
> classifier on a pixel-by-pixel basis and then apply it, to new images, on a
> pixel-by-pixel basis. Is that correct?
>
> Thanks for your time.
>
> -- jv
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
> from
> the latest Intel processors and coprocessors. See abstracts and register >
>
> http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk_______________________________________________
> Scikit-learn-general mailing list
> Scikit-learn-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>
>
>
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
> the latest Intel processors and coprocessors. See abstracts and register
> >http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Scikit-learn-general mailing
> listScikit-learn-general@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
> from
> the latest Intel processors and coprocessors. See abstracts and register >
>
> http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk_______________________________________________
> Scikit-learn-general mailing list
> Scikit-learn-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>
>
>
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
> the latest Intel processors and coprocessors. See abstracts and register
> >http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Scikit-learn-general mailing
> listScikit-learn-general@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>
>
>
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
> the latest Intel processors and coprocessors. See abstracts and register
> >http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Scikit-learn-general mailing
> listScikit-learn-general@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>
>
>
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
> the latest Intel processors and coprocessors. See abstracts and register
> >http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Scikit-learn-general mailing
> listScikit-learn-general@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>
>
>
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
> from
> the latest Intel processors and coprocessors. See abstracts and register >
> http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
> _______________________________________________
> Scikit-learn-general mailing list
> Scikit-learn-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>
>
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
_______________________________________________
Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general