This seems like a great problem to tackle with deep learning.
[1] http://static.googleusercontent.com/media/research.google.co...
I think you'd have to apply a fair amount of pre-processing anyway before you passed it over to the ANN.
We open sourced a pretty cool standalone machine in Java that addresses those issues about a week ago. Looking for feedback...
There are a lot of innovations in image processing wrt neural nets specifically. The right neural network can learn everything from scene detection to simple object recognition.
I would highly reccommend taking a look at the neural nets course on coursera to understand some of the use cases.