# Should I train different models for detecting subsets of objects?

Suppose we have $$1000$$ products that we want to detect. For each of these products, we have $$500$$ training images/annotations. Thus we have $$500,000$$ training images/associated annotations. If we want to train a good object detection algorithm to recognize these objects (e.g. YOLO) would it be better to have multiple detection models? In other words, should we have 10 different YOLO models where each YOLO model is responsible for detecting 100 products? Or is it good enough to have one YOLO model that can detect all 1000 products? Which would be better in terms of mAP/recall/precision?

• If you have 10 YOLO models that detect 100 different products and you need to detect a product how will you know which model was trained for that specific product ? You would have to wastefully process that product with 9 YOLO models. In that case you might as well make an ensemble of object detectors instead of training more of them on different objects. If we talk about only 1 YOLO model, authors in their YOLO v2 paper claim that they can detect over 9000 object categories so it might not be unreasonable to expect that YOLO v3 could learn 1000 different objects on its own. Nov 24, 2019 at 10:58
• Added another correct answer @Prime Number Nov 29, 2019 at 1:06

One vs. all provides a way to leverage binary classification. Given a classification problem with $$N$$ possible solutions, a one-vs.-all solution consists of $$N$$ separate binary classifiers—one binary classifier for each possible outcome. During training, the model runs through a sequence of binary classifiers, training each to answer a separate classification question.