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

OSCHINA-MIRROR/monkeycc-yolov7

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

Официальная реализация YOLOv7

Реализация статьи — YOLOv7: Обучаемый набор бесплатных методик установил новую вершину качества среди реального времени детекторов объектов

PWC Hugging Face Spaces Open In Colab arxiv.org

Веб-демонстрация

  • Интегрирована в Huggingface Spaces 🤗 с использованием Gradio. Попробуйте веб-демонстрацию Hugging Face Spaces

Вычислительная производительность

MS COCO| Модель | Размер теста | APtest | AP50test | AP75test | FPS при батче 1 | Среднее время при среднем батче 32 | | :-- | :-: | :-: | :-: | :-: | :-: | :-: | | YOLOv7 | 640 | 51.4% | 69.7% | 55.9% | 161 FPS | 2.8 мс | | YOLOv7-X | 640 | 53.1% | 71.2% | 57.8% | 114 FPS | 4.3 мс | | | | | | | | | | YOLOv7-W6 | 1280 | 54.9% | 72.6% | 60.1% | 84 FPS | 7.6 мс | | YOLOv7-E6 | 1280 | 56.0% | 73.5% | 61.2% | 56 FPS | 12.3 мс | | YOLOv7-D6 | 1280 | 56.6% | 74.0% | 61.8% | 44 FPS | 15.0 мс | | YOLOv7-E6E | 1280 | 56.8% | 74.4% | 62.1% | 36 FPS | 18.7 мс |

УстановкаОкружение Docker (рекомендовано)

Развернуть
# Создайте контейнер Docker; вы можете изменить размер общего памяти, если у вас больше.
nvidia-docker run --name yolov7 -it -v ваш_путь_к_coco:/coco/ -v ваш_путь_к_коду:/yolov7 --shm-size=64g nvcr.io/nvidia/pytorch:21.08-py3

# Установите необходимые пакеты
apt update
apt install -y zip htop screen libgl1-mesa-glx

# Установите необходимые пакеты с помощью pip
pip install seaborn thop

# Перейдите в каталог с кодом
cd /yolov7

Тестирование

yolov7.pt yolov7x.pt yolov7-w6.pt yolov7-e6.pt yolov7-d6.pt yolov7-e6e.pt

python test.py --data data/coco.yaml --img 640 --batch 32 --conf 0.001 --iou 0.65 --device 0 --weights yolov7.pt --name yolov7_640_val

Вы получите следующие результаты:

Средняя точность (AP)@[IoU=0.50:0.95|area=all|maxDets=100] = 0.51206
Средняя точность (AP)@[IoU=0.50|area=all|maxDets=100] = 0.69730
Средняя точность (AP)@[IoU=0.75|area=all|maxDets=100] = 0.55521
Средняя точность (AP)@[IoU=0.50:0.95|area=small|maxDets=100] = 0.35247
Средняя точность (AP)@[IoU=0.50:0.95|area=medium|maxDets=100] = 0.55937
Средняя точность (AP)@[IoU=0.50:0.95|area=large|maxDets=100] = 0.66693
Средний recall (AR)@[IoU=0.50:0.95|area=all|maxDets=1] = 0.38453
Средний recall (AR)@[IoU=0.50:0.95|area=all|maxDets=10] = 0.63765
Средний recall (AR)@[IoU=0.50:0.95|area=all|maxDets=100] = 0.68772
Средний recall (AR)@[IoU=0.50:0.95|area=small|maxDets=100] = 0.53766
Средний recall (AR)@[IoU=0.50:0.95|area=medium|maxDets=100] = 0.73549
Средний recall (AR)@[IoU=0.50:0.95|area=large|maxDets=100] = 0.83868
```Для измерения точности загрузите [COCO-annotations для Pycocotools](http://images.cocodataset.org/annotations/annotations_trainval2017.zip) в `./coco/annotations/instances_val2017.json`.

## Обучение

### Подготовка данных

```shell
bash scripts/get_coco.sh
  • Скачайте набор данных MS COCO изображений (обучающий, валидационный, тестовый) и метки. Если вы ранее использовали другую версию YOLO, мы настоятельно рекомендуем удалить файлы train2017.cache и val2017.cache, а также заново скачать метки.

Обучение с одним GPU

# обучение моделей p5
python train.py --workers 8 --device 0 --batch-size 32 --data data/coco.yaml --img 640 640 --cfg cfg/training/yolov7.yaml --weights '' --name yolov7 --hyp data/hyp.scratch.p5.yaml

# обучение моделей p6
python train_aux.py --workers 8 --device 0 --batch-size 16 --data data/coco.yaml --img 1280 1280 --cfg cfg/training/yolov7-w6.yaml --weights '' --name yolov7-w6 --hyp data/hyp.scratch.p6.yaml

Обучение с несколькими GPU

# обучение моделей p5
python -m torch.distributed.launch --nproc_per_node 4 --master_port 9527 train.py --workers 8 --device 0,1,2,3 --sync-bn --batch-size 128 --data data/coco.yaml --img 640 640 --cfg cfg/training/yolov7.yaml --weights '' --name yolov7 --hyp data/hyp.scratch.p5.yaml

# обучение моделей p6
python -m torch.distributed.launch --nproc_per_node 8 --master_port 9527 train_aux.py --workers 8 --device 0,1,2,3,4,5,6,7 --sync-bn --batch-size 128 --data data/coco.yaml --img 1280 1280 --cfg cfg/training/yolov7-w6.yaml --weights '' --name yolov7-w6 --hyp data/hyp.scratch.p6.yaml

Перенос обученияyolov7_training.pt yolov7x_training.pt yolov7-w6_training.pt yolov7-e6_training.pt yolov7-d6_training.pt yolov7-e6e_training.pt

Одиночное обучение на GPU для пользовательского набора данных

# Обучение моделей p5
python train.py --workers 8 --device 0 --batch-size 32 --data data/custom.yaml --img 640 640 --cfg cfg/training/yolov7-custom.yaml --weights 'yolov7_training.pt' --name yolov7-custom --hyp data/hyp.scratch.custom.yaml

# Обучение моделей p6
python train_aux.py --workers 8 --device 0 --batch-size 16 --data data/custom.yaml --img 1280 1280 --cfg cfg/training/yolov7-w6-custom.yaml --weights 'yolov7-w6_training.pt' --name yolov7-w6-custom --hyp data/hyp.scratch.custom.yaml

Переопределение параметров

См. reparameterization.ipynb

Вывод

На видео:

python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source yourvideo.mp4

На изображении:

python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source inference/images/horses.jpg

Экспорт

PyTorch в CoreML (и вывод на MacOS/iOS) Открыть в ColabPyTorch в ONNX с NMS (и вывод) Открыть в Colab

python export.py --weights yolov7-tiny.pt --grid --end2end --simplify \
        --topk-all 100 --iou-thres 0.65 --conf-thres 0.35 --img-size 640 640 --max-wh 640

В данном случае нет необходимости в переводе, поскольку текст уже на русском языке, а команды и параметры остаются без изменений согласно правилам перевода.Перенос PyTorch в TensorRT с NMS (и вывод) Открыть в Colab

wget https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7-tiny.pt
python export.py --weights ./yolov7-tiny.pt --grid --end2end --simplify --topk-all 100 --iou-thres 0.65 --conf-thres 0.35 --img-size 640 640
git clone https://github.com/Linaom1214/tensorrt-python.git
python ./tensorrt-python/export.py -o yolov7-tiny.onnx -e yolov7-tiny-nms.trt -p fp16

Перенос PyTorch в TensorRT другим способом Открыть в Colab

Развернуть

wget https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7-tiny.pt
python export.py --weights yolov7-tiny.pt --grid --include-nms
git clone https://github.com/Linaom1214/tensorrt-python.git
python ./tensorrt-python/export.py -o yolov7-tiny.onnx -e yolov7-tiny-nms.trt -p fp16

# Или используйте trtexec для конвертации ONNX в движок TensorRT
/usr/src/tensorrt/bin/trtexec --onnx=yolov7-tiny.onnx --saveEngine=yolov7-tiny-nms.trt --fp16

Тестировано с: Python 3.7.13, PyTorch 1.12.0+cu113

Оценка поз

код yolov7-w6-pose.pt

См. keypoint.ipynb.

Инстанс-сегментация (с NTU)

код yolov7-mask.pt

См. instance.ipynb.

## Инстанс-сегментация

код yolov7-seg.pt

YOLOv7 для инстанс-сегментации (YOLOR + YOLOv5 + YOLACT)

Модель Размер теста APbox AP50box AP75box APmask AP50mask AP75mask
YOLOv7-seg 640 51.4% 69.4% 55.8% 41.5% 65.5% 43.7%

Беспроводная детекторная голова

код yolov7-u6.pt

YOLOv7 с декомпозированной головой TAL (YOLOR + YOLOv5 + YOLOv6)

Модель Размер теста APval AP50val AP75val
YOLOv7-u6 640 52.6% 69.7% 57.3%

Цитирование

@inproceedings{wang2023yolov7,
  title={{YOLOv7}: Обучаемый набор бесплатных признаков установил новую вершину в области реального времени для детекторов объектов},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  booktitle={Доклады на конференции IEEE/CVF по компьютерному зрению и распознаванию образов (CVPR)},
  year={2023}
}
@article{wang2023designing,
  title={Проектирование стратегий проектирования сетей через анализ пути градиента},
  author={Wang, Chien-Yao and Liao, Hong-Yuan Mark and Yeh, I-Hau},
  journal={Журнал информационных наук и технологий},
  year={2023}
}

Презентация

YOLOv7-semantic & YOLOv7-panoptic & YOLOv7-caption

YOLOv7-semantic & YOLOv7-detection & YOLOv7-depth (в сотрудничестве с NTUT)

YOLOv7-3d-detection & YOLOv7-lidar & YOLOv7-road (в сотрудничестве с NTUT)

Благодарности

Развернуть

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

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

Введение

Описание недоступно Развернуть Свернуть
Jupyter Notebook и 3 других языков
Отмена

Обновления (1)

все

Участники

все

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

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