YOLOv7 开源项目使用教程
yolov7 YOLOv7 - 实现了一种新的实时目标检测算法,用于图像识别和处理。 项目地址: https://gitcode.com/gh_mirrors/yo/yolov7
1. 项目介绍
YOLOv7 是一个基于深度学习的目标检测框架,由 WongKinYiu 开发并开源在 GitHub 上。该项目实现了论文《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors》中提出的方法,能够在实时性和准确性上达到新的高度。YOLOv7 在速度和精度方面超越了所有已知的目标检测器,适用于从 5 FPS 到 160 FPS 的应用场景,并且在 GPU V100 上具有最高的准确率(56.8% AP)。
2. 项目快速启动
2.1 环境准备
推荐使用 Docker 环境来运行 YOLOv7。首先,创建一个 Docker 容器:
# 创建 Docker 容器
nvidia-docker run --name yolov7 -it -v your_coco_path/:/coco/ -v your_code_path/:/yolov7 --shm-size=64g nvcr.io/nvidia/pytorch:21.08-py3
# 安装必要的包
apt update
apt install -y zip htop screen libgl1-mesa-glx
# 安装 Python 依赖
pip install seaborn thop
# 进入代码目录
cd /yolov7
2.2 模型测试
下载预训练模型并进行测试:
# 测试 YOLOv7 模型
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
2.3 模型训练
准备数据集并进行训练:
# 下载 COCO 数据集
bash scripts/get_coco.sh
# 单 GPU 训练
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
3. 应用案例和最佳实践
3.1 实时目标检测
YOLOv7 在实时目标检测方面表现出色,适用于需要高帧率和高精度的应用场景,如自动驾驶、视频监控等。
3.2 迁移学习
YOLOv7 支持迁移学习,可以利用预训练模型在自定义数据集上进行微调,适用于特定领域的目标检测任务。
# 单 GPU 微调
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
4. 典型生态项目
4.1 Huggingface Spaces
YOLOv7 的 Web 演示已经集成到 Huggingface Spaces 中,用户可以通过 Gradio 进行在线体验。
4.2 TensorRT
YOLOv7 支持导出为 TensorRT 格式,以进一步提高推理速度,适用于边缘设备和嵌入式系统。
# 导出为 TensorRT 格式
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
通过以上步骤,您可以快速上手并应用 YOLOv7 进行目标检测任务。
yolov7 YOLOv7 - 实现了一种新的实时目标检测算法,用于图像识别和处理。 项目地址: https://gitcode.com/gh_mirrors/yo/yolov7