1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/monkeycc-YOLOv6

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_cn.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 06:51 51eee55

YOLOv6

Официальные научные работы:

Обновление журнала

  • 2023.04.28 — выпущена лёгкая модель для мобильных устройств YOLOv6Lite (configs/yolov6_lite/README.md). ⭐️ (Показатели модели для мобильных устройств см. в разделе «Показатели модели для мобильных устройств»).
  • 2023.03.10 — выпущена YOLOv6-Face (https://github.com/meituan/YOLOv6/tree/yolov6-face). 🔥 (Показатели модели можно найти по ссылке: https://github.com/meituan/YOLOv6/blob/yolov6-face/README_cn.md#widerface-%E6%A8%A1%E5%9E%8B%E6%8C%87%E6%A0%87).
  • 2023.03.02 — обновлена базовая версия модели до версии 3.0.
  • 2023.01.06 — выпущена модель с высоким разрешением P6, а также полностью обновлена модель P5. ⭐️ (См. раздел «Показатели модели»).
  • 2022.11.04 — выпущена базовая версия модели (configs/base/README_cn.md), упрощающая процесс обучения и развёртывания.
  • 2022.09.06 — опубликованы методы ускорения квантования моделей. 🚀 (См. руководство по квантованию: tools/qat/README.md.)
  • 2022.09.05 — выпущены модели M/L, при этом производительность моделей N/T/S была дополнительно улучшена.
  • 2022.06.23 — выпущена версия моделей N/T/S v1.0.

Показатели модели

Модель Размер входных данных mAPval
0.5:0.95
СкоростьT4
trt fp16 b1
(fps)
СкоростьT4
trt fp16 b32
(fps)
Параметры
(M)
FLOPs
(G)
YOLOv6-N (https://github.com/meituan/YOLOv6/releases/download/0.3.0/yolov6n.pt) 640 37.5 779 1187 4.7 11.4
YOLOv6-S (https://github.com/meituan/YOLOv6/releases/download/0.3.0/yolov6s.pt) 640 45.0 339 484 18.5 45.3
YOLOv6-M (https://github.com/meituan/YOLOv6/releases/download/0.3.0/yolov6m.pt) 640 50.0 175 226 34.9 85.8
YOLOv6-L (https://github.com/meituan/YOLOv6/releases/download/0.3.0/yolov6l.pt) 640 52.8 98 116 59.6 150.7
YOLOv6-N6 (https://github.com/meituan/YOLOv6/releases/download/0.3.0/yolov6n6.pt) 1280 44.9 228 281 10.4 49.8
YOLOv6-S6 (https://github.com/meituan/YOLOv6/releases/download/0.3.0/yolov6s6.pt) 1280 50.3 98 108 41.4 198.0
YOLOv6-M6 (https://github.com/meituan/YOLOv6/releases/download/0.3.0/yolov6m6.pt) 1280 55.2 47 55 79.6 379.5
YOLOv6-L6 (https://github.com/meituan/YOLOv6/releases/download/0.3.0/yolov6l6.pt) 1280 57.2 26 29 140.4 673.4

Примечание:

— кроме моделей YOLOv6-N6 и S6, которые были обучены в течение 300 раундов, остальные модели являются результатом самообучения;

— показатели mAP и скорости оценивались на наборе данных COCO val2017, где входные данные модели P5 имеют разрешение 640×640, а модели P6 — 1280×1280;

— скорость измерялась на устройстве T4, используя версию TensorRT 7.2;

— для воспроизведения показателей скорости YOLOv6 рекомендуется обратиться к руководству по тестированию скорости (https://docs.meituan.com/docs/Test_speed.md);

— параметры и вычислительные затраты YOLOv6 рассчитываются в режиме вывода. 320320 | 25.1 | 9.08 | 13.27 | 47.95 | 0.79 | 0.67 | | YOLOv6Lite-L | 320320 | 28.0 | 11.37 | 16.20 | 61.40 | 1.09 | 0.87 | | YOLOv6Lite-L | 320192 | 25.0 | 7.02 | 9.66 | 36.13 | 1.09 | 0.52 | | YOLOv6Lite-L | 224128 | 18.9 | 3.63 | 4.99 | 17.76 | 1.09 | 0.24 |

表格笔记
  • Из модели размера и соотношения сторон изображения, в серии моделей для мобильных устройств, удобно для гибкого применения в различных сценариях.
  • Все веса прошли обучение в течение 400 эпох и не использовали технологию дистилляции.
  • mAP и показатели скорости оцениваются на наборе данных COCO val2017, а входное разрешение соответствует тому, что показано в таблице.
  • Тестирование скорости проводилось с использованием MNN 2.3.0 AArch64. Во время тестирования скорости использовались два потока, был включен arm82, было выполнено 10 предварительных прогонов, и было выполнено 100 циклов.
  • Qualcomm Snapdragon 888 (SM8350), MediaTek Helio G20 (MT6853) и Qualcomm Snapdragon 660 (SDM660) соответствуют высокопроизводительным, среднепроизводительным и низкопроизводительным чипам, которые можно использовать в качестве ориентира для производительности различных чипсетов.
  • Учебное пособие NCNN Speed Testing может помочь продемонстрировать и воспроизвести результаты NCNN для YOLOv6Lite.

Быстрый старт

Установка
git clone https://github.com/meituan/YOLOv6
cd YOLOv6
pip install -r requirements.txt
Воспроизведение наших результатов на наборе данных COCO

Пожалуйста, обратитесь к учебному пособию Тренировка набора данных COCO.

Тонкая настройка модели на пользовательском наборе данных

Для одного графического процессора:

# P5 models
python tools/train.py --batch 32 --conf configs/yolov6s_finetune.py --data data/dataset.yaml --fuse_ab --device 0
# P6 models
python tools/train.py --batch 32 --conf configs/yolov6s6_finetune.py --data data/dataset.yaml --img 1280 --device 0

Для нескольких графических процессоров (мы рекомендуем использовать режим DDP):

# P5 models
python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --batch 256 --conf configs/yolov6s_finetune.py --data data/dataset.yaml --fuse_ab --device 0,1,2,3,4,5,6,7
# P6 models
python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --batch 128 --conf configs/yolov6s6_finetune.py --data data/dataset.yaml --img 1280 --device 0,1,2,3,4,5,6,7
  • fuse_ab: добавление ветви предсказания на основе якорей и использование режима обучения с объединенными якорями (модели P6 в настоящее время не поддерживают эту функцию)
  • conf: путь к файлу конфигурации, который содержит информацию о сетевой структуре, оптимизаторе конфигурации и гиперпараметрах. Если вы тренируетесь на собственном наборе данных, мы рекомендуем вам использовать файл конфигурации yolov6n/s/m/l_finetune.py;
  • data: путь к файлу конфигурации набора данных, например, если вы используете набор данных COCO, вы можете загрузить данные с веб-сайта COCO, здесь вы можете скачать метки формата YOLO;
  • Убедитесь, что ваш набор данных организован следующим образом:
├── coco
│   ├── annotations
│   │   ├── instances_train2017.json
│   │   └── instances_val2017.json
│   ├── images
│   │   ├── train2017
│   │   └── val2017
│   ├── labels
│   │   ├── train2017
│   │   ├── val2017

YOLOv6 поддерживает различные режимы входного разрешения, подробности см. в Как настроить размер ввода.

Возобновление тренировки

Если ваша тренировка была прервана, вы можете возобновить ее следующим образом.

# Тренировка на одном графическом процессоре
python tools/train.py --resume

# Многопроцессорная тренировка
python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --resume

Эти команды автоматически найдут последнюю сохраненную модель в каталоге YOLOv6 и возобновят тренировку.

Вы также можете указать путь к модели, которую хотите восстановить, с помощью параметра --resume.

--resume /path/to/your/checkpoint/path

Это возобновит тренировку из предоставленного вами пути к модели.

Оценка Воспроизведите наши результаты на наборе данных COCO val2017 (входное разрешение 640x640 или 1280x1280):
# P5 models
python tools/eval.py --data data/coco.yaml --batch 32 --weights yolov6s.pt --task val --reproduce_640_eval
# P6 models
python tools/eval.py --data data/coco.yaml --batch 32 --weights yolov6s6.pt --task val --reproduce_640_eval --img 1280
  • verbose: если вы хотите распечатать точность каждой категории, установите значение True;
  • do_coco_metric: установите значение True / False, чтобы включить или отключить оценку pycocotools;
  • do_pr_metric: установить значение True / False для отображения или не отображения показателей точности и отзыва;
  • config-file: укажите файл конфигурации, содержащий все параметры оценки, такие как yolov6n_with_eval_params.py
Вывод

Сначала получите модель, обученную на наборе данных.

Затем используйте следующую команду для вывода:

python tools/infer.py --source input.jpg --model yolov6l.pt

input.jpg — это изображение, которое вы хотите вывести. yolov6l.pt — это путь к обученной модели. Перевод текста на русский язык:

Страница release

Скачайте обученную модель весов файла или выберите модель, которую вы обучили сами;

Затем выполните вывод с помощью файла tools/infer.py.

# P5 модели
python tools/infer.py --weights yolov6s.pt --source img.jpg / imgdir / video.mp4
# P6 модели
python tools/infer.py --weights yolov6s6.pt --img 1280 1280 --source img.jpg / imgdir / video.mp4

Если вы хотите использовать локальную или сетевую камеру, вы можете запустить:

# P5 модели
python tools/infer.py --weights yolov6s.pt --webcam --webcam-addr 0
# P6 модели
python tools/infer.py --weights yolov6s6.pt --img 1280 1280 --webcam --webcam-addr 0

webcam-addr может быть идентификатором локальной камеры или RTSP-адресом.

Развёртывание
Руководство
Сторонние ресурсы

FAQ(постоянно обновляется)

Если у вас есть какие-либо вопросы, присоединяйтесь к нашему групповому чату в WeChat, чтобы обсудить и обменяться идеями!

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/monkeycc-YOLOv6.git
git@api.gitlife.ru:oschina-mirror/monkeycc-YOLOv6.git
oschina-mirror
monkeycc-YOLOv6
monkeycc-YOLOv6
main