基于深度学习的视频检测(三) 目标跟踪

2023-05-16

搭建环境

Ubuntu16.04+CUDA9+cudnn7+python3.5+源码编译Tensorflow1.4+opencv3.3


基于 darkflow (yolo-v2)和 sort/deep_sort 实现目标检测与追踪

Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow

安装依赖

#sort
$sudo pip install numba
$sudo pip install matplotlib
$sudo apt-get install python-tk
$sudo pip install scikit-image
$sudo pip install filterpy
$sudo pip install sklean

#dark_sort
$sudo pip install Cython
$sudo pip install scipy
$sudo pip install sklean

配置环境

$git clone https://github.com/bendidi/Tracking-with-darkflow.git
$git submodule update --init --recursive
$cd darkflow/
$python setup.py build_ext --inplace

在darkflow下新建bin目录

$mkdir bin
$cd bin
$wget https://pjreddie.com/media/files/yolo.weights #获取yolo-v2训练好的权重用于检测

你可以在 yolo 官网 下载配置文件和训练权重。

$cd ../..
$cd darksort/

下载 resource压缩包并解压至 darksort/

链接(需要翻墙且速度较慢,300多M)


配置参数

from darkflow.darkflow.defaults import argHandler #Import the default arguments
import os
from darkflow.darkflow.net.build import TFNet


FLAGS = argHandler()
FLAGS.setDefaults()

FLAGS.demo = "camera" # 你需要检测的视频文件 默认为你的摄像头 "camera"
FLAGS.model = "darkflow/cfg/yolo.cfg" # tensorflow model
FLAGS.load = "darkflow/bin/yolo.weights" # tensorflow weights
# FLAGS.pbLoad = "tiny-yolo-voc-traffic.pb" # tensorflow model
# FLAGS.metaLoad = "tiny-yolo-voc-traffic.meta" # tensorflow weights
FLAGS.threshold = 0.7 # threshold of decetion confidance (detection if confidance > threshold )
FLAGS.gpu = 0.8 #how much of the GPU to use (between 0 and 1) 0 means use cpu
FLAGS.track = True # 置为 True 表示启用目标追踪, False 表示仅启用目标检测
#FLAGS.trackObj = ['Bicyclist','Pedestrian','Skateboarder','Cart','Car','Bus'] # the object to be tracked 
FLAGS.trackObj = ["person"]
FLAGS.saveVideo = True  #是否保存检测后的视频文件到当前目录
FLAGS.BK_MOG = True # activate background substraction using cv2 MOG substraction,
                        #to help in worst case scenarion when YOLO cannor predict(able to detect mouvement, it's not ideal but well)
                        # helps only when number of detection < 3, as it is still better than no detection.
FLAGS.tracker = "deep_sort" # wich algorithm to use for tracking deep_sort/sort (NOTE : deep_sort only trained for people detection )
FLAGS.skip = 0 # how many frames to skipp between each detection to speed up the network
FLAGS.csv = False #whether to write csv file or not(only when tracking is set to True)
FLAGS.display = True # display the tracking or not

tfnet = TFNet(FLAGS)

tfnet.camera()
exit('Demo stopped, exit.')

如果你没有用于测试的视频文件,你可以获取 MOT数据集 并下载到本地。


开始

$python run.py

这里写图片描述

如果没有出现错误,你可以顺利完成对自己视频文件中的行人追踪。


下一节讲解 darkflow 和 sort,deep_sort。

基于深度学习的视频检测(四)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于深度学习的视频检测(三) 目标跟踪 的相关文章

随机推荐

  • ERROR: Cannot uninstall ‘xxx‘. It is a distutils installed project and thus we cannot accurately det

    ERROR Cannot uninstall TBB It is a distutils installed project and thus we cannot accurately determine which files belon
  • python装饰器的使用方法

    0 前言 装饰器在 python 中使用的频率非常高 xff0c 它可以在不改动原有函数的基础上对其进行增强功能 下面主要是介绍装饰器的各种用法 xff0c 并理解其运行过程 1 使用 1 1 在函数上添加装饰器 decro 是一个装饰器函
  • 【Linux operation 46】Centos 7.9中安装使用nmap

    1 nmap 介绍 nmap xff08 Network Mapper xff09 是一个开源的网络探测和安全扫描程序 nmap 的设计目标是快速地扫描大型网络 xff0c 当然用它扫描单个主机也没有问题 nmap 以新颖的方式使用原始 I
  • Nginx配置ssl证书

    1 下载证书 在ssl证书管理界面下载对应于Nginx的证书 下载的Nginx证书压缩文件解压后包含 xff1a pem xff1a 证书文件 PEM文件的扩展名为CRT格式 key xff1a 证书的密钥文件 申请证书时如果未选择自动创建
  • 0009基于51单片机智能门禁系统设计

    资料下载地址 单片机原理教程 初级 xff08 视频 xff0c 源仿真源代码 xff09 功能 60 可输入密码进行解锁 可以对IC卡进行注册或注销 可用已注册的IC卡解锁 可实现液晶显示当前时间 密码连续输错三次时能强制退出并报警 具有
  • 基于openstreetmap数据的SUMO路网生成路线

    一 一步到位 xff1a 基于SUMO自带工具smWebWizard py 使用SUMO自带的osmWebWizard py脚本 xff08 sumo tools xff09 进行下载 xff0c 脚本执行后会打开一个操作网页 xff0c
  • STM32烧写一次程序后,再次烧写识别不到单片机

    STM32cubeMX生成的程序 xff0c 编译后烧录一次后 xff0c 在次烧录会发现识别不到单片机了 xff0c 解决方案 xff1a 在STM32cubeMX工程中的SYS中 xff0c Debug中选择Serial Wire 使能
  • 百度超级链学院开课啦!第一讲教你《如何快速建链》

    百度超级链Xuperchain开源之后 xff0c 我们感受到了开发者伙伴们的热情关注 xff0c 其中有不少朋友提到希望进一步了解百度超级链网络的搭建方法 今天 xff0c 百度超级链小X姐姐和百度资深研发工程师静姐姐 xff0c 为大家
  • centos7操作/关闭防火墙

    前言 xff1a 测试环境部署不同端口的服务 xff0c 需要频繁使用防火墙放行端口 xff0c 比较麻烦 xff0c 所以需要彻底关闭防火墙 xff0c 整理了以下命令 xff0c 提供使用 systemctl status firewa
  • [kubernates]kube-flannel-ds 一直 CrashLoopBackOff

    使用 Kubeadm 安装 K8s 集群 xff0c 在安装 flannel 网络插件后 xff0c 发现 kube flannel ds 一直处于 CrashLoopBackOff 状态 xff1a span class token pu
  • Bottom-up And Top-down

    Bottom up 自下而上的处理可以理解为 xff1a 将感应器结果作为输入 xff0c 也就是激励 因此自下而上可以被描述为是数据驱动的 例如 xff0c 在一个人的花园正中有一朵花儿 xff0c 这个花儿的视觉和所有的激励信息都从视网
  • pyqt5在statusbar中不断的刷新显示不同的信息

    在PYQT5中不断的显示新的信息 需求 xff1a 需要在statusbar 上不断的显示新的测试数据 现在在测试例子中 xff0c 数据由numpy生成 总结如下 xff1a span class token comment coding
  • 如何在VS下调试自己写的dll

    一 准备资料 1 qt写的应用程序 test pro xff0c 编译程序可执行文件test exe 2 qt写的动态库程序 dll pro 二 调试步骤 1 用vs打开dll pro 2 dll工程右键属性如下图所示修改 3 编译运行dl
  • 通俗理解网络架构搜索(NAS)

    什么是NAS 我们假设模型必须是一个三层的全连接神经网络 xff08 一个输入层 一个隐层 一个输出层 xff09 xff0c 隐层可以有不同的激活函数和节点个数 xff0c 假设激活函数必须是relu或sigmoid中的一种 xff0c
  • GDB 的进入和退出

    进入和退出GDB 本节讨论如何启动和退出GDB 主要包括 xff1a 输入 39 gdb 进入GDB调试器输入quit或者按下Ctrl d退出调用GDB xff1a 如何启动GDB退出GDB xff1a 如何退出GDBShell脚本命令 x
  • OpenGL 矩阵变换GLM库的使用

    GLM和MVP矩阵操作速记 连续工作15小时 xff0c 累了 xff0c 睡觉 include glm glm hpp include glm gtc matrix transform hpp 若未特别说明 xff0c 以下示例均假设矩阵
  • 通俗理解RNN

    全连接神经网络和卷积神经网络他们都只能单独的取处理一个个的输入 xff0c 前一个输入和后一个输入是完全没有关系的 但是 xff0c 某些任务需要能够更好的处理序列的信息 xff0c 即前面的输入和后面的输入是有关系的 比如 xff0c 当
  • 基于深度学习的视频检测(一)

    一 简介 图像目标检测任务在过去几年深度学习的发展背景下取得了巨大的进展 xff0c 检测性能得到明显提升 但在视频监控 车辆辅助驾驶等领域 xff0c 基于视频的目标检测有着更为广泛的需求 由于视频中存在运动模糊 xff0c 遮挡 xff
  • 硬核解读 | 一篇文章看透百度XuperChain系统架构

    本期 百度超级链学院 邀请来资深研发工程师 xff0c 为各位开发者带来超硬核解读 xff0c 揭秘百度XuperChain系统架构到底是怎样的 xff01 背景 百度XuperChain在2019年5月底正式宣布开源 在开源后很快获得了开
  • 基于深度学习的视频检测(三) 目标跟踪

    搭建环境 Ubuntu16 04 43 CUDA9 43 cudnn7 43 python3 5 43 源码编译Tensorflow1 4 43 opencv3 3 基于 darkflow yolo v2 和 sort deep sort