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

OSCHINA-MIRROR/monkeycc-YOLOv6

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

YOLOv6

Реализация работы:

  • YOLOv6 v3.0: A Full-Scale Reloading 🔥
  • YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications

Что нового

  • [2023.09.15] Выпущен YOLOv6-Segmentation (https://github.com/meituan/YOLOv6/tree/yolov6-seg). 🚀 Производительность (https://github.com/meituan/YOLOv6/tree/yolov6-seg#yolov6-сегментация)
  • [2023.04.28] Выпущены модели YOLOv6Lite (configs/yolov6_lite/README.md) для мобильных устройств или процессоров. ⭐️ Мобильные тесты (Mobile Benchmark)
  • [2023.03.10] Выпущен YOLOv6-Face (https://github.com/meituan/YOLOv6/tree/yolov6-face). 🔥 Производительность (https://github.com/meituan/YOLOv6/tree/yolov6-face#производительность-на-widerface)
  • [2023.03.02] Обновлены базовые модели (configs/base/README.md) до версии 3.0.
  • [2023.01.06] Выпущены P6 модели и улучшена производительность P5 моделей. ⭐️ Тесты (Benchmark)
  • [2022.11.04] Выпущены базовые модели (configs/base/README.md), чтобы упростить процесс обучения и развёртывания.
  • [2022.09.06] Настроены методы квантования. 🚀 Учебник по квантованию (Quantization 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)
Параметров
(M)
FLOPs
(G)
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 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-L6 1280 57,2 26 29 140,4 673,4

Все чекпоинты обучены с помощью самодистилляции, за исключением моделей YOLOv6-N6/S6, которые были обучены до 300 эпох без дистилляции.

Результаты mAP и скорости оцениваются на наборе данных COCO val2017 с разрешением ввода 640x640 для моделей P5 и 1280x1280 для моделей P6. Скорость тестируется с TensorRT 7.2 на T4.

Для получения информации о том, как воспроизвести результаты скорости YOLOv6, обратитесь к руководству Test speed. Параметры и FLOPs YOLOv6 оцениваются по развёрнутым моделям.

Legacy models

Модель Размер mAPval0.5:0.95 SpeedT4trt fp16 b1 (fps) SpeedT4trt fp16 b32 (fps) Params (M) FLOPs (G)
YOLOv6-N 640 35,9300e 802 1234 4,3 11,1
YOLOv6-T 640 40,3300e 449 659 15,0 36,7
YOLOv6-S 640 43,5300e 358 495 17,2 44,2
YOLOv6-M 640 49,5 179 233 34,3 82,2
YOLOv6-L-ReLU 640 51,7 113 149 58,5 144,0
YOLOv6-L 640 52,5 98 121 58,5 144,0

Скорость тестируется с TensorRT 7.2 на T4.

Quantized model 🚀

Модель Размер Точность mAPval0.5:0.95 SpeedT4trt b1 (fps) SpeedT4trt 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
YOLOv6-S RepOpt 640 INT8 43.3 619 924
YOLOv6-S 640 FP16 43.5 377 541
  • Speed is tested with TensorRT 8.4 on T4.
  • Precision is figured on models for 300 epochs.

Mobile Benchmark

Модель Размер mAPval
0.5:0.95
sm8350
(мс)
mt6853
(мс)
sdm660
(мс)
Параметры
(М)
FLOPs
(Г)
YOLOv6Lite-S 320*320 22.4 7.99 11.99 41.86 0.55 0.56
YOLOv6Lite-M 320*320 25.1 9.08 13.27 47.95 0.79 0.67
YOLOv6Lite-L 320*320 28.0 11.37 16.20 61.40 1.09 0.87
YOLOv6Lite-L 320*192 25.0 7.02 9.66 36.13 1.09 0.52
YOLOv6Lite-L 224*128 18.9 3.63 4.99 17.76 1.09 0.24
Table Notes
  • From the perspective of model size and input image ratio, we have built a series of models on the mobile terminal to facilitate flexible applications in different scenarios.
  • All checkpoints are trained with 400 epochs without distillation.
  • Results of the mAP and speed are evaluated on COCO val2017 dataset, and the input resolution is the Size in the table.
  • Speed is tested on MNN 2.3.0 AArch64 with 2 threads by arm82 acceleration. The inference warm-up is performed 10 times, and the cycle is performed 100 times.
  • Qualcomm 888(sm8350), Dimensity 720(mt6853) и Qualcomm 660(sdm660) correspond to chips with different performances at the high, middle and low end respectively, which can be used as a reference for model capabilities under different chips.
  • Refer to Test NCNN Speed tutorial to reproduce the NCNN speed results of YOLOv6Lite.

Quick Start

Install
git clone https://github.com/meituan/YOLOv6
cd YOLOv6
pip install -r requirements.txt
Reproduce our results on COCO

Please refer to Train COCO Dataset.

Finetune on custom data

Single GPU

# 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

Multi GPUs (DDP mode recommended)

# 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
``` **Тренировка YOLOv6 с Amazon Sagemaker**

- fuse_ab: добавить вспомогательную ветвь на основе якорей и использовать режим обучения с помощью якорей (в настоящее время не поддерживается для моделей P6).
- conf: выберите файл конфигурации, чтобы указать сеть/оптимизатор/гиперпараметры. Мы рекомендуем применять yolov6n/s/m/l_finetune.py при обучении на собственном наборе данных.
- data: подготовьте набор данных и укажите пути к наборам данных в data.yaml ([COCO](http://cocodataset.org), [YOLO формат coco labels](https://github.com/meituan/YOLOv6/releases/download/0.1.0/coco2017labels.zip)).
- убедитесь, что структура вашего набора данных выглядит следующим образом:

├── coco │ ├── annotations │ │ ├── instances_train2017.json │ │ └── instances_val2017.json │ ├── images │ │ ├── train2017 │ │ └── val2017 │ ├── labels │ │ ├── train2017 │ │ ├── val2017 │ ├── LICENSE │ ├── README.txt


YOLOv6 поддерживает различные режимы входного разрешения. Подробнее см. [Как установить размер ввода](./docs/About_training_size.md).

</details>

<details>
<summary>Возобновление тренировки</summary>

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

тренировка на одном GPU.

python tools/train.py --resume

многопроцессорная тренировка.

python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --resume

Приведённая выше команда автоматически найдёт последнюю контрольную точку в каталоге YOLOv6, а затем возобновит тренировочный процесс.

Вы также можете указать путь к контрольной точке для параметра `--resume` следующим образом:

не забудьте заменить /path/to/your/checkpoint/path на путь к контрольной точке, которую вы хотите использовать для возобновления тренировки.

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

Это позволит вам продолжить тренировку с указанной контрольной точки.

</details>

<details open>
<summary>Оценка</summary>

Воспроизведите mAP на наборе данных COCO val2017 с разрешением 640×640 или 1280x1280:

```shell
# модели 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, чтобы распечатать или не печатать метрики точности и отзыва.
  • 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.

Развёртывание
Учебники
Сторонние ресурсы
  • Тренировка YOLOv6 на Amazon Sagemaker: YOLOv6 NCNN Android app demo: ncnn-android-yolov6 от FeiGeChuanShu.

YOLOv6 ONNXRuntime/MNN/TNN C++: YOLOv6-ORT, YOLOv6-MNN и YOLOv6-TNN от DefTruth.

YOLOv6 TensorRT Python: yolov6-tensorrt-python от Linaom1214.

YOLOv6 TensorRT Windows C++: yolort от Wei Zeng.

Демонстрация YOLOv6 в интернете на Huggingface Spaces с Gradio.

Интерактивная демонстрация на DagsHub со Streamlit.

Учебник: «Как обучить YOLOv6 на пользовательском наборе данных».

Видеоурок на YouTube: «Как обучить YOLOv6 на пользовательском наборе данных».

Демонстрация вывода YOLOv6 на Google Colab.

Пост в блоге: «Обнаружение объектов YOLOv6 — объяснение статьи и вывод».

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

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

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

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

Введение

Описание недоступно Развернуть Свернуть
Jupyter Notebook и 3 других языков
GPL-3.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