this is my first machine learning project and actually also my first question here. I am a novice to machine learning with a background in theoretical physics.
I want to use a CNN to detect scratches from manufacturing defects in hi-res images. The images have to be hi-res; downsampling would destroy the very features we want to detect. Also, since we are specifically looking for scratches in certain parts of the product, we cannot simply divide the picture into many tiles and treat each pile - the network will have to "understand" both the small-scale structure (single scratch) as well as the large-scale structure (entire product) of the picture.
I'm concerned about limited model capacity (no of parameters) as well as training time. Also, since the number of training pictures are few, it does not seem to make sense to train a whole network from scratch just using my product pictures.
So, my question is, do you think the following approach would work:
- use a pre-trained (on general lo-res pictures) off-the-shelf CNN (possibly the CNN layers of VGG19?), followed by a pretty radical max-pooling (for downsizing the picture without introducing any further parameters), and then adding 1 or 2 fully connected layers with further successively lower resolution, and training ONLY those last layers using my pictures?
Thanks for any help or hint.
Chris
PS. btw I am planning to use Keras as a platform.