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/).