Почему yolo не может обнаружить все объекты на изображении? - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь обнаружить объекты на изображении с помощью AlexeyAB darknet. Но он обнаруживает только 2 или 3 объекта. Он не может обнаружить маленькие объекты (например, шляпу). Я использую эту команду:

./darknet detector test ./cfg/coco.data ./cfg/yolov3.cfg /weight_path/ /image_path/

Как я могу это сделать?

1 Ответ

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

Согласно странице AlexeyAB для небольших объектов вы можете сделать следующее:

для обучения небольших объектов (меньше 16x16 после изменения размера изображения до 416x416) - установитеслои = -1, 11 вместо https://github.com/AlexeyAB/darknet/blob/6390a5a2ab61a0bdf6f1a9a6b4a739c16b36e0d7/cfg/yolov3.cfg#L720 и установите шаг = 4 вместо https://github.com/AlexeyAB/darknet/blob/6390a5a2ab61a0bdf6f1a9a6b4a739c16b36e0d7/cfg/yolov3.cfg#L717

Для обучения маленьких и больших объектов вы можете использовать модифицированные модели:

Также после завершения обучения на этапе обнаружения вы можете сделать следующее:

Увеличить сетевое разрешение, установив в своем.cfg-файл (высота = 608 и ширина = 608) или (высота = 832 и ширина = 832) или (любое значение, кратное 32) - это повышает точность и позволяет обнаруживать небольшие объекты: ссылка

  • нет необходимости заново обучать сеть, просто используйте .weights-файл, уже подготовленный для 416x416 разрешение

  • , но чтобы получить еще большую точность, вы должны тренироваться с более высоким разрешением 608x608 или 832x832, обратите внимание: если ошибка нехватки памяти
    , то в .cfg-файле вы должны увеличитьподразделения = 16, 32 или 64: ссылка

...