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

OSCHINA-MIRROR/mirrors_trending-YOLOv6

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Английский | Китайский


Open In Colab Open In Kaggle

YOLOv6

Реализация статьи:

## Что нового - [2023. 09. 15] Выпуск [YOLOv6-Segmentation](https://github.com/meituan/YOLOv6/tree/yolov6-seg). 🚀 [Производительность](https://github.com/meituan/YOLOv6/tree/yolov6-seg#yolov6-segmentation) - [2023. 04. 28] Выпуск [YOLOv6Lite](configs/yolov6_lite/README.md) моделей для мобильных устройств или CPU. ⭐️ [Мобильная benchmark](#Mobile-Benchmark) - [2023. 03. 10] Выпуск [YOLOv6-Face](https://github.com/meituan/YOLOv6/tree/yolov6-face). 🔥 [Производительность](https://github.com/meituan/YOLOv6/tree/yolov6-face#performance-on-widerface) - [2023. 03. 02] Обновление [базовых моделей](configs/base/README.md) до версии 3. 0. - [2023. 01. 06] Выпуск моделей P6 и улучшение производительности моделей P5. ⭐️ [Benchmark](#Benchmark) - [2022. 11. 04] Выпуск [базовых моделей](configs/base/README.md) для упрощения процесса обучения и развертывания. - [2022. 09. 06] Пользовательские методы квантизации. 🚀 [Tutorial по квантизации](./tools/qat/README.md) - [2022. 09. 05] Выпуск моделей M/L и обновление моделей N/T/S с улучшенной производительностью. - [2022. 06. 23] Выпуск моделей N/T/S с отличной производительностью. ## Бенчмарк | Модель | Размер | mAPval
0. 5:0. 95 | СкоростьT4
trt fp16 b1
(fps) | СкоростьT4
trt fp16 b32
(fps) | Параметры
(М) | FLOPs
(Г) | | :----------------------------------------------------------- | ---- | :----------------------- | --------------------------------------- | ---------------------------------------- | -------------------- | ------------------- | | [**YOLOv6-N**](https://github.com/meituan/YOLOv6/releases/download/0. 4. 0/yolov6n. pt) | 640 | 37. 5 | 779 | 1187 | 4. 7 | 11. 4 | | [**YOLOv6-S**](https://github.com/meituan/YOLOv6/releases/download/0. 4. 0/yolov6s. pt) | 640 | 45. 0 | 479 | 779 | 11. 4 | 22. 8 |0 | 339 | 484 | 18.5 | 45.3 | | [**YOLOv6-M**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6m.pt) | 640 | 50.0 | 175 | 226 | 34.9 | 85.8 | | [**YOLOv6-L**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6l.pt) | 640 | 52.8 | 98 | 116 | 59.6 | 150.7 | | | | | | | | [**YOLOv6-N6**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6n6.pt) | 1280 | 44.9 | 228 | 281 | 10.4 | 49.8 | | [**YOLOv6-S6**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6s6.pt) | 1280 | 50.3 | 98 | 108 | 41.4 | 198.0 | | [**YOLOv6-M6**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6m6.pt) | 1280 | 55.2 | 47 | 55 | 79.6 | 379.5 | | [**YOLOv6-L6**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6l6.pt) | 1280 | 57.0 | 30 | 34 | 112.5 | 642.0 |
Примечания к таблице - Все checkpoint'и были обучены с использованием самодистилляции, за исключением моделей YOLOv6-N6/S6, которые были обучены до 300 эпох без дистилляции.
- Результаты mAP и скорости оцениваются на [COCO val2017](https://cocodataset.org/#download) с разрешением входного изображения 640×640 для моделей P5 и 1280×1280 для моделей P6. - Скорость тестировалась с использованием TensorRT 7.2 на T4. - См. [Тест скорости](./docs/Test_speed.md) для воспроизведения результатов скорости YOLOv6. - Параметры и FLOPs YOLOv6 оцениваются на развернутых моделях.
Legacy models | Модель | Размер | mAPval
0.5:0.95 | СкоростьT4
trt fp16 b1
(fps) | СкоростьT4
trt fp16 b32
(fps) | Параметры
(М) | FLOPs
(Г) | | :----------------------------------------------------------- | :---- | :------------------------------------ | :--------------------------------------- | :---------------------------------------- | :----------------- | :------------- | | [**YOLOv6-N**](https://github.com/meituan/YOLOv6/releases/download/0.2.0/yolov6n.pt) | 640 | 35.9300e
36.3400e | 802 | 1234 | 4.3 | 11.1 | | [**YOLOv6-T**](https://github/meituan/YOLOv6/releases/download/0.2.0/yolov6t.pt) | 640 | 40.3300e
41.1400e | 449 | 659 | 15.0 | 36.7 | | [**YOLOv6-S**](https://github/meituan/YOLOv6/releases/download/0.2.0/yolov6s.pt) | 640 | 43.5300e
43.8400e | 358 | 495 | 17.2 | 44.2 | | [**YOLOv6-M**](https://github/meituan/YOLOv6/releases/download/0.2.0/yolov6m.pt) | 640 | 49.5 | 179 | 233 | 34.3 | 82.2 | | [**YOLOv6-L-ReLU**](https://github/meituan/YOLOv6/releases/download/0.2.0/yolov6l_relu.pt) | 640 | 51.7 | 113 | 149 | 58.5 | 144.0 | | [**YOLOv6-L**](https://github/meituan/YOLOv6/releases/download/0.2.0/yolov6l.pt) | 640 | 52.5 | 98 | 121 | 58.5 | 144.0 | - Скорость измеряется с использованием TensorRT 7.2 на T4. ### Квантизированная модель 🚀 | Модель | Размер | Точность | mAPval
0.5:0.95 |95 | СкоростьT4
trt b1
(fps)
| СкоростьT4
trt b32
(fps)
| | :-------------------- | ---- | --------- | :----------------------- | ---------------------------------- | ----------------------------------- | | **YOLOv6-N RepOpt** | 640 | INT8 | 34.8 | 1114 | 1828 | | **YOLOv6-N** | 640 | FP16 | 35.9 | 802 | 1234 | | **YOLOv6-T RepOpt** | 640 | INT8 | 39.8 | 741 | 1167 | | **YOLOv6-T** | 640 | FP16 | 40.3 | 449 | 659 | | **YOLOv6-S RepOpt** | 640 | INT8 | 43.3 | 619 | 924 | | **YOLOv6-S** | 640 | FP16 | 43.5 | 377 | 541 |- Скорость измеряется с использованием TensorRT 8.4 на T4. - Точность рассчитывается на моделях для 300 эпох.## Мобильные бенчмарки | Модель | Размер | mAPval
0.5:0.95
| sm8350
(мс) | mt6853
(мс) | sdm660
(мс) | Параметры
(М) | FLOPs
(Г) | | :----------------------------------------------------------- | ---- | -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | -------------------- | | [**YOLOv6Lite-S**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6lite_s.pt) | 320*320 | 22.4 | 7.99 | 11.99 | 41.86 | 0.55 | 0.56 | | [**YOLOv6Lite-M**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6lite_m.pt) | 320*320 | 25.1 | 9.08 | 13.27 | 47.95 | 0.79 | 0.67 | | [**YOLOv6Lite-L**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6lite_l.pt) | 320*320 | 28.0 | 11.37 | 16.20 | 61.40 | 1.09 | 0.87 | | [**YOLOv6Lite-L**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6lite_l.pt) | 320*192 | 25.0 | 7.02 | 9.66 | 36.13 | 1.09 | 0.52 | | [**YOLOv6Lite-L**](https://github.com/meituan/YOLOv6/releases/download/0.4.0/yolov6lite_l.pt) | 224*128 | 18.9 | 3.63 | 4.99 | 17.76 | 1.09 | 0.24 |
Примечания к таблице- С точки зрения размера модели и соотношения сторон входного изображения, мы создали серию моделей для мобильных терминалов, чтобы облегчить гибкое применение в различных сценариях. - Все точки сохранения были обучены на 400 эпох без использования дистилляции. - Результаты оценки mAP и скорости были проведены на наборе данных [COCO val2017](https://cocodataset.org/#download), и входное разрешение соответствует значению в таблице. - Скорость была проверена на MNN 2.3.0 AArch64 с 2 потоками и ускорением arm82. Процесс теплового разгона выполняется 10 раз, а цикл выполняется 100 раз. - Qualcomm 888 (sm8350), Dimensity 720 (mt6853) и Qualcomm 660 (sdm660) соответствуют чипам с различными характеристиками на верхнем, среднем и нижнем уровнях производительности, которые могут служить ориентиром для способностей модели на различных чипах. - См. [Тест скорости NCNN](./docs/Test_NCNN_speed.md) для воспроизведения результатов скорости NCNN для YOLOv6Lite.

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

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

Для воспроизведения наших результатов на наборе данных COCO см. Обучение на наборе данных COCO.

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

Одиночный GPU

# Модели P5
python tools/train.py --batch 32 --conf configs/yolov6s_finetune.py --data data/dataset.yaml --fuse_ab --device 0
# Модели P6
python tools/train.py --batch 32 --conf configs/yolov6s6_finetune.py --data data/dataset.yaml --img 1280 --device 0
```Множество GPU (рекомендуется режим DDP)
```shell
# Модели P5
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
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: подготовка набора данных и указание путей к набору данных в data.yaml ( COCO, формат YOLO для меток COCO )
  • убедитесь, что структура вашего набора данных соответствует следующему:
├── coco
│   ├── annotations
│   │   ├── instances_train2017.json
│   │   └── instances_val2017.json
│   ├── images
│   │   ├── train2017
│   │   └── val2017
│   ├── labels
│   │   ├── train2017
│   │   ├── val2017
│   ├── LICENSE
│   ├── README.txt

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

Продолжение обучения

Если процесс обучения был поврежден, вы можете продолжить обучение с помощью команд:

# однопроцессорное обучение.
python tools/train.py --resume

# многопроцессорное обучение.
python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --resume

Вышеуказанные команды автоматически найдут последний checkpoint в директории YOLOv6 и продолжат процесс обучения.

Вы также можете указать путь к checkpoint в параметр --resume:

# не забудьте заменить /path/to/your/checkpoint/path на путь к checkpoint, с которого вы хотите продолжить обучение.
--resume /path/to/your/checkpoint/path

Это продолжит обучение с указанного checkpoint.

Оценка

Переоценка mAP на наборе данных COCO val2017 с разрешением 640×640 или 1280×1280

# модели P5
python tools/eval.py --data data/coco.yaml --batch 32 --weights yolov6s.pt --task val --reproduce_640_eval
# модели P6
python tools/eval.py --data data/coco.yaml --batch 32 --weights yolov6s6.pt --task val --reproduce_640_eval --img 1280
  • verbose: установите True для вывода mAP для каждого класса.
  • do_coco_metric: установите True / False для включения / отключения метода оценки pycocotools.
  • do_pr_metric: установите True / False для вывода или отсутствия вывода метрик precision и recall.
  • config-file: укажите конфигурационный файл для определения всех параметров оценки, например: yolov6n_with_eval_params.py
Инференс

Сначала загрузите предобученную модель с релиза YOLOv6 релиз или используйте вашу предобученную модель для инференса.Затем выполните инференс с помощью 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.

Развертывание
Учебные материалы
Ресурсы сторонних разработчиков
* YouTube-туториал: [Как обучить YOLOv6 на пользовательском наборе данных](https://youtu.be/fFCWrMFH2UY)

Часто задаваемые вопросы (Постоянно обновляется)

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

Комментарии ( 0 )

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

Введение

YOLOv6 — это одноуровневый фреймворк для обнаружения объектов, специально разработанный для промышленных применений. Он отличается аппаратно-совместимой эффективной конструкцией и высокой производительностью. Развернуть Свернуть
Jupyter Notebook и 3 других языков
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors_trending-YOLOv6.git
git@api.gitlife.ru:oschina-mirror/mirrors_trending-YOLOv6.git
oschina-mirror
mirrors_trending-YOLOv6
mirrors_trending-YOLOv6
main