当前位置:   article > 正文

YOLOv8目标跟踪环境配置笔记(完整记录一次成功)_yolov8适配python 3.8.0吗

yolov8适配python 3.8.0吗

前言

YOLOv8是基于目标检测算法YOLOv5的改进版,不仅仅可以实现目标检测,其还内置有Byte-Tracker、Bot-Tracker多目标跟踪算法。因此直接复现YOLOv8来进行这两种算法的调用是十分方便高效的。

1、配置前的环境准备

1.1 CUDA toolkit、cuDNN版本

(1)查看显卡的CUDA支持的最高版本,按住键盘Win+R打出cmd然后按住Enter键,打开命令行窗口,输入nvidia-smi

我这里最高支持的版本是12.2,后面安装的CUDA toolkit和cuDNN大版本不能超过它,(我下载的是CUDA11.6+cudnn8.4)版本。

(2) CUDA安装(11.6)

CUDA toolkit Download:CUDA Toolkit Archive | NVIDIA Developer

在CUDA网站下载对应的版本:

下载安装包:

可以在D盘新建一个文件夹CUDA11.6来放置下载好的安装包,双击进行安装。

**安装CUDA:**保持路径默认即可

在CUDA的安装路径这里,保持默认就好,默然安装在C盘(保证C盘有足够空间,防止后期编译找不到CUDA的路径)。

安装完成后:

查看环境变量是否存在:

后面如果下载了其他的CUDA版本需要切换,直接在这里的环境v11.6后面的数字改掉就可以定位到了

如果系统变量没有自动配置的话,需要我们手动配置。路径是根据前面是否自己有没有修改来指定。

**最后:**配置好环境变量后,我们检查下CUDA是否安装成功。

  • 打开cmd
  • 输入
nvcc -V 

nvcc --version

显示cuda_11.6成功安装完成!

(3)CUDNN安装(8.4)

官网下载:cuDNN Archive | NVIDIA Developer

CUDNN需要对应安装的CUDA版本

可以建立一个cudnn8.4文件夹存放下载安装包

下载完成后解压全部的文件后:

CUDA和CUDNN安装成功!!!

1.2 安装Anaconda配置虚拟环境

具体安装步骤这里不再阐述,网上教程很多,可以参考深度学习环境配置(pytorch版本)----超级无敌详细版(有手就行)

安装完一定要设置环境变量,将以下四个路径添加进Path

验证安装是否成功

conda -V

如果没有设置环境变量会报错显示conda不是内部或外部命令

下面创建conda虚拟环境

在anaconda环境下新建一个环境。可以使用windows cmd命令行(前提是配置好anaconda环境变量),当然也可以使用 Anaconda Powershell Prompt(推荐使用这种方式

YOLOv8需要3.8或以上的Python版本(我这里用的3.8版本),而且项目需要的torch版本不低于1.8

然后输入下面的命令新建一个名为yolo8的环境

  1. # 创建虚拟环境
  2. conda create -n yolov8 python=3.8.0
  3. # 激活虚拟环境(切换至这个环境)
  4. conda activate yolov8
  5. # 查看已创建的虚拟环境
  6. conda info -e

其中base是anaconda自带的基础环境,yolov8是我们自己创建的python虚拟环境

1.3 安装Pycharm编译器

具体安装过程不再阐述,教程有很多,我用的是Pycharm2018版本

2、YOLOv8下载与安装配置

2.1 下载

源码链接:https://github.com/ultralytics/ultralytics/blob/main/README.zh-CN.md

这是官网链接,但是最新更新后发现requirements.txt配置文件没了,变成了pyproject.toml不太会用,所以我没有采用这个链接

我用的链接(很多教程也是基于这个链接):https://github.com/ultralytics/ultralytics

点击下载压缩包

下载下来的样子

因为解压之后会里外会套用很多文件夹,可以创建一个yolov8文件夹,把我们主文件拿出来放在里面,我这里把解压出来的ultralytics-mian文件名改成了ultralytics

目录结构如上图所示

2.2 安装配置

(1)进入Anaconda Powershell Prompt

(2)首先激活环境

conda activate yolov8

(3)安装依赖

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

(4)具体实现步骤如下

下载yolov8必要的库

  1. # 需要先安好这个库
  2. pip install ultralytics

3、配置GPU环境

因为requirements.txt自带的torch是CPU版本的,实际用起来很慢,因此我们将其更新为对应GPU版本的,我们需要去pytorch官网找到与cuda 11.6版本对应的命令

  1. # CUDA 11.6
  2. pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

自此, GPU下YOLOv8目标跟踪、目标检测任务环境配置,全部完成。

4、下载权重与验证

下载训练模型,推荐yolov8s.pt或者yolov8n.pt,模型小,下载快,在gitee或者github下方readme里面,下载完成后,将模型放在主文件夹下

yolov8s.pt下载地址:yolov8s.pt

yolov8n.pt下载地址:yolov8n.pt

yolov8n-seg.pt(分割追踪权重):yolov8n-seg.pt

yolov8n-pose.pt(姿态追踪权重):yolov8n-pose.pt

测试(1):

使用yolov8自带经典图片进行测试:

cd进入yolov8主文件夹下,运行下面命令

yolo predict model=yolov8n.pt source='ultralytics/assets/bus.jpg'

具体步骤如下:

我的结果保存在runs\detect\predict9中,你们的看Results saved to 存放地址,结果如下图

如果出现上面图片即成功

测试(2):

接下来我们在Pycharm里进行测试

首先打开项目文件如图

刚下载好的Pycharm我们要给他配上我们的虚拟环境

运行track.py脚本测试

运行之后会报错

这是因为导包使用的相对路径导入找不到,我们改为绝对路径

  1. from .bot_sort import BOTSORT
  2. from .byte_tracker import BYTETracker

替换为

  1. from ultralytics.trackers.bot_sort import BOTSORT
  2. from ultralytics.trackers.byte_tracker import BYTETracker

即可解决,下面运行没问题

下面开始具体调用,在trackers文件夹下的README.md里有介绍用法

  1. from ultralytics import YOLO
  2. # Load an official or custom model
  3. model = YOLO("yolov8n.pt") # Load an official Detect model
  4. model = YOLO("yolov8n-seg.pt") # Load an official Segment model
  5. model = YOLO("yolov8n-pose.pt") # Load an official Pose model
  6. model = YOLO("path/to/best.pt") # Load a custom trained model
  7. # Perform tracking with the model
  8. results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True) # Tracking with default tracker
  9. results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml") # Tracking with ByteTrack tracker

新建一个py脚本,把这块代码粘过去就可以运行了,下面我们改成自己本地准备好的视频测试,视频也放在根目录下,前面有图可以看一下我方的位置

  1. from ultralytics import YOLO
  2. # Load an official or custom model#每次选一个模型就可以了
  3. model = YOLO("yolov8n.pt") # Load an official Detect model#这个是原始的轨迹追踪
  4. # model = YOLO("yolov8n-seg.pt") # Load an official Segment model#这个是基于分割追踪
  5. # model = YOLO("yolov8n-pose.pt") # Load an official Pose model#这个是基于姿态追踪
  6. # model = YOLO("path/to/best.pt") # Load a custom trained model#这个是自己训练权重放的位置
  7. model.track(source="video1.mp4", tracker="ultralytics/cfg/trackers/bytetrack.yaml", save=True, show=True)

注意:只有设置了save=True视频才会保存下来, 只有设置show=True才能看到实时检测效果

下面是运行效果:

轨迹追踪效果

分割追踪效果:

姿态追踪效果

如果想切换Byte-Tracker和Bot-Tracker,在下面修改yaml文件前的名称即可,注意路径

注意所有的路径都是在根文件夹下的,写路径是不需要再把根路径也写上去会报错,比如:

错误
ultralytics/ultralytics/cfg/trackers/bytetrack.yaml

正确

ultralytics/cfg/trackers/bytetrack.yaml

5、在配置过程中遇到的问题及解决

问题1:跑视频时运行结束后会报错

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000025ce897db40] moov atom not found

我的原因是,我的视频文件损坏了,所以没法成功检测和保存

还有博主说是路径问题

video_path = r"E:\Code\videos\1HDcut\1HD-2.MP4"

就是去掉video_path后面的r,然后把‘\’都换成‘/’。

video_path = "E:\Code/videos/1HDcut/1HD-2.MP4"

具体视自己情况而定

问题2:ModuleNotFoundError: No module named ‘lap‘ 已解决

有的包没装上,激活我们的虚拟环境

直接pip install lap即可

本文参考:

1.YOLOv8手把手教程--超级无敌详细系列

2.【深度学习之YOLO8】环境部署

3.最新YOLOv8(2023年8月版本)安装配置!

4.YOLOV8重大更新-目标跟踪

5.YoloV8目标追踪演示 轨迹追踪 分割物体追踪 姿态估计追踪

6.[mov,mp4,m4a,3gp,3g2,mj2 @ 0000025ce897db40] moov atom not found

7.ModuleNotFoundError: No module named ‘lap‘ 已解决

8.【一分钟解决】Python报错ImportError: attempted relative import with no known parent package

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/747956
推荐阅读
相关标签
  

闽ICP备14008679号