Я хочу обучить YOLOv3 обнаружению людей на аэрофотоснимках. Я использую обнаружение объектов VisDrone в наборе данных изображений: github.com / VisDrone / VisDrone-Dataset
Я написал скрипт, который конвертировал метки в формат dar knet, чтобы я мог тренировать его в соответствии с инструкциями pjredd ie "Обучение YOLO на COCO". Я дважды проверил, правильно ли мои конвертированные метки соответствуют объектам, и я также создал правильный файл coco.names в соответствии с описанием меток на VisDrone2018-DET-toolkit на github. Я создал файл trainvalno5k.txt, запустив
python 5kGenerator.py> trainvalno5k.txt
5kGenerator.py:
import os
for filename in os.listdir('images'):
print( os.path.abspath( os.path.join( 'images', filename )))
Я изменил файл coco.data, это результат:
classes= 12
train = /mnt/d/Olaf/Documents/Python/VisDrone2019-DET-train/trainvalno5k.txt
#valid = /mnt/d/Olaf/Documents/Python/VisDrone2019-DET-train/5k.txt
#valid = data/coco_val_5k.list
names = /mnt/d/Olaf/Documents/Python/VisDrone2019-DET-train/coco.names
backup = backup
#eval=coco
Я прокомментировал, что он действителен, потому что, насколько я понимаю, его для проверки результатов и действительный набор данных не имеет значения для обучения (я не удосужился его создать).
Когда я запускаю ./darknet поезд детекторов cfg / coco.data cfg / yolov3.cfg darknet53.conv.74 вещи загружаются правильно и обучение начинается, но через каждые несколько строк я получаю -nan сообщения и у меня есть не знаю, почему и если это влияет на конечный результат, например:
Loading weights from darknet53.conv.74...Done!
Learning Rate: 0.001, Momentum: 0.9, Decay: 0.0005
Resizing
416
Loaded: 1.122782 seconds
Region 82 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.428162, .5R: -nan, .75R: -nan, count: 0
Region 94 Avg IOU: 0.409795, Class: 0.690346, Obj: 0.091164, No Obj: 0.519810, .5R: 0.000000, .75R: 0.000000, count: 1
Region 106 Avg IOU: 0.157575, Class: 0.532119, Obj: 0.333807, No Obj: 0.417611, .5R: 0.045685, .75R: 0.000000, count: 197
Region 82 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.427261, .5R: -nan, .75R: -nan, count: 0
Это довольно медленно, потому что я тестирую это на CPU, надлежащее обучение будет проводиться на Nvidia Quadro
Не могли бы вы объяснить это поведение и что я могу сделать, чтобы решить эту проблему -nan?
Ps. Я использую терминал Ubuntu на Windows 10, я не знаю, если это важно.