Положение и размер ограничивающей рамки неверны, как повысить их точность?

#pytorch #conv-neural-network #bounding-box #faster-rcnn #detectron

#pytorch #conv-нейронная сеть #ограничивающая рамка #быстрее-rcnn #detectron

Вопрос:

Я использую detectron2 для решения задачи сегментации, я пытаюсь классифицировать объект на 4 класса, поэтому я использовал COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml. Я применил 4 вида преобразований увеличения, и после обучения я получаю около 0,1 общей потери.

Но по какой-то причине точность bbox невелика на некоторых изображениях в тестовом наборе, bbox отображается либо больше, либо меньше, либо не покрывает весь объект.

Более того, иногда предсказатель рисует несколько bboxes, он предполагает, что существует несколько разных объектов, хотя существует только один объект.

Есть ли какие-либо предложения, как улучшить ее точность?

Существуют ли какие-либо эффективные практические подходы к решению этой проблемы?

Любые предложения или справочные материалы будут полезны.

Ответ №1:

Я бы предложил следующее:

  1. Убедитесь, что в вашем обучающем наборе есть объект, который вы хотите обнаружить, всех размеров: таким образом, сеть узнает, что размер объекта может отличаться и менее подвержен переобучению (например, детектор может предположить, что ваш объект должен быть только большим).
  2. Добавьте данные. Вместо того, чтобы применять все типы дополнений, попробуйте добавить гораздо больше данных. Явление обнаружения разных объектов, хотя есть только один объект, наводит меня на мысль, что ваша сеть плохо обобщается. Лично я бы выбрал не менее 500 аннотаций на класс.

Самый большой шаг к улучшению будет достигнут с помощью (2).

Как только у вас будет приличная базовая линия, вы также можете поэкспериментировать с дополнениями.

Комментарии:

1. спасибо за ответ. Я пытаюсь распознать собачий хлеб. Я только что заметил, что у Yolov5 уже есть имя класса dog, так что, как вы думаете, я должен дать yolov5 роль поиска позиции bbox (потому что мой bbox через мою модель не точен), а затем классифицировать фактическую породу с помощью моей модели, которая была обучена 4 классам пород?

2. Если вы видите, что предсказание класса не выполняется все / большую часть времени, вы можете передать его классификатору. Но я говорю, что Yolo должен хорошо справляться с обеими задачами, поэтому вам действительно следует обратить внимание на свой набор данных.

3. При условии, что у вас, конечно, есть набор данных с аннотациями ограничивающей рамки … в противном случае единственное решение, как вы сказали.