作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:
目录
第1步:官方文档入口
Quick Start - YOLOv5 Documentation
第2步:前提条件与要求
(1)Python >= 3.8
第3步:安装代码到本地环境
(1)Clone YOLO V5工程代码到本地source code目录
$ cd F:\MySource\github
$ git clone https://github.com/ultralytics/yolov5.git
(2)激活conda的环境
conda info -e
activate pytorch-gpu-os
(3)进入YOLO V5工程的根目录
$ cd yolov5
(4)安装所需要的其他依赖文件
$ pip install -r requirements.txt
# pip install -r requirements.txt
# Base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.41.0
# Logging -------------------------------------
tensorboard>=2.4.1
# wandb
# Plotting ------------------------------------
pandas>=1.1.4
seaborn>=0.11.0
# Export --------------------------------------
# coremltools>=4.1 # CoreML export
# onnx>=1.9.0 # ONNX export
# onnx-simplifier>=0.3.6 # ONNX simplifier
# scikit-learn==0.19.2 # CoreML quantization
# tensorflow>=2.4.1 # TFLite export
# tensorflowjs>=3.9.0 # TF.js export
# openvino-dev # OpenVINO export
# Extras --------------------------------------
# albumentations>=1.0.3
# Cython # for pycocotools https://github.com/cocodataset/cocoapi/issues/172
# pycocotools>=2.0 # COCO mAP
# roboflow
thop # FLOPs computation
第4步:在云环境运行YOLO V5 (可忽略)
For a quick and hassle free setup YOLOv5 has been packaged with all dependencies* for the following environments
*including CUDA/CUDNN, Python and PyTorch
- Google Colab and Kaggle notebooks with free GPU:
- Google Cloud Deep Learning VM. See GCP Quickstart Guide
- Amazon Deep Learning AMI. See AWS Quickstart Guide
- Docker Image. See Docker Quickstart Guide
第5步骤:命令行下使用YOLO V5代码进行预测或目标检测
5.1 命令概述
$ cd .\yolov5
$ python detect.py --source OPTION
将 OPTION 替换为您的选择,从而进行目标检测
- 网络摄像头:(OPTION = 0)用于从您连接的网络摄像头检测活动物体
- Image : (OPTION = filename.jpg)使用对象检测覆盖创建图像的副本
- 视频: (OPTION = filename.mp4)使用对象检测覆盖创建视频副本
- 目录: (OPTION = directory_name/)使用对象检测覆盖创建所有文件的副本
- 全局文件类型(OPTION = directory_name/*.jpg)使用对象检测覆盖创建所有文件的副本
- RTSP 流:(OPTION = rtsp://170.93.143.139/rtplive/470011e600ef003a004ee33696235daa)用于从流中检测活动物体
- RTMP 流:(OPTION = rtmp://192.168.1.105/live/test)用于从流中检测实时对象
- HTTP 流:(OPTION = http://112.50.243.8/PLTV/88888888/224/3221225900/1.m3u8)用于从流中检测活动物体
支持的图片和视频的类型有:
- Images: bmp, jpg, jpeg, png, tif, tiff, dng, webp, mpo
- Videos: mov, avi, mp4, mpg, mpeg, m4v, wmv, mkv
5.2 对图片文件进行目标检测
执行命令:
$ python detect.py --source '.\data\images\bus.jpg'
输入图片:(YOLO V5工程自带的测试图)
输出结果:
(1)自动下载字体文件
Downloading https://ultralytics.com/assets/Arial.ttf to C:\Users\admin\AppData\Roaming\Ultralytics\Arial.ttf...
(2)自动检查图片大小、自动选择模型以及参数
detect: weights=yolov5s.pt, source=.\data\images\bus, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs\detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False
YOLOv5 v6.0-162-gaffa284 torch 1.10.0 CUDA:0 (NVIDIA GeForce RTX 2070, 8192MiB)
(3)自动下载预训练模型
Downloading https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt to yolov5s.pt...
(4)进行预测
Fusing layers...
Model Summary: 213 layers, 7225885 parameters, 0 gradients
(5)测试结果
image 1/1 F:\MySource\github\yolov5\data\images\bus.jpg: 640x480 4 persons, 1 bus, Done. (0.007s)
Speed: 1.0ms pre-process, 7.0ms inference, 19.9ms NMS per image at shape (1, 3, 640, 640)
(6)输出结果
Results saved to runs\detect\expXXX
每执行一次预测,xxx就会增加1.
5.3 对视频文件进行目标检测
$ python detect.py --source '.\data\images\yyy.mp4'
过程:同图片文件
输出:runs\detect\expXXX\带有检测框的视频文件。
5.4 对摄像头视频进行目标检测
$ python detect.py --source 0
过程:同图片文件
输出:
- runs\detect\expXXX\带有检测框的视频文件
- 带有检测框的摄像头实时显示
5.5 常见问题
(1)GPU内存不足:增加显卡内存、关闭应用、重启机器
(2)pycharm文件路径不对:pycharm修改默认路径
第6步骤:基于PyTorch Hub的源代码进行预测
在这种方式下,不需要把YOLO V5的工程代码下载的本地,只需要从远程下载模型。
但这种方式,需要编写Python代码:
import torch
# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
# Images
dir = 'https://github.com/ultralytics/yolov5/raw/master/data/images/'
imgs = [dir + f for f in ('zidane.jpg', 'bus.jpg')] # batch of images
# Inference
results = model(imgs)
results.print() # or .show(), .save()
(1)在线下载模型
(2)在线下载图片
(3)进行模型预测
(4)存储预测结果
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址: