使用yolov5实现目标检测和yolov8实现分割简单案例

news2024/9/20 22:39:31

一、前置

测试这个案例之前需要安装一些前置的东西,如果已经安装的可以忽略,下面我给出我跟着做的一些很好的博客提供大家参考,因为我们主要目的还是实现yolov5的目标检测。

1、安装nvidia显卡驱动

可以参考:【Windows】安装NVIDIA驱动 / 更新驱动_windows 更新nvidia驱动-CSDN博客

2、安装cuda和cudnn

可以参考:下载cuda和cudnn(11.8版本)_cudnn下载-CSDN博客

关于切换版本:下载cuda和cudnn(11.8版本)_cudnn下载-CSDN博客

注意!注意!注意!

记得安装cuda注意版本问题,后面会遇到和Pytorch版本一致问题,我下的是cuda是12.4

 看版本问题可以查看官网:Start Locally | PyTorch

3、安装Anaconda

可以参考:Anaconda安装-超详细版(2023)_anaconda安装哪个版本好-CSDN博客

4、安装Pytorch

可以先参考下面那些博客!!!

创建虚拟环境:

conda create -n yolov5 python=3.12.4

yolov5为创建的虚拟环境名,python版本需要和自己的对应。

我的python环境为:

 安装成功后激活yolov5环境:

conda activate yolov5

查看你创建的虚拟环境

conda env list

 

在所创建的环境下安装pytorch:

注意去官网查看自己需要安装的版本:Start Locally | PyTorch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

可以参考:【超详细教程】2024最新Pytorch安装教程(同时讲解安装CPU和GPU版本)-CSDN博客

5、为你的pychram配置上pytorch

在安装anaconda之前我删掉了python,所以还需要在自己创建的pytorch环境下编码,再次配置pychram,可以参考下面几篇,然后再结合自己的一些思考配置就差不多了。

pycharm配置pytorch_python_huanglianghuang-华为云开发者空间

在PyCharm的项目中配置自己想要的环境的操作步骤(以PyTorch为例)_pycharm 工程内设置环境-CSDN博客

Anaconda安装及配置+pytorch深度学习环境(2024复旦计算机工作站0704)_anaconda pytorch-CSDN博客pytorch超详细安装教程,Anaconda、PyTorch和PyCharm整套安装流程_pytorch安装-CSDN博客Anaconda安装及配置+pytorch深度学习环境(2024复旦计算机工作站0704)_anaconda pytorch-CSDN博客

二、yolov5测试目标检测

1、下载代码和权重文件

这里我用的是3.1版本的,可以去GitHub官网下载:

Release v3.1 - Bug Fixes and Performance Improvements · ultralytics/yolov5 · GitHub

移到最下面,找到:

下载这两个,下载好yolov5s.pt,yolov5m.pt,yolov5l.pt,yolov5x.pt这些权重文件,并放置在yolov5代码里面weights文件夹目录下。

如果想要新版本的yolov5代码,也可以去:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

记得权重文件下载对应版本界面里的权重文件,权重文件版本需要和yolov5代码版本对应,不然后续会报错。

2、激活虚拟环境

打开anaconda的命令行,在yolov5的虚拟环境下,这个yolov5环境是我之前配置pytorch的。

conda activate yolov5

接下来都是在这个命令行操作了。

3、进入yolo代码目录

4、安装所需库

在安装之前先配置使用清华镜像源:

在yolov5路径下执行:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

 安装所需要的依赖:cv2,tqdm,matplotlib,yaml,scipy

执行下面指令:

pip install opencv-python
pip install tqdm
pip install matplotlib
conda install PyYAML
pip install scipy

在使用指令下载yaml的时候,如果使用下面这个指令会出现这样子的报错

可以参考:[已解决]ModuleNotFoundError: No module named ‘yaml‘_modulenotfounderror: no module named 'yaml-CSDN博客`

5、测试图片

使用指令:

python detect.py --source ./inference/images/ --weights weights/yolov5s.pt --conf 0.4

在./inference/images/这个目录下有预处理的图片,可以去测试,没有的可以自己寻找数据集添加。

如果前面那些库没下载,可能会出现下面这些问题:

ModuleNotFoundError: No module named 'cv2'

缺哪个就会报错哪个库。

执行指令后:

在你的.\inference\output目录下就会出现处理后的图片。

下面我再换一个权重文件:

python detect.py --source ./inference/images/ --weights weights/yolov5x.pt --conf 0.4

处理前的图片:

处理后:

附:图片为随便找的网图,侵权请联系删除

6、切换目前版本的yolov5代码

官网:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

然后再去下载几个权重文件,与上面一样,将权重文件放在weights文件夹里面

7、再次测试

python detect.py --source ./data/images/ --weights weights/yolov5s.pt --conf 0.4

这次的提供的图片再data目录下的images文件夹

运行结束:

处理后图片如下:

三、yolov8测试分割

1、激活pytorch虚拟环境
conda create -n myPytorch python=3.12.4
conda activate myPytorch
conda env list

在所创建的myPytorch环境下安装pytorch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

2、下载yolov8的代码

Github:https://github.com/ultralytics/ultralytics

或者

Gitee:ultralytics: YOLOv8 🚀 Ultralytics 同步更新官方最新版 YOLOv8 (gitee.com)

下载后放在指定目录。

3、在mypytorch虚拟环境下进入代码目录

4、下载所需要的库
pip install -e .

5、下载预训练权重文件

由于我们测试的是分割,所以下载分割的权重文件,如果需要测试其他的功能就去下载对应的权重文件即可。

官方文档:Segment - Ultralytics YOLO Docs

这里就是我们需要下载的权重文件,下面我下载这两个权重文件做测试。

自建一个weights的文件夹,然后将自己下载的权重文件放入其中

6、yolov8s-seg.pt测试

官方介绍文档:Predict - Ultralytics YOLO Docs

预测图片:

用yolov8s-seg.pt这个权重文件测试:

yolo segment predict model=./weights/yolov8s-seg.pt source=./ultralytics/assets/

测试前:

测试后:

预测摄像头:
yolo segment predict model=./weights/yolov8s-seg.pt source=0 show

使用该指令,会使用电脑的摄像头进行分割检测,这个是会实时检测,ctrl+c就可以停止。

cmd信息如下,下面就不展示摄像头了~~~【狗头】

7、yolov8x-seg.pt测试
预测图片:

换yolov8x-seg.pt这个权重文件,下面执行指令:

yolo segment predict model=./weights/yolov8x-seg.pt source=./ultralytics/assets/

测试后:

预测摄像头:
yolo segment predict model=./weights/yolov8x-seg.pt source=0 show

测试成功!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2058917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

黑夜力作-Web爬虫入门与实战精讲-专栏导读

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师&am…

高性能minio集群环境搭建(配视频教程)

为后续进行《小卷原创视频教程:spring boot 3 vue3文件上传最佳实践》的大文件上传项目实战,这里带着小伙伴一起搭建下分布式开源文件存储minIO的集群环境。后续将对这个环境进行spring boot的集成,以进行企业级大文件上传的对接。 文章目录…

分布式基础理论——CAP理论和BASE理论

文章目录 CAP 理论BASE 理论参考资料 CAP 理论 CAP定理(CAP theorem)指出,在分布式系统中,设计读写操作时只能同时满足以下三个特性中的两个: 一致性(Consistency) : 所有节点访问同一份最新的…

Leetcode每日刷题之3.无重复字符的最长子串(C++)

1.题目解析 本题的目标是在给定的字符串中找出不含有重复字符的最长子串,并且返回其长度,这道题核心就是如何去重并且不能遗漏以保证子串长度最长,题目来源:3.无重复字符的最长子串 2.算法原理 本题的算法原理主要是"滑动窗口"也就…

做数据采集,你真的了解PLC插槽号吗?

有很多PLC可以在系统里配置多个独立CPU,各自有自己的任务。也有一些PLC,虽然只有一个CPU,但是,其位置是可变的。外部进行数据采集时,首先要搞明白采集目标是哪个CPU,否则,就会张冠李戴&#xff…

[大模型]Milvus Lite安装

文章目录 前提相关链接官方网站中文网站 创建虚拟环境安装Milvus连接Milvusattu连接工具attu官方开源地址下载地址连接 Milvus 是一款开源的向量数据库,它主要特点是高可用、高性能和易扩展,主要用于处理海量向量数据的实时召回。它基于诸如 FAISS、Anno…

nginx和tomcat负载均衡,动静分离

文章目录 一,tomcat1.tomca用途2.tomcat重要目录 二,nginx1.Nginx应用2.nginx作用3.nginx的正向代理和反向代理3.1正向代理3.2反向代理(单级)3.3反向代理(多级) 4.nginx负载均衡4.1Nginx支持的常见的分流算法1. 轮询(Round Robin):2.最少连接数(LeastCon…

【日记】黑神话的优化感觉有些微妙(1188 字)

正文 今天省分行一把手来我们县里。很奇怪。一整天都在为迎接他做准备。中午也没有什么午休,全员到工位上值班值守。 就算如此我还是抽了一点所剩无几的时间,体验了一下黑神话。 上午 10 点钟,远程控制电脑开始解压昨天的预载。大概解压了一个…

120KW可编程液冷负载优势和特点

120KW可编程液冷负载是一种先进的电力设备,它采用液冷技术进行冷却,具有高效、稳定、安全等特点。以下是其优势和特点的详细介绍: 1. 高效冷却:液冷负载采用液冷技术进行冷却,能够更有效地将热量传导出去,提…

基于vue3的模拟数据mock.js应用

一、mock.js介绍 Mock.js 是一个用于生成随机数据,拦截 Ajax 请求的 JavaScript 库。它主要用于前后端分离开发时,模拟后端数据接口,使得前端开发者在不需要后端实际编写接口的情况下,也能进行开发、测试。 1、主要功能 生成随…

统一认证及单点登录(SSO)技术探讨

在当今复杂的企业环境中,用户身份管理和访问控制变得越来越重要。随着企业应用系统的增多,如何高效地管理用户身份和简化用户登录流程成为了一个亟待解决的问题。统一认证和单点登录(SSO)技术应运而生,为企业提供了一种…

泊松自助法(Poisson Bootstrap Sampling):大型数据集上的自助抽样

自助抽样可以根据收集的样本推断总体的统计特征(如均值、十分位数、置信区间)。泊松自助抽样(Poisson Bootstrap Sampling)是一种用于统计分析中的重采样技术,特别是在机器学习和数据科学中用于模型评估和误差估计。这种方法的一个特点是保留…

【深度学习】使用VScode远程服务器GPU进行训练

使用VScode远程服务器GPU进行训练 参考文献1、使用vscode远程服务器2、使用mobaxterm传输文件 参考文献 参考b站视频远程连接服务器用GPU跑深度学习项目,小白教学。 1、使用vscode远程服务器 打开vscode,在插件管理处安装插件Remote Development&#…

ASM实例的SPILE 存储在ASM的磁盘组上时,集群要如何去获取SPFILE并启动ASM实例?(1)

从11g R2 开始,ASM spfile 会自动存储在安装集群软件时创建的第一个磁盘组中,一般为OCR磁盘组。由于投票盘/OCR 存储在 ASM 上,因此需要在节点上启动 ASM。要启动 ASM,需要其 SPFILE 。但 SPFILE 仅位于 ASM 磁盘组上。集群是如何…

融合创新趋势:Web3时代的跨界融合

随着互联网技术的飞速发展,Web3时代的到来正引领着一场深刻的技术与社会变革。Web3,作为下一代互联网技术的代表,不仅仅是一种技术创新,更是一种跨界融合的趋势。通过去中心化、智能合约和区块链技术的应用,Web3正在重…

大模型心高气傲,没有AI Agents生死难料

前言 AI Agent,正在接棒大语言模型LLM,成为AI圈最火的话题。 目前,AI创投圈的众生相,大概是这样的: 大厂俱乐部:OpenAI内部员工声称,AI Agent是OpenAI的新方向;微软尝试推动copil…

解锁高效办公新姿势:SSO单点登录+企业网盘完美搭配

在现代互联网环境中,随着企业业务的不断扩展,多系统、多应用的集成成为常态。为了提升用户体验,减少用户在不同系统间切换的繁琐,单点登录(SSO, Single Sign-On)技术应运而生。 本文将详细介绍SSO单点登录的…

NRK3301语音识别芯片在头戴式照明灯上的应用的方案

在现代社会,头戴式照明灯在各个领域发挥着重要作用,如户外探险、工业作业、夜间骑行等。为了提高这类产品的便捷性和安全性,我们采用了NRK3301语音识别芯片,并将其应用于头戴式照明灯中。这一创新应用使用户能够通过语音指令控制灯…

Browserless 网页抓取:在 Selenium 中使用 NodeJs

Selenium 是否有效? Selenium 是一个流行的开源网页自动化框架,主要用于浏览器测试自动化。此外,它也可以用来解决动态网页抓取问题。 Selenium 有三个主要组件: Selenium IDE:一个浏览器插件,提供了一种…

「JVS更新日志」逻辑引擎、智能BI、规则引擎8.20功能更新说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架,主要解决企业信息化项目交付难、实施效率低、开发成本高的问题,采用微服务配置化的方式,提供了 低代码数据分析物联网的核心能力产品,并构建了协同办公、企业常用的管理工具等&am…