Как преобразовать модель даркнета йоло в керас?

Я использую yad2k для преобразования модели даркнета YOLO в формат keras .h5. У меня есть yolov3-voice.cfg, yolov3.weights и yolov3.cfg в каталоге над тем, который содержит скрипт yad2k. Когда я запускаю следующую команду:

python3 yad2k.py -p ../yolov3-voc.cfg ../yolov3.weights model_data/yolov3.h5

or:

python3 yad2k.py -p ../yolov3.cfg ../yolov3.weights model_data/yolov3.h5

Я получаю следующую ошибку:

    Traceback (most recent call last):
  File "yad2k.py", line 271, in <module>
    _main(parser.parse_args())
  File "yad2k.py", line 90, in _main
    cfg_parser.read_file(unique_config_file)
  File "/Users/tobykrieman/anaconda/lib/python3.6/configparser.py", line 718, in read_file
    self._read(f, source)
  File "/Users/tobykrieman/anaconda/lib/python3.6/configparser.py", line 1080, in _read
    raise MissingSectionHeaderError(fpname, lineno, line)
configparser.MissingSectionHeaderError: File contains no section headers.
file: '<???>', line: 7
'<!DOCTYPE html>\n'

Как я могу это исправить?


person Tob    schedule 28.04.2018    source источник


Ответы (3)


Вероятно, ваши файлы даркнета .cfg неверны. Они должны выглядеть примерно так:

[net]
batch=128
subdivisions=1
height=227
width=227
channels=3
momentum=0.9
decay=0.0005
max_crop=256

learning_rate=0.01
policy=poly
power=4
max_batches=800000

angle=7
hue = .1
saturation=.75
exposure=.75
aspect=.75

[convolutional]
filters=96
...

(взято из https://github.com/pjreddie/darknet/blob/master/cfg/alexnet.cfg)
Ваш .cfg файл выглядит так, как будто в нем есть HTML.

person Jason Chen    schedule 29.04.2018

Вам следует попробовать инструкции в этом репозитории Github, который является «реализацией YOLOv3 в Keras».

git clone https://github.com/qqwweee/keras-yolo3.git
cd keras-yolo3
wget https://pjreddie.com/media/files/yolov3.weights
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
python yolo.py   OR   python yolo_video.py [video_path] [output_path(optional)]
person jsga    schedule 29.06.2018

Вы не можете преобразовать YOLOv3 в модель Keras с помощью YAD2K. Это потому, что файл конфигурации YOLOv3 имеет заголовок [shortcut]. В файле yad2k.py нет метода обработки этого заголовка, как он был написан во времена YOLOv2 (в котором нет этого слоя / заголовка).

Однако в вашем случае вы, похоже, читаете файл конфигурации другого типа, который, по-видимому, имеет тег <!DOCTYPE html>\n. Но в любом случае, даже если вы попробуете это с помощью YOLOv3 cfg, это не сработает по причине, о которой я упоминал выше. Пробовал сам!

person Swapnil Jaswal    schedule 09.05.2018