Добавление нового класса в существующий класс модели обнаружения объектов Tensorflow
Я пытаюсь добавить новый класс в ms_coco_model (с 90 классами) в модели обнаружения объектов tenorflow и запустить обучающий набор для него. Я использую предварительно обученную контрольную точку модели: "ssd_mobilenet_v1_coco_checkpoint", чтобы ускорить этап обучения.
Я следил за блогом https://towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detector-api-bec72ecfe1d9, и это прекрасно работает. Так как он выполняет этап обучения только для набора данных енота, имеющего 1 класс в файле.pbtxt. Выходы, как и ожидалось, способны определять "только" енота в заданном входном файле.
Чего я хочу добиться, так это уметь обнаруживать енота и другие объекты в данном входном файле. Я придерживался следующего подхода:
- Преобразованные аннотации енотов.xml в формат.json (такие же, как набор данных ms_coco)
- Добавлены изображения енотов и аннотации в файлы изображений и аннотаций ms_coco
- Запустил скрипт create_tfrecord, чтобы сгенерировать tfrecord для объединенных данных ms_coco + raccoon, для этапа обучения
- Обновлен файл.pbtxt и добавлен класс енота с идентификатором 91
- Начался этап обучения с предварительно обученной моделью ssd_mobilenet_v1_coco_checkpoint
Но даже после прохождения обучения за ~2 000 шагов, я не могу достичь ожидаемого результата.
Правильно ли использовать этот подход для добавления данных нового класса в существующую модель данных? Я что-то здесь упускаю?