yolov5检测cs2中的目标

2023-10-04 01:36
文章标签 目标 检测 yolov5 cs2

本文主要是介绍yolov5检测cs2中的目标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境介绍

系统:Windows11

显卡:4070ti

cuda:11.8

配置环境
python环境

安装python的虚拟环境anaconda。Free Download | Anaconda

成功安装后可以按Win键搜索anaconda,可以看到桌面版和命令行版本,我们这里直接用命令行版本。

Figure 1
Figure 1

其中Anaconda powershell prompt为命令行的版本,点击进入。

Figure 2

可看到默认已经有base的环境了。而我们需要创建一个环境,让YOLOv5可以正常运行。所以我们创建一个新的环境。使用命令行conda activate -n yolo   此命令的含义是建立一个名为yolo的虚拟python环境。而我们要安装的包都要在这个环境下安装,用于和其他环境隔离。 你也可以不用使用conda,直接在本机上安装yolov5的所有环境也是可以的,但是并不建议这样做。

cuda环境

如果没有显卡可以不跳过cuda环境

查看自己的显卡可以使用的cuda版本,我这个显卡是可以安装cuda12的版本。但是我们yolov5依赖的深度学习框架pytorch 2.0.1版本最大支持11.8。下载链接。我安装了几个不同的cuda版本用于切换。

切换时可以找到环境变量->系统变量->Path

Figure 3

将需要的版本上移。此处我将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp 均上移。记住上移之后重启电脑生效

重启电脑之后再命令行输入命令 nvcc -V 可以查看当前的cuda版本

然后还需要下载cuDNN

以为我们的cuda版本 是11.8,所以我下载了Download cuDNN v8.9.4 (August 8th, 2023), for CUDA 11.x

下载压缩包之后就解压。

将解压之后的文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8 下,就是刚才环境变量中的那个版本路径

yolov5环境

下载yolov5的源码,可以直接从https://github.com/ultralytics/yolov5 下载,如果觉得慢可以去gitee搜索一下,肯定有人同步过。

下载完成之后使用刚才Figure 2的conda命令行,cd 到yolov5的目录下

pip install -r .\requirements.txt 使用该命令安装yolov5需要的环境。requirements.txt文件是源码中的文件,描述了这个程序运行需要的环境

如果使用显卡训练,则需要安装下显卡版本的pytorch,上面的环境默认只安装cpu的版本。

Start Locally | PyTorch 进入这个网页,选好环境。 我们这个选择的是windows和conda,cuda版本选择11.8,然后版本选择2.0.1  然后看到提示安装的命令行,复制这个命令到上图的powershell中运行。

运行之后pytorch的环境就配置好了。

代码介绍

使用vscode打开yolov5的文件夹。 其中核心的文件有train.py,detect.py文件,用于训练和检测任务。

训练

我这里只描述用法,打开train.py文件,大概442行左右就包含了我们需要传入的参数。

我这里就直接改default这里的参数了,正确做法应该是建立launch.json文件来传入这些参数

其中 --weights 为权重参数,可以给它一个预训练的权重文件,我这个直接用yolov5s.pt这个默认的,这个是原本就有的文件。

--device 表示用什么设备来训练,如果直接使用cpu可以不改。 我这里用的是gpu,所有默认值改成0

--epochs 表示训练次数

--data 这里需要给训练集和验证集的数据,这里执行我自己建立的在data目录下的cs2.yaml文件,这里的文件描述我参考。

path表示数据集的根目录,我这里用的相对目录。 如果不熟的话可以直接使用绝对路径

然后在这个目录下建立训练集和验证集的路径, 测试集可以不用。 然后训练集和验证集可以先设为一个路径,先跑通代码再说也是可以的。

names:  这里代表命名。 我这里有4个类别,其中0是匪、1是警、2是死亡人物、3是未激活的人物

这个是我的路径。  然后train和val分别代表数据集和验证集。

他们文件夹下的目录结构是一样的,分别有images和lables目录,分别存有图片和对这个图片的标注。例如

labels.cache是训练过程中的中间文件,不用管。 val下也是一样的文件目录结构。下面讲解如果生产lables和训练用的图片

标注

图片可以直接打开游戏,玩上两把然后录屏。在播放器中播放,等播放到有人物的时候暂停截图。例如我截图

截图之后放到某一个目录下。

然后下载标注软件,我这里用的是Labeling

打开刚才存有截屏的目录,而且记得将标注文件格式改成yolo

最好记得快捷键 a 上张图、 d 下张图 、w 标注。  而且记得改下他的predefined_classes.txt 文件,不然它会预加载一些用不到的类别。可以设置为自动保存,方便标注。

标注完成之后,在图片的目录下就有同名不同格式的标注文件的,将目录下的图片复制到上述的cs2/train/images文件中、而对应的标注文件 cs2/trian/lables中。 当然留一些样本给验证集,就是放一些到cs/val中,和训练集一样。

训练结果

回到vscode中,打开train.py文件,并将右下角的环境改成conda 'yolo'

然后F5运行

训练结束后会在输出窗口显示,训练结果文件在哪输出。 默认在 yolov5/runs/train/exp*  文件下,exp后面接的数字代表第几次训练。找到最大的数字的目录,里面就是结果,有很多结果的图表。最重要就是 Weights文件夹下的两个权重文件,我们使用best.pt 这个是训练结果最好的权重文件,last.pt只是最后一轮的结果。

测试

vscode 打开detect.py文件, 我这里还是创建了launch.json文件,用来传入检测参数。

可以看到best.pt我直接复制到YOLOv5目录下,所以我的权重参数--weights也指向此地址。

--source 这个参数作为检测源,这个直接使用屏幕截屏。 它会边截屏边检测。参数是 "screen 1 0 0 2560 1440" 含义是,第一个屏幕,坐标为0,0 长为2560 宽1440的区域截屏。 可以看出我的显示器是2K的。

--conf-thres 置信度过滤  我这里设置为低于0.6不返回结果

--iou-thres 可以认为是检测框能框到人物的这个坐标的精度

--max-det 是最大能检测的目标总数

--move-mouse 不要管,这个是我自己写的自动瞄准选项

--classes 表示只检测哪些目标

这个文件写好之后就可以返回detect.py文件  F5启动

然后打开游戏,晚上一把。 结束之后

此处可以按 Ctrl+C启动

当然也可以不使用Python启动这个。  可以打开conda命令行,切换到yolo环境。 直接Python detect.py -- 参数   这样启动也可以。

结束之后就可以在默认的目录找到输出的结果,一般在上述的runs/detect/exp* 目录下,这个截图的方式检测会返回一个视频。 下面是一些结果的演示

检测效果

其他任务的建议

如果想进一步操作鼠标。 在游戏普通的win32api是无法自动挪移的,建议使用pyautoti模块的鼠标部分。然后最好开窗口模式

这篇关于yolov5检测cs2中的目标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063

相关文章

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

Temu官方宣导务必将所有的点位材料进行检测-RSL资质检测

关于饰品类产品合规问题宣导: 产品法规RSL要求 RSL测试是根据REACH法规及附录17的要求进行测试。REACH法规是欧洲一项重要的法规,其中包含许多对化学物质进行限制的规定和高度关注物质。 为了确保珠宝首饰的安全性,欧盟REACH法规规定,珠宝首饰上架各大电商平台前必须进行RSLReport(欧盟禁限用化学物质检测报告)资质认证,以确保产品不含对人体有害的化学物质。 RSL-铅,

[yolov5] --- yolov5入门实战「土堆视频」

1 项目介绍及环境配置 下载yolov5 tags 5.0源码,https://github.com/ultralytics/yolov5/tree/v5.0,解压 Pycharm 中创建conda虚拟环境 激活conda虚拟环境 根据作者提供的requirements.txt文件,pip install -r requirements.txt 如果作者没有提供requirement.txt文件

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

独立按键单击检测(延时消抖+定时器扫描)

目录 独立按键简介 按键抖动 模块接线 延时消抖 Key.h Key.c 定时器扫描按键代码 Key.h Key.c main.c 思考  MultiButton按键驱动 独立按键简介 ​ 轻触按键相当于一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通与断开。  ​ 按键抖动 由于按键内部使用的是机