使用yolov5实现目标检测简单案例(测试图片)

一、前置

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

在所创建的环境下安装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项目

这里我用的是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代码版本对应,不然后续会报错。

三、安装测试

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

1、激活虚拟环境
conda activate yolov5

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

2、进入yolo代码目录

3、安装所需库

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

在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博客`

4、测试图片

使用指令:

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

处理前的图片:

处理后:

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

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

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

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

6、再次测试

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

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

运行结束:

处理后图片如下:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unified 阻抗控制 architecture、framework、approach

Unified 阻抗控制(Unified Impedance Control)作为一种控制策略,其architecture(架构)、framework(框架)和approach(方法)为: 一、Unified 阻抗控制 Archite…

京东数据编织

计算引擎是Hbase 中间计算结果的物化【就是存下来】 自动物化 在这里插入图片描述

Python自动化:解锁高效工作与生产力的密钥

在当今快节奏的数字时代,自动化已成为提升工作效率、优化流程、减少人为错误的不可或缺的工具。Python,作为一种功能强大、易于学习且应用广泛的编程语言,在自动化领域扮演着举足轻重的角色。无论是数据处理、Web自动化、软件测试&#xff0c…

SQL注入(原理、分类、union、POST注入)

目录 【学习目标、重难点知识】 【学习目标】 【重难点知识】 SQL注入简介 SQL注入原理 SQL注入类型 MySQL与SQL注入的相关知识 information_schema 数据库的结构 数据库查询语句 limit的用法 需要记住的几个函数 注释符号 SQL注入探测方法 SQL注入漏洞攻击流程…

ssh免密码登陆设置时Authentication refused: bad ownership or modes错误解决方法

0.环境: 三个节点:node1,node2,node3 1.问题描述: 配置好免密登录后,免密登录失效,还需要输入密码,如下图: 2.原因查找: 去查看系统的日志文件 使用命令: sudo tail …

基于Java语言的光伏监控系统+光伏项目+光伏储能+光伏运维系统

介绍 基于Java语言的光伏监控系统光伏发电系统光伏软件系统光伏监控系统源码光伏发电系统源码 软件架构 部分软件截图

Tmagic-editor低代码底层拖拽库Moveable示例学习

在前面咱们的自研低代码海报制作平台学习分享计划中分享了自己开发的基本拖拽组件,也只是做了最简单的基本实现。真要写产品,更多还是依赖相关的开源优秀库。 文章目录 参考基本拖拽基本缩放基本Scalable基本旋转基于原点的拖拽和旋转关于练习源码 参考 …

TCP详解(二)滑动窗口/流量控制

本文解释了TCP为何能保证数据传输的可靠性,以及如何保证整个网络的顺畅。 1 网络分层模型 这是一切的本质。网络被设计成分层的,所以网络的操作就可以称作一个“栈”,这就是网络协议栈的名称的由来。在具体的操作上,数据包最终形…

20. OTA流程 - 2

1. 概述 BES蓝牙方案自带OTA功能,支持SPP和BLE。 建议采用BLE的功能,因为苹果手机默认不支持SPP。 2. OTA框架 OTA时,耳机端需要先进入OTA状态 2.1 SPP升级

Nginx--代理与负载均衡(扩展nginx配置7层协议及4层协议方法、会话保持)

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、代理原理 1、反向代理产生的背景 单个服务器的处理客户端(用户)请求能力有一个极限,当接入请求过多时&#…

【网络安全】SSO登录过程实现账户接管

未经许可,不得转载。 文章目录 正文正文 登录页面展示了“使用 SSO 登录”功能: 经分析,单点登录(SSO)系统的身份验证过程如下: 1、启动SSO流程:当用户点击按钮时,浏览器会发送一个GET请求到指定的URL: /idp/auth/mid-oidc?req=[UNIQUE_ID]&redirect_uri=[REDI…

Leetcode JAVA刷刷站(41)缺失的第一个正数

一、题目概述 二、思路方向 为了找到未排序整数数组中未出现的最小正整数,并满足时间复杂度为 O(n) 和只使用常数级别额外空间的要求,我们可以采用原地哈希(也称为索引哈希)的方法。这个方法的基本思想是将每个数字(如…

[C++进阶]二叉树进阶的一些面试题(一)

首先我们先回忆我们过去学的二叉树和最近学的二叉搜索树,来完成下面的题目: 606. 根据二叉树创建字符串 这道题属于与基础题,首先我们观察输入输出样例可以得到如果root->left为空,root->right不为空时,我们的空格仍然需要保留,如果当前节点有两个孩子,那我…

人工智能在肿瘤亚型分类领域的研究进展|顶刊速递·24-08-13

小罗碎碎念 文献日推主题:人工智能在肿瘤亚型分类领域的研究进展 昨天晚上在研究鼻咽癌的病理学诊断指南,看到了下面这段话的时候,我问了自己一个问题——通过AI识别出肿瘤亚型的根本目的是什么?可以衔接哪些具体的下游任务&#…

TinyEngine是什么?

TinyEngine 是 OpenTiny 项目下的一个开源低代码引擎,旨在帮助开发者快速构建应用程序。它提供了可视化搭建页面的能力,支持在线实时构建和二次开发或集成,适用于多种场景的低代码平台开发,例如资源编排、服务端渲染、模型驱动、移…

拉取/启动kafka的docker镜像

拉取/启动kafka的docker镜像 1、拉取kafka镜像2、移除docker镜像(演示)3、查看镜像是否拉取成功4、通过docker启动kafka容器5、查看是否有启动的容器 1、拉取kafka镜像 因为一些原因,无法从dockerhub直接拉取kafka的docker镜像,我将原来拉到kafka3.7.0的…

后端开发刷题 | 寻找峰值【二分法】

描述 给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个所在位置即可。 1.峰值元素是指其值严格大于左右相邻值的元素。严格大于即不能有等于 2.假设 nums[-1] nums[n] −∞ 3.对于…

MQ死信对列

面试题:你们是如何保证消息不丢失的? 1、什么是死信 死信就是消息在特定场景下的一种表现形式,这些场景包括: 1. 消息被拒绝访问,即消费者返回 basicNack 的信号时 或者拒绝basicReject 2. 消费者发生异常&#xff0…

保存数据至后台表

保存数据至后台表-供大数据平台使用-JOB程序 *&---------------------------------------------------------------------* *&程序名称 :ZBD_JOB_001 *&程序描述 : 保存数据至后台表-供大数据平台使用-JOB程序 *…

数据结构:线性结构之顺序表、链表篇

数据结构:顺序表、链表篇 线性表一、顺序表(一)顺序表的结构定义(二)顺序表的功能实现1、初始化2、销毁3、扩容4、插入5、删除 (三)顺序表例题分析1、删除有序数组中的重复项2、合并两个有序数组…