Training model to recognize one specific object (or scene)

552 Views Asked by At

I am trying to train a learning model to recognize one specific scene. For example, say I would like to train it to recognize pictures taken at an amusement park and I already have 10 thousand pictures taken at an amusement park. I would like to train this model with those pictures so that it would be able to give a score for other pictures of the probability that they were taken at an amusement park. How do I do that? Considering this is an image recognition problem, I would probably use a convolutional neural network, but I am not quite sure how to train it in this case.

Thanks!

1

There are 1 best solutions below

2
On

There are several possible ways. The most trivial one is to collect a large number of negative examples (images from other places) and train a two-class model.

The second approach would be to train a network to extract meaningful low-dimensional representations from an input image (embeddings). Here you can use siamese training to explicitly train the network to learn similarities between images. Such an approach is employed for face recognition, for instance (see FaceNet). Having such embeddings, you can use some well-established methods for outlier detections, for instance, 1-class SVM, or any other classifier. In this case you also need negative examples.

I would heavily augment your data using image cropping - it is the most obvious way to increase the amount of training data in your case.

In general, your success in this task strongly depends on the task statement (are restricted to parks only, or any kind of place) and the proper data.