Смотрю что Caffe2 используется для распознавания объектов а потом чтобы считать состояние или распознать используется OpenCV или тоже Caffe2 может(лучше?)?
Если тебе подойдёт простой детектор, можешь использовать и opencv или сам написать. А если сложно сформулировать задачу явно, но на примерах и контрпримерах в принципе видно, как оно должно работать -- то тогда нужно использовать deep learning. Фреймворк можно брать любой. Близок C/C++ - можешь взять caffe2. Найди там похожую задачу и скопируй оттуда нейросеть (лучше -- обученную, т.е. сделать fine-tuning). Тогда в некоторых случаях и базы из всего 100 примеров (и контрпримеров) хватает. Да, контрпримеров зачастую можно набрать намного больше, чем примеров (как говорится, почему бы и нет).