TLTR: I'm developing a CNN for a classification task. The data contains multiple classes some of which are very similar to each other and I know these meta-classes. In such a situation is it a good approach to use 2 Levels of CNNs: 1. Level detect the meta-classes. 2. Level detect the classes within the classified meta class (of Level 1).
Example: Suppose I try to classify the following 9 classes:
Apple Tree, Plum Tree, Cherry Tree, Sports car, SUV car, Coupe car, Dog, Cat, Wolf
Now I could of course use one network on these classes and get a classification output for all of them. But the output (softmax) percentage e.g. for an apple tree would be for probably high for any tree class. Thus is it a good approach to train and use 2 level of CNNs, like this:
- Level classify tree, car, animal --> Trained with all images
- Level classify what kind of tree, car, animal --> trained only with the subsample of trees, cars, animals
So images are checked by CNN Level 1 and then depending on its classification with appropriate CNN Level 2.
So the questions are:
- Is this a good approach ?
- Does it help in terms of prediction quality/accuracy of the subclasses?
- Is it easier for an CNN to detect the specific features of a subclass if the input is limited (like in level 2) ?
Or use another approach ?