YOLOv5目标检测

文章目录

  • 软硬件环境
  • 前言
  • 安装GPU环境
  • 安装pytorch的GPU版本
  • YOLOv5测试
  • v3.0版本
  • 参考资料

软硬件环境

  • ubuntu 18.04 64bit
  • anaconda with 3.7
  • nvidia gtx 1070Ti
  • cuda 10.1
  • pytorch 1.5
  • YOLOv5

前言

YOLOv4还没有退热,YOLOv5就已经来了!

6月9日,Ultralytics公司开源了YOLOv5,离上一次YOLOv4发布不到50天,不过这一次的YOLOv5是基于PyTorch实现的,而不是之前版本的darknet

根据官方给出的数字,YOLOv5的速度最快可以达到每秒140帧(FPS),但是权重文件只有YOLOv4的1/9,而且准确度更高。本次的发布的YOLOv5并不是一个单独的模型,而是一个模型家族,包括了YOLOv5sYOLOv5mYOLOv5lYOLOv5x,要求Python 3.7和PyTorch 1.5以上版本。

安装GPU环境

请参考之前的文章

ubuntu安装cuda

windows 10安装cuda和cudnn

安装pytorch的GPU版本

来到官网 Start Locally | PyTorch,根据自己的环境,进行选择,网站会给出相应的安装命令。我这里的环境是linuxpipcuda 10.1

复制代码
conda create -n pytorch python=3.7
conda activate pytorch
pip install torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
pip install ipython

安装完pytorch后,我们在ipython中查看安装的结果

复制代码
(pytorch) xugaoxiang@1070Ti:~/Works/github/yolov5$ ipython
Python 3.7.7 (default, May  7 2020, 21:25:33)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.15.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import torch
In [2]: torch.cuda.is_available()
Out[2]: True

说明GPU版本的pytorch安装成功

YOLOv5测试

首先还是把源码clone到本地

复制代码
pip install -U -r requirements.txt

下面就可以开始测试了

首先使用项目中自带的测试图片看看效果,命令是

复制代码
python detect.py

默认情况下,脚本会去读取inference/images下的所有图片并进行目标检测,带有目标框的结果图片保存在inference/out下。如果是只检测某一张图片的话,可以执行命令python detect.py --source test.jpg

为了对比测试,我们把YOLO之前版本的测试图片也跑了一遍

上图中马匹的检出率跟YOLOv4是一样的,满意

上图中右上角的垃圾桶没有被检出,这点不及YOLOv4

detect.py脚本同样支持视频的检测,包括本地摄像头、本地视频文件、m3u8播放地址和rtsp实时流,地址都是跟在参数--source后面

本地摄像头使用下面的命令

复制代码
python detect.py --source 0

基于rtsp的网络摄像头使用下面的命令

复制代码
python detect.py --source "rtsp://user:password@192.168.1.100:554/cam/realmonitor?channel=1&subtype=1"

可以看到,使用1070Ti显卡,fps在80左右

如果你有多块显卡,可以选择具体使用哪块显示进行检测,0表示第一块,1表示第二块,cpu表示不使用gpu

复制代码
python detect.py --device 0

detect.py中的参数很多,可以使用python detect.py -h进行查看

复制代码
(base) xugaoxiang@1070Ti:~/Works/github/yolov5$ python detect.py -h
usage: detect.py [-h] [--weights WEIGHTS] [--source SOURCE] [--output OUTPUT]
                 [--img-size IMG_SIZE] [--conf-thres CONF_THRES]
                 [--iou-thres IOU_THRES] [--fourcc FOURCC] [--device DEVICE]
                 [--view-img] [--save-txt] [--classes CLASSES [CLASSES ...]]
                 [--agnostic-nms] [--augment]
optional arguments:
  -h, --help            show this help message and exit
  --weights WEIGHTS     model.pt path
  --source SOURCE       source
  --output OUTPUT       output folder
  --img-size IMG_SIZE   inference size (pixels)
  --conf-thres CONF_THRES
                        object confidence threshold
  --iou-thres IOU_THRES
                        IOU threshold for NMS
  --fourcc FOURCC       output video codec (verify ffmpeg support)
  --device DEVICE       cuda device, i.e. 0 or 0,1,2,3 or cpu
  --view-img            display results
  --save-txt            save results to *.txt
  --classes CLASSES [CLASSES ...]
                        filter by class
  --agnostic-nms        class-agnostic NMS
  --augment             augmented inference

v3.0版本

很多朋友反应,在执行python detect.py时出现下面的错误

这个错误是由于YOLOv5源码与权重文件的不匹配引起的,升级到匹配的权重文件就好

相关推荐
我爱一条柴ya几秒前
【AI大模型】线性回归:经典算法的深度解析与实战指南
人工智能·python·算法·ai·ai编程
Qiuner6 分钟前
【源力觉醒 创作者计划】开源、易用、强中文:文心一言4.5或是 普通人/非AI程序员 的第一款中文AI?
人工智能·百度·开源·文心一言·gitcode
未来之窗软件服务18 分钟前
chrome webdrive异常处理-session not created falled opening key——仙盟创梦IDE
前端·人工智能·chrome·仙盟创梦ide·东方仙盟·数据调式
AI街潜水的八角34 分钟前
深度学习图像分类数据集—蘑菇识别分类
人工智能·深度学习·分类
飞睿科技1 小时前
乐鑫代理商飞睿科技,2025年AI智能语音助手市场发展趋势与乐鑫芯片解决方案分析
人工智能
许泽宇的技术分享1 小时前
从新闻到知识图谱:用大模型和知识工程“八步成诗”打造科技并购大脑
人工智能·科技·知识图谱
坤坤爱学习2.01 小时前
求医十年,病因不明,ChatGPT:你看起来有基因突变
人工智能·ai·chatgpt·程序员·大模型·ai编程·大模型学
蹦蹦跳跳真可爱5892 小时前
Python----循环神经网络(Transformer ----注意力机制)
人工智能·深度学习·nlp·transformer·循环神经网络
空中湖4 小时前
tensorflow武林志第二卷第九章:玄功九转
人工智能·python·tensorflow
lishaoan774 小时前
使用tensorflow的线性回归的例子(七)
人工智能·tensorflow·线性回归