Тренировка YOLOv3 на COCO дает мне плохую среднюю точность - PullRequest
0 голосов
/ 01 октября 2019

Я хочу обучить YOLO распознавать только классного человека. Для этого я скачал набор данных COCO, настроил метки только для этого класса и соответственно изменил конфигурационные файлы, затем я обучил YOLO, выполнив шаги, описанные в разделе «Обучение YOLO на COCO» на этом сайте https://pjreddie.com/darknet/yolo/. Носредняя средняя точность (карта) с моими тренированными весами для человека в классе намного хуже, чем у карты для того же класса, когда я использую тренированные веса с той же страницы под заголовком «Производительность в наборе данных COCO». Мне было интересно, что может быть причиной этого, и какие данные использовались для тренировки весов, доступных на домашней странице.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Было бы намного проще, IMMO, использовать предварительно обученные веса с предустановленными * .names, * .data и * .cfg. Затем вы запускаете детектор для отдельных изображений или для списка имен файлов изображений в режиме (я не помню деталей), где YOLO выводит список обнаружений в форме имени класса, достоверности и bbox. Затем вы просто игнорируете что-либо, кроме класса «персона».

0 голосов
/ 02 октября 2019

Возможно, что-то не так, когда вы изменяете файл cfg (классы, фильтры и т. Д.). В любом случае, какова цель вашей задачи? Вы действительно должны переучить модель, или вам нужно только отфильтровать 1 класс и сделать обнаружение?

Если вы хотите отфильтровать метку Person только из 80 классов, вы можете просто сделать этот обходной метод. Вам не нужно переучивать модель, вам просто нужно использовать вес, указанный автором на сайте yolo.

Для простого и простого способа с использованием набора данных COCO выполните следующие действия:

  • Измените (или скопируйте для резервного копирования) файл coco.names в darknet\data\coco.names
  • Удалите все остальные классы, кроме person
  • Измените свой файл cfg (например, yolov3.cfg), измените 3 классов в строке 610, 696, 783 с 80 на 1
  • Измените фильтр 3 s в файле cfg в строке 603, 689, 776 с 255 до 18 (получено из (classes+5)x3)
  • Запустите детектор ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/your_image.jpg

. Более продвинутый способ , используя набор данных COCO , вы можете использовать этот репозиторий для создания наборов данных yolo на основе голоса, кокоса или открытых изображений. https://github.com/holger-prause/yolo_utils.
См. Также: Как загрузить определенную часть набора данных Coco?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...