Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Теперь, когда мы настроили TensorFlow, мы будем использовать архитектуру YOLO для обучения модели обнаружения объектов. YOLO — это нейронная сеть, которая прогнозирует ограничивающие прямоугольники и вероятности классов из изображения в одной оценке. Модели YOLO могут обрабатывать более 60 кадров в секунду, что делает его отличной архитектурой для обнаружения объектов в видео. Дополнительные сведения о работе YOLO см. здесь.
Использование YOLO
Сначала скачайте этот пример файла YOLO, который содержит вспомогательные скрипты для начала работы.
При использовании YOLO у нас есть 3 варианта:
Для YOLO используйте предобученные веса модели. Предварительно обученная модель была обучена на большом наборе данных с 80 классами (категориями) для повседневных объектов, таких как автобус, человек, сэндвич и т. д. Если вы хотите скачать предварительно обученную модель YOLO в формате ONNX, это можно сделать здесь. Затем вы можете перейти к последнему этапу этого руководства , чтобы узнать, как интегрировать эту модель в приложение.
Реализуйте обучение по передаче с помощью настраиваемого набора данных. Передача обучения — это метод использования обученной модели в качестве отправной точки для обучения модели, решающей другую, но связанную задачу. В этом руководстве будут использоваться предварительно обученные весы YOLO с 80 классами для обучения модели с 20 классами с набором данных VOC. Если вы хотите создать собственный набор данных с пользовательскими классами, ознакомьтесь с инструкциями здесь.
Обучение YOLO с нуля. Этот метод не рекомендуется, так как очень трудно конвергентировать. Оригинальный документ YOLO обучал Darknet на ImageNet (содержащем сотни тысяч фотографий) перед тем, как обучить всю сеть целиком.
Реализуйте обучение по предварительно обученным весам YOLO в набор данных VOC:
Давайте перейдем к второму варианту и реализуем передачу обучения с помощью следующих шагов.
- В оконном интерфейсе miniconda перейдите к каталогу с примером yolo и выполните следующую команду, чтобы установить все необходимые пакеты pip для YOLO.
pip install -r requirements.txt
- Запустите скрипт настройки, чтобы скачать данные и предварительно обученные параметры
python setup.py
- Преобразование набора данных. См.
tools/voc2012.py
для реализации - этот формат основан на API обнаружения объектов TensorFlow. Многие поля не требуются, но здесь заполнены для совместимости с официальным API.
python tools/voc2012.py \
--data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
--split train \
--output_file ./data/voc2012_train.tfrecord
python tools/voc2012.py \
--data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
--split val \
--output_file ./data/voc2012_val.tfrecord
- Обучение модели. Выполните следующие команды:
python convert.py
python detect.py --image ./data/meme.jpg # Sanity check
python train.py \
--dataset ./data/voc2012_train.tfrecord \
--val_dataset ./data/voc2012_val.tfrecord \
--classes ./data/voc2012.names \
--num_classes 20 \
--mode fit --transfer darknet \
--batch_size 16 \
--epochs 10 \
--weights ./checkpoints/yolov3.tf \
--weights_num_classes 80
Теперь у вас есть переобученная модель с 20 классами, готовыми к использованию.
Дальнейшие шаги
Теперь, когда мы создали модель TensorFlow, необходимо преобразовать ее в формат ONNX для использования с API Машинного обучения Windows.