目录

  • 0. yolov4-deepsort简介
  • 1. cuda环境
  • 2. 配置项目环境
    • 2.1 所需环境
    • 2.2 环境配置
  • 3. 模型权值的下载
  • 4. 运行程序
  • 5. 本人项目demo展示

0. yolov4-deepsort简介

该项目为使用YOLOv4、DeepSort和TensorFlow实现的对象跟踪。YOLOv4使用深度卷积神经网络来执行目标检测。
我们可以让YOLOv4的输出将这些对象检测输入深度排序(使用深度关联度量进行简单的在线和实时跟踪),以创建一个高度精确的对象跟踪器。
基于yolov4-deepsort可以进行一些后续的进阶任务。我在yolo+deepsort基础上进行改进,实现路面拥堵的检查,有三个功能:对ROI区域进行目标的计数;对目标车辆的行为做出预测(waitting / break in);对车辆的行车轨迹进行可视化显示。
这里先简单介绍下项目环境的搭建,使用GPU版本可以使检测速度大幅提升,本人帧率达17左右。
原始yolov4-deepsort的git资源:link.

1. cuda环境

由于要使用GPU版本的tensorflow,所以先进行cuda的安装,安装教程可以参看本人的另外一篇博客:windows下cuda10.0+cudnn的配置。cuda的版本可以根据自己需求定,安装步骤基本一致。

2. 配置项目环境

2.1 所需环境

本次项目的所需环境为:

tensorflow-gpu==2.3.0rc0
opencv-python ==4.1.1.26
lxml
tqdm
absl-py
matplotlib
easydict
pillow

2.2 环境配置

利用anaconda进行配置,当然也可以利用官方教程进行配置。
打开anaconda,创建一个名为yolo-deepsort的环境,python为3.7。


进入该环境的终端,cd到项目目录:

输入命令:`pip install -r requirements-gpu.txt
可以直接将对应txt文件中的所有库包安装,当然也可以手动pip。
这里下载速度慢的可以更改镜像源,网上有很多教程。也可以参看本人博客:解决pytorch安装过程中下载总是出错的问题中的修改镜像源章节。

安装后查看所有安装的包,可以点击anaconda里面的对应环境进行查看,也可以终端接着运行conda list:


看到所有的依赖库都安装好以后环境就搭好了。本人在第一次搭建时遇到了一些小问题,遇到问题可以自己上网查查,安装不成功的库,可以使用本地安装的方法(网络不稳定的时候可以尝试)。

3. 模型权值的下载

yolov4提供了有80种物体的识别权重模型,这些都是人家训练好的,当然如果没有自己所要识别的物品,制作自己的数据集进行训练。下载链接:link.将下载好后的模型放入data文件夹。

4. 运行程序

接着运行下面的代码。这里输入的视频可以改为自己的视频的路径,输出的视频保存路径也自己改下

# Convert darknet weights to tensorflow model
python save_model.py --model yolov4# Run yolov4 deep sort object tracker on video
python object_tracker.py --video ./data/video/test.mp4 --output ./outputs/demo.avi --model yolov4# Run yolov4 deep sort object tracker on webcam (set video flag to 0)
python object_tracker.py --video 0 --output ./outputs/webcam.avi --model yolov4



帧率在16左右,说明GPU环境设置正确,如果只有几帧那么是你的cuda环境没有配置好,重新配置。
本人利用pycharm进行运行程序,一方面可视化效果好,另一方面可以接着他的代码继续修改。打开pycharm,setting自己建好的环境。


x修改对应的路径参数即可。

右击运行。
至此,已经完成了yolov4-deepsort的运行。如果想要使用更高速的训练模型,即刚刚下载的模型,可以接着运行下面的代码,或者更改pycharm中的模型调用的位置。
下面的命令将允许您运行yolov4-tiny模型。Yolov4-tiny允许你获得一个更高的速度(FPS)的跟踪器在精度上有一点成本。确保你已经下载了小权重文件,并将其添加到“data”文件夹中,以便命令能正常工作!

# save yolov4-tiny model
python save_model.py --weights ./data/yolov4-tiny.weights --output ./checkpoints/yolov4-tiny-416 --model yolov4 --tiny# Run yolov4-tiny object tracker
python object_tracker.py --weights ./checkpoints/yolov4-tiny-416 --model yolov4 --video ./data/video/test.mp4 --output ./outputs/tiny.avi --tiny

官方运行结果展示:

5. 本人项目demo展示

下面是本人在原有基础上进行的修改。加入轨迹信息(轨迹还需优化,存在断点),计数判断,roi区域划分:
具体代码在《yolov4-deepsort目标跟踪、ROI计数、绘制轨迹》

该demo左下角记录ROI中检测框的个数,只检测车辆,当ROI里面的车辆达到一定的阈值,将对进入的车辆的行为进行判断并附上标签。视频压缩成gif受上传文件大小限制,画质不是很清楚。

场景一:

场景二:

windows下yolov4-deepsort项目tensorflowGPU版本配置+项目实战相关推荐

  1. windows下python+django+pycharm+mysql从配置到实战

    Mac 基于Python搭建Django应用框架 https://www.jianshu.com/p/b2b9bf41da4f 基于Python搭建Django后台管理系统 https://blog. ...

  2. windows下rpc框架thrift的环境配置

    windows下rpc框架thrift的环境配置 引用链接: https://www.cnblogs.com/49er/p/7193829.html 最近在弄windows下 的Facebook的rp ...

  3. Windows下SonarQube与Jenkins环境的配置使用

    Windows下SonarQube与Jenkins环境的配置使用 首先放个SonarQube官方持续化集成测试环境架构图 图中展示了SonarQube自动化环境的整合,前文根据SonarQube官方的 ...

  4. Windows下Android开发环境搭建和配置

    关于Windows下Android开发环境搭建.配置方面文章,网上一搜一堆,为方便以后参考,权且做个记录,主要关注安装过程中的注意事项.对新手提醒的是,本文介绍SDK开发Android APK环境搭建 ...

  5. WIN10下通过Anaconda安装TensorFlow-GPU版本和keras

    WIN10下通过Anaconda安装TensorFlow-GPU版本和keras 环境 win10 GTX1060 版本 TensorFlow-gpu 1.9 anaconda 5.3.1 keras ...

  6. Trac系列(1):Windows下Trac的安装与基本配置

    Windows下Trac的安装与基本配置         Trac是一个基于Web的,轻量级的项目管理工具,它使用python语言编写.在本文中,将介绍windows下安装.集成配置一个简单的Trac ...

  7. Windows下VisualSVN Server的安装与配置方法(图文)

    这篇文章主要介绍了Windows下VisualSVN Server的安装与配置方法,比较详细,需要的朋友可以参考下 VisualSVN Server是免费的,而VisualSVN是收费的.Visual ...

  8. 在windows下编译FFMPEG-最新2009版本

    转]在windows下编译FFMPEG-最新2009版本 2010-11-17 18:50 大家可以看到,此篇之前有很多个版本的"在windows下编译FFMPEG",那些都是我在 ...

  9. Windows下用CMake编译JsonCpp及配置(适合新手)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 JsonCpp是什么? JSON是一种轻量级的数据交换格式.它可以表示数字.字符串.有序的值序列 ...

最新文章

  1. 使用Xcode修改iOS项目工程名和路径名
  2. 什么是 CAS 机制?
  3. XML 需要用的空间
  4. Cloud for Customer的Inplace Edit Container
  5. Verilog_寻找最高有效位的位置
  6. 通过django 执行命令或者脚本
  7. sass编译css(转自阮一峰)
  8. 看似无聊的python小游戏 我却摸鱼上班玩了一下午!!
  9. SAP安装前应准备的事项
  10. TexWorks中添加拼写纠察
  11. Mac运行node.js连接oracle数据库报DPI-1047: Cannot locate a 64-bit Oracle Client library: “dlopen(libclntsh.dy
  12. 微信小程序 java四六级英语学习助手系统app
  13. Pix2Text (P2T) 新版发布,离Mathpix又近了一大步
  14. SQL Server密码破解工具
  15. Docker 核心技术(2)- helloworld 镜像
  16. 【学习笔记】斯坦福SCI写作课 Unit 1
  17. 多线程模拟火车站售票
  18. scala学习之scala中一些集合的常用函数
  19. 【笔记】python的传递实参:位置实参、关键字实参、默认值、等效的函数调用、避免实参错误
  20. 股票质押式回购 非担保交收 结算备付金 B股转H股

热门文章

  1. 基于tcp的协议需要设计数据校验码吗_C#与宇电温控表自定义协议通信实例
  2. python小人画爱心_使用Python画出小人发射爱心的代码
  3. A Point-Line Feature based Visual SLAM Method in Dynamic Indoor Scene
  4. MDC功能软件-归控算法介绍
  5. PyTorch 学习笔记(一):让PyTorch读取你的数据集
  6. Java 1.1.4 检测字符串是否相等
  7. MATALB中的最大和最小常量
  8. 【已解决】Windows Ink中没有便签怎么办
  9. vue改变了数据却没有自动刷新
  10. Java实现List数组的几种替代方案