yolo目标检测和姿态识别和目标追踪

时间:2024-10-25 19:13:37

要检测摄像头画面中有多少人,人一排排坐着,像教室那样。由于摄像头高度和角度的原因,有的人会被遮挡。

yolo v5

首先需要下载yolo v5官方代码,可以克隆或下载主分支的代码,或者下载release中发布的。

简单说一下环境搭建

1.创建虚拟环境。

2.在系统中安装CUDA和cuDNN,参考链接1,参考链接2,参考链接3,有的文章说需要装,有的文章说不装也行,理由是后面虚拟环境中会自动装上,我是装了。NVIDIA控制面板中显示的版本,是你目前支持的最高版本,安装小于等于它的CUDA,也可以用你的显卡型号去搜索应该安装哪个版本。装好后可以看一下已安装的版本,参考链接4。

3.在虚拟环境中安装对应版本的pytorch,以GPU版为例,旧版可以在这里下载。下载慢的话可以从终端中显示的下载链接,复制到迅雷中手动下载,也可以从这个官方地址手动下载,然后手动安装。

4.在requirements.txt中注释掉torch和torchvision,因为上一步已经装过了,再pip install -r requirements.txt

5.切换到刚创建的虚拟环境,测试代码调用CUDA是否正常

import torch

print("CUDA available:", torch.cuda.is_available())  # 检查CUDA是否可用
print("CUDA device count:", torch.cuda.device_count())  # 获取CUDA设备数量
print("Current CUDA device:", torch.cuda.current_device())  # 获取当前CUDA设备的索引
print("CUDA device name:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "No CUDA device")  # 获取当前CUDA设备的名称

# 打印每个CUDA设备的信息
for i in range(torch.cuda.device_count()):
    print(f"Device {i}: {torch.cuda.get_device_name(i)}")

推理

在代码的根目录中新建weights文件夹,再在readme或release中下载官方训练好的权重文件,如yolov5s.pt,放入weights文件夹。

官方代码中给了两个测试图片,分别是/data/images/bus.jpg和/data/images/zidane.jpg

终端中进入代码根目录,分别执行下面两条代码,一个一个执行

python detect.py --weights ./weights/yolov5s.pt --source ./data/images/bus.jpg

python detect.py --weights ./weights/yolov5s.pt --source ./data/images/zidane.jpg

 

 

如果你自己的图片的结果不好,可以基于刚才下载的权重文件,继续训练。 

参考链接

【手把手带你实战YOLOv5-入门篇】YOLOv5 环境安装(重置版)_哔哩哔哩_bilibili

【干货】两小时带你训练和使用yolov5,yolov5详细教学,yolov5环境配置,2024年_哔哩哔哩_bilibili

未完待续