Image classifier with 'others or background' category


Hi All,

I am trying to train a image classifier that can classify a few categories like “human, animal, cars” , but there is also a category called “others” , which means when the object is not in any of “human, animal, cars”, it should be classified as “others”. It is used in web-camera in real-life, so the “others” includes background, or everything else.

The problem is we can not train good enough for “others” category. What I am doing now, is just like train a normal single-label multi-classification problem (last layer is softmax) with good training/validation results. But when used in the webcam, sometimes the background is recognized as human or car.

Should I train it like a multi-label problem, where the last layer is sigmoid. so we have confidence score for each class?

Or any other ideas.

Thanks a lot.

(ehsan) #2

Hi dear @cooli46
It’s my question too. I’ve gotten stuck in such problem.
Actually I’ve trained my model with sigmoid as the last layer and tested different augmentations(hue, saturation, exposure, random crop) but I hasn’t found my desire model to overcome that problem.
don’t wast your time to perform.
I’ll be very very thankful if any body helps me about the solution.

(sonali) #3

I am new in the area of deep learning.

I am trying to design one clustering module using autoencoder.

I am using one vanilla auto encoder to extract the feature for simplicity. the steps are as follows:

  1. Design one vanilla autoencoder and train it with training data.

  2. Save the weight of the trained network.

  3. Remove the last layer

  4. Run the model with the test data in feed-forward mode

  5. Extract the feature vector from the latent layer, i.e., output of encoder.

  6. Run kmenas clustering algorithm on the feature vector

  7. Got the cluster centres with overlapping clusters.

My query is, is that the correct method of fusing neural network with any clustering /Classification algorithm or some thing else?

If it is wrong method, what is the actual method to do the classification/clustering ?

(Austin) #4

I’m interested in hearing what others have done for this too.

I don’t see an advantage in using sigmoid if the data isn’t multi-label.

Occasionally what I’ve done rather than include an ‘other’ class is to add logic to the end that says, if none of the probabilities are above some threshold, e.g. 0.6, then change output class to ‘other’. I’ve done this when I was not confident that I could account for enough similar-but-not objects in the ‘other’ images.