A Guide to Convolutional Neural Networks for Computer Vision