Yolov5_DeepSort_Pytorch复现踩坑日记

Github地址:https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch

原文写的是py3.8以上,实际上应该不用,我试了一下,py3.7,pytorch使用官方安装方法来安装,供大家参考。

我是腾讯云,用CPU环境进行的测试,但是我在自己本机电脑上也用gpu,2070显卡测试过。


接下来按步骤进行说明:

1,系统选择的是ubuntu 20版,18版也测试过。

 

2,安装anaconda,可以直接安装最新版本。

直接从官网下载,https://www.anaconda.com/products/individual

我一般选择第一个,右键复制链接,然后手动下载,再ftp传过去,或者直接用wget下载,比如:

wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh

 

3,使用ssh工具,比如putty或者mobaxterm,我很喜欢mobaxterm,功能挺好,免费版也够用了,自带sftp,官网:https://mobaxterm.mobatek.net/

到anaconda安装文件的地方,使用bash+文件名方式安装,安装方法可以参考其他人写的文章,较为简单。例如:

bash Anaconda3-2020.11-Linux-x86_64.sh

注意:这里有一个坑,就是安装完以后可能测试提示conda命令无效,重启以后也没用,也可能没事。

如果遇到上述问题,一般可以在默认的目录下,一般是/home/你的用户名这个目录下,执行source .bashrc命令,然后再执行 conda update conda来测试,一般就可以了。

 

4,接下来clone代码,官方建议执行:git clone --recurse-submodules https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch.git

而不是只用简单的git clone命令,因为下面的问题。

如果速度很慢,可以考虑用码云加速,但是注意,这个代码里面,yolov5是直接引用的,所以该目录用码云加速以后clone,或者简单的用git clone,都会出现yolov5的import错误。解决方案也很简单,找到yolov5的代码,clone或者码云加速clone到文件夹下面即可。

 

5,接下来下载两个模型文件,如果网络不好的,建议国内查找别人的百度网盘下载或者去我上传的资源中找到下载。

yolov5/weights/  目录下放yolov5权重文件,比如我用的较大的yolov5l.pt,还有其他的可以去yolov5的github上下载https://github.com/ultralytics/yolov5/releases 。

deep_sort/deep/checkpoint/ 目录下放ckpt.t7,要么去原文的谷歌网盘里下载,要么就自己百度找吧,我也上传了一份模型在csdn中备用,见这里:https://download.csdn.net/download/jayli517/16206779

 

6,创建一个虚拟环境,比如:conda create -n pytorch37 python=3.7

然后激活环境:conda activate pytorch37

安装pytorch,这个是重点,采用官网的安装方法:

选择你对应的cuda版本,这个坑更深,另说。本文先简单介绍cpu版的方法,GPU版本由于各种问题和可能性都会有,所以安装方法大家自行尝试,我在其他文档里会写一下踩坑记录。CPU版命令较为简单省事,报错概率很低。顺便一说,把下面安装代码中的cpu改成gpu就可以装gpu版了。

CPU版安装:

pip install torch==1.8.1+cpu torchvision==0.9.1+cpu torchaudio===0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

 

7,进入Yolov5_DeepSort_Pytorch的主目录下,开始安装其他依赖项,执行命令:pip install -U -r requirements.txt

 

8,通常来说大部分就安装完成了,但是有可能会漏掉一个easydict的,执行命令:pip install easydict


异常检测:

如果上面这几步报错,就比较奇怪了,需要具体问题具体分析了。

此时可以执行命令进行测试了,比如:

python track.py --weights /home/ubuntu/github/Yolov5_DeepSort_Pytorch/yolov5/weights/yolov5l.pt --source /home/ubuntu/github/video-ori/01.mp4 --output /home/ubuntu/github/video-output/

--weights 后面是我具体用的pt文件地址,你可以使用相对地址,不用非要学我用绝对地址

--source 是输入的视频文件地址

--output 是输出的视频文件目录

如果一切顺利,就可以自动开始执行了。


但是有可能你会遇到opencv的报错,参考网上的信息:

https://stackoverflow.com/questions/55313610/importerror-libgl-so-1-cannot-open-shared-object-file-no-such-file-or-directo

执行命令安装:

sudo apt install libgl1-mesa-glx
sudo apt-get install ffmpeg libsm6 libxext6  -y

之后报错消失,可以继续了。


如果你觉得解析视频速度实在太慢了,一帧一帧的受不了,可以用ffmpeg来加速,预先处理一下视频。

因为ubuntu 20版已经预置了ffmpeg,所以这里不介绍安装问题。

首先把目录结构建好,按照自己的需求来,我是:

video-ori 原始视频

video-output 输出视频

执行命令将视频抽帧截图:

ffmpeg -i 原视频 -r 1 -f image2 图片输出目录/image-%05d.jpeg

-r 1 表示每秒抽1帧

执行命令重新合成视频:

ffmpeg -i 图片输出目录/image-%05d.jpeg -vcodec mpeg4 视频输出目录/01mp4_output.mp4

然后就可以得到一个抽帧加速的视频,当然如果你代码更好,完全可以自己写py或者shell脚本一步处理。

我最终使用的命令是:

ffmpeg -i /home/ubuntu/github/video-output/01.mp4 -r 25 -b:a 32k /home/ubuntu/github/video-output/01-low.mp4

固定为每秒25帧,音频调整为32k。压缩比并不是特别大,但是可以接受。


以上是一个简单实现,Yolov5_DeepSort_Pytorch的CLI参数不少,但是没有文档详细解释,需要自己注意看。

另外,如果是在云服务器上运行,不喜欢看图片窗口老弹出来一直显示的话,在track.py文件中搜索show,注释掉cv2.imshow(p, im0) 这一行。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: yolov5_deepsort_pytorch是一种基于PyTorch框架的目标检测和跟踪算法,它结合了YOLOv5DeepSORT两种算法的优点,能够在实时视频中高效地检测和跟踪多个目标。如果您想要复现这个算法,需要掌握PyTorch框架的基本使用方法,并且了解YOLOv5DeepSORT的原理和实现方式。具体的复现步骤可以参考相关的论文和代码实现,也可以参考其他人的经验和教程。 ### 回答2: Yolov5是最近非常热门的目标检测算法,它可以在极短时间内完成大规模数据的检测任务,并且在准确率上也取得了非常不错的表现。而在这个基础上,我们还可以使用DeepSORT进行目标追踪。Yolov5+DeepSORT的结合,可以实现在实时数据场景下目标的检测和追踪,如视频监控、自动驾驶等领域。 以下是Yolov5+DeepSORT复现步骤: 1.环境配置:首先需要安装好PyTorch、NumPy、OpenCV等常用的Python包。建议使用conda或者pip安装。 2.下载代码:Github上有很多公开的Yolov5DeepSORT的代码,建议从这些仓库中下载。 3.数据预处理:需要将输入数据进行预处理,包括图像尺寸的缩放、像素均一化等操作。 4.检测模型的加载:使用Yolov5实现目标检测,并将检测结果传递给DeepSORT进行物体追踪。 5.物体追踪:这里使用DeepSORT算法进行目标追踪,将检测出来的目标和之前已经追踪到的目标进行匹配,并且根据目标的特征进行分类和更新。 6.绘制结果:最后将检测和追踪的结果用框标出来,并绘制在原始图像上。 在进行复现的过程中,还需要非常熟悉Yolov5DeepSORT的原理,对目标检测、图像处理、机器学习等领域有一定的背景知识才能完成任务。 当然,这个过程并不是一次就能成功的,很可能还需要不断地修改和优化有关参数及代码,增加训练集,进行数据增强等操作,才能够得到良好的实验效果。因此,在进行复现之前,需要有足够的耐心和实践精神。 ### 回答3: Yolov5_deepsort_pytorch是一种神经网络模型,它结合了YoloV5DeepSort算法。这个模型可以在视频中对动态物体进行实时目标检测和跟踪。复现这个模型,需要进行以下步骤: 1. 数据准备 首先,需要准备数据集。该数据集应包含视频片段以及用于训练和测试的图像及其对应的标注框。图片需要进行标准化和缩放,标注框需要进行转换。 2. 模型训练 使用准备好的数据集,我们需要训练模型。使用PyTorch框架可以很方便地构建、训练和保存深度学习模型。在这个过程中,需要选择合适的超参数,在损失函数等一系列参数上做出合适的选择。 3. 模型测试 当模型训练完成后,我们需要对模型进行测试。可以使用测试数据集来测试模型的准确性。测试结果可以评估模型的性能,并对其进行微调和优化。 4. 部署 当我们得到了可满足要求的模型以后,我们可以部署这个模型到部署环境中,如公司内部网络或云环境等。可以在python中进行部署,并使用GPU实现快速推断。 总之,复现Yolov5_deepsort_pytorch模型需要进行数据准备、模型训练、模型测试和部署等一系列步骤。在整个过程中,需要仔细处理每个步骤,特别是数据的输入和模型训练的细节问题。最终,需要评估整个模型的准确性和性能,在实际应用中得到充分验证。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jayli517

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值