Is it possible to distinguish between the different classes of birds? I do not aim to have a very specific classifier, but a classifier that is atleast able to distinguish between a parrot and an eagle.

So if i have a four way training set, 1) Images of parrots 2) Images of Eagles 3) Images of Birds/{Parrots, Eagles} 4) Random Images.

Is it possible to have a good classifier for this purpose ?

Would neural networks work ? or a combination of SIFT features with an SVM ?


Neural networks would work like a charm. More specifically, I would go for a convolutional neural network, as they have been proven to outperform any other classifier in image recognition competitions like ImageNet (http://www.image-net.org/) the last few years, substantially outperforming SVMs in such tasks. They are able to learn features (usually much better than hand-crafted ones HoG, SIFT etc.) with location and slight transformation invariance (because of the convolutions and the pooling), which makes them a very attractive choice.

Now, I would suggest writing your implementation in Torch7 (http://torch.ch/), which is considered the state-of-the-art in deep learning (supported by NYU, Facebook AI and Google Deepmind). Then I would base my architecture in any of the ImageNet models (https://github.com/soumith/convnet-benchmarks/tree/master/torch7/imagenet_winners) and probably simplify it a lot as you have only 4 classes.

Another, popular alternative is Caffe where it might be easier to start with. If you want to read about Convolution Networks in Caffe this might be of your interest (http://libccv.org/doc/doc-convnet/).

  • $\begingroup$ Looking at the classes into which the convolution neural networks are able to classify beautifully, It appears there has to be a striking difference in terms of color and structure. (Am I wrong ?) What if I use the same framework to classify Humans ? Say Ron Weasely and Harry Potter. Can this be done using Convolution Neural Networks ? Or would Sift features work better here ? $\endgroup$ – midi Jun 16 '15 at 9:09
  • $\begingroup$ I wouldn't worry about that as long as your classes are balanced and yes it would work at that case. There are many papers describing that (e.g. deepface of facebook). SIFT would be a choice in any case where your dataset is small. $\endgroup$ – Yannis Assael Jun 16 '15 at 9:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.