当前位置: 首页 > news >正文

如何运行YOLOv5的代码,实现目标识别

YOLOv5和v8都由Ultralytics这家创业公司开发的

https://github.com/ultralytics/yolov5

  1. 环境配置

git clone https://github.com/ultralytics/yolov5.git

作者要求python=3.6(我用的3.8也能跑通)torch1.7.0

pip install -r requirements_my_version.txt

requirements_my_version.txt里面写了这些

matplotlib==3.2.2
numpy==1.18.5
opencv-python==4.1.2.30 # 注意这个地方官方提供的是opencv-python>=4.1.2,但是安装的时候告诉你没有这个版本要你从里面选,我选了30,后面可以运行
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# plotting ------------------------------------pandas==1.1.4
seaborn==0.11.0# deep_sort -----------------------------------easydict# torchreidCython
h5py
six
tb-nightly
future
yacs
gdown
flake8
yapf
isort==4.3.21
imageio
  1. 运行

shell命令行调用

这里是调用detect.py来实现识别

本机摄像头

python detect.py --source 0

# 摄像头的识别过程会被录像下来,并将录像中的人和手机识别出来,并将录像保存在这个文件夹里,每次运行都会在./runs/detect/exp4 文件名叫0.mp4 (4表示是序号为4,下一次运行就是exp5,以此类推)

我截了一张识别后输出的视频里面的图,可以识别出来。(为了保护个人隐私,所以对人脸进行了遮挡)

单张图片

python detect.py --source ./data/images/bus.jpg# 图片中人和巴士都被识别出来了

原图长这样

识别以后的图保存在./runs/detect/exp5/bus.jpg

视频

python detect.py --source ./data/video/dandong.mp4

识别出来视频中是这样。人也能识别出来,自行车也识别出来了。

代码内调用YOLOv5实现

你开一个文件叫test.py

touch test.py

在test.py里面写上这一段

# 导入模型文件,对指定图片进行识别
import torch# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')  # or yolov5m, yolov5l, yolov5x, custom
# -S1-下载并加载模型# -S1.1-下载代码和模型文件
# 先把GitHub上项目名为“ultralytics/yolov5”的代码下载下来。
# 同时从这个GitHub的/releases/(此处为https://github.com/ultralytics/yolov5/releases/)中Asset的众多模型中寻找“yolov5s.pt”文件下载到和本代码文件同文件夹下# -S1.2-加载代码和模型文件
# 模型架构来自这个文件夹里面的代码 “/home/albert/.cache/torch/hub/ultralytics_yolov5_master”,参数来自于本文件夹内的yolov5s.pt
# 模型名字结尾不要加.pt
.# Images
img = 'https://ultralytics.com/images/zidane.jpg'  # or file, Path, PIL, OpenCV, numpy, list# Inference
results = model(img)
# -S2-把图片传进这个torch.hub.load()
# 传进去就已经开始识别了。识别了一会,识别完成了以后,下面你调用print或者show()才会出来结果# Results
results.print()  # or .show(), .save(), .crop(), .pandas(), etc.
results.show()# -S3-拿到识别结果
# 这个 torch.hub.load()有上面这些功能,
  • 它这个代码会先从GitHub上把项目下载下来,下载到这个位置“/home/albert/.cache/torch/hub”。下载哪个项目,你就把这个项目的在GitHub上的名字填进line5的第一个参数里面。这个项目名,就在下面这个截图左上角显示的,“ultralytics/yolov5”

  • line5第二个参数,.........,把模型“yolov5s.pt”下载到和运行的这个test.py文件同一个文件夹下面

line5的第二个参数yolov5s

https://ultralytics.com/yolov5

YOLOv5来了!基于PyTorch,体积比YOLOv4小巧90%,速度却超2倍https://www.51cto.com/article/618784.html

YOLOv5的文档https://docs.wandb.ai/guides/integrations/yolov5

pytorch上YOLO5的文档https://pytorch.org/hub/ultralytics_yolov5/

https://www.comet.com/docs/v2/integrations/third-party-tools/yolov5/

https://blog.roboflow.com/yolov5-improvements-and-evaluation/

http://www.lryc.cn/news/13603.html

相关文章:

  • 【正点原子FPGA连载】第十四章SD卡读写TXT文本实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
  • 【人工智能AI :Open AI】我想写一本书,书名是《中国文学史》,帮我列一下目录,细化到三级目录,不少于2000字。
  • 「文档数据库之争」MongoDB和CouchDB的比较
  • c++11 标准模板(STL)(std::unordered_set)(三)
  • 事件循环机制eventLoop?Js事件流?JavaScript如何实现异步编程?
  • 视频播放器倍速、清晰度切换、m3u8下载
  • 将Nginx 核心知识点扒了个底朝天(五)
  • 【基础算法】差分
  • 【LeetCode】剑指 Offer(5)
  • 外包出来,朋友内推我去一家公司,问的实在是太...
  • 刷题记录:牛客NC54585小魂和他的数列 [线段树卡常,真恶心]
  • 2019蓝桥杯真题旋转 C语言/C++
  • <JVM上篇:内存与垃圾回收篇>11 - 垃圾回收相关算法
  • 狂飙Linux平台,软件部署大全
  • 积分球原理及积分球类型介绍
  • Vision Transformer(ViT) 2: 应用及代码讲解
  • 高频面试题|JVM虚拟机的体系结构是什么样的?
  • MyBatis-Plus详细讲解(整合spring Boot)
  • 骨传导耳机是不是智商税?骨传导耳机真的不伤耳吗?
  • 模拟实现string
  • 自监督表征预训练之掩码图像建模
  • 华为OD机试题 - 磁盘容量(JavaScript)| 代码+思路+重要知识点
  • ChatGPT:“抢走你工作的不会是 AI ,而是先掌握 AI 能力的人”
  • 数据结构与算法(Java版) | 线性结构和非线性结构
  • 电商数据查询平台:母婴行业妈妈用品全网热销,头部品牌格局初现
  • STM32模拟SPI协议获取24位模数转换(24bit ADC)芯片AD7791电压采样数据
  • 华为OD机试题 - 交换字符(JavaScript)| 代码+思路+重要知识点
  • 最好的工程师像投资者一样思考,而不是建设者
  • Mysql里的ibtmp1文件太大,导致磁盘空间被占满
  • android kotlin 协程(四) 协程间的通信