百度飞浆行人多目标跟踪笔记

2023-11-12

开源地址:

PaddleDetection/configs/mot at release/2.3 · PaddlePaddle/PaddleDetection · GitHub

百度飞浆集成了多目标跟踪的多种算法,地址:

PaddleDetection/configs/mot at release/2.3 · PaddlePaddle/PaddleDetection · GitHub

deepsort:

jde

farimot:

本人测试结果如下,后续可能继续跟踪跟进。

本机代码:运行ok:

PaddleDetection-release-2.3

环境,py37

测试入口类:

tools/infer_mot.py

测试结果:有漏检,

奇怪的地方:

如果读取的是视频文件,先用ffmpeg转为图片,然后排序,读取图片列表,

直接读取图片就可以把?

 cap = cv2.VideoCapture(self.video_file)

电脑没有安装ffmpeg,所以把程序改了一下,直接读取文件夹的图片:

    def _load_video_images(self):
        if self.frame_rate == -1:
            # if frame_rate is not set for video, use cv2.VideoCapture
            cap = cv2.VideoCapture(self.video_file)
            self.frame_rate = int(cap.get(cv2.CAP_PROP_FPS))

        extension = self.video_file.split('.')[-1]
        output_path = self.video_file.replace('.{}'.format(extension), '')
        # frames_path = video2frames(self.video_file, output_path,
        #                            self.frame_rate)
        self.video_frames = natsorted(
            glob.glob(os.path.join(output_path, '*.jpg')))

        self.video_length = len(self.video_frames)
        logger.info('Length of the video: {:d} frames.'.format(
            self.video_length))
        ct = 0
        records = []
        for image in self.video_frames:
            assert image != '' and os.path.isfile(image), \
                    "Image {} not found".format(image)
            if self.sample_num > 0 and ct >= self.sample_num:
                break
            rec = {'im_id': np.array([ct]), 'im_file': image}
            if self.keep_ori_im:
                rec.update({'keep_ori_im': 1})
            self._imid2path[ct] = image
            ct += 1
            records.append(rec)
        assert len(records) > 0, "No image file found"
        return records

改后入口类:

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import os
import sys

# add python path of PadleDetection to sys.path
parent_path = os.path.abspath(os.path.join(__file__, *(['..'] * 2)))
sys.path.insert(0, parent_path)

import warnings

warnings.filterwarnings('ignore')

import paddle
from paddle.distributed import ParallelEnv
from ppdet.core.workspace import load_config, merge_config
from ppdet.engine import Tracker
from ppdet.utils.check import check_gpu, check_version, check_config
from ppdet.utils.cli import ArgsParser

from ppdet.utils.logger import setup_logger

logger = setup_logger('train')

def parse_args():
    parser = ArgsParser()
    parser.add_argument('--config', type=str, default="../configs/mot/fairmot/fairmot_dla34_30e_576x320.yml", help='Video name for tracking.')
    parser.add_argument('--video_file', type=str, default="1.mp4", help='Video name for tracking.')
    parser.add_argument('--frame_rate', type=int, default=-1, help='Video frame rate for tracking.')
    parser.add_argument("--image_dir", type=str, default=None, help="Directory for images to perform inference on.")
    parser.add_argument("--det_results_dir", type=str, default='', help="Directory name for detection results.")
    parser.add_argument('--output_dir', type=str, default='output', help='Directory name for output tracking results.')
    parser.add_argument('--save_images', default=False, help='Save tracking results (image).')
    parser.add_argument('--save_videos', default=False, help='Save tracking results (video).')
    parser.add_argument('--show_image', default=True, help='Show tracking results (image).')
    parser.add_argument('--scaled', type=bool, default=False, help="Whether coords after detector outputs are scaled, False in JDE YOLOv3 "
                                                                   "True in general detector.")
    parser.add_argument("--draw_threshold", type=float, default=0.5, help="Threshold to reserve the result for visualization.")
    args = parser.parse_args()
    return args


def run(FLAGS, cfg):
    # build Tracker
    tracker = Tracker(cfg, mode='test')

    # load weights
    if cfg.architecture in ['DeepSORT']:
        if cfg.det_weights != 'None':
            tracker.load_weights_sde(cfg.det_weights, cfg.reid_weights)
        else:
            tracker.load_weights_sde(None, cfg.reid_weights)
    else:
        tracker.load_weights_jde(cfg.weights)

    # inference
    tracker.mot_predict(video_file=FLAGS.video_file, frame_rate=FLAGS.frame_rate, image_dir=FLAGS.image_dir, data_type=cfg.metric.lower(), model_type=cfg.architecture, output_dir=FLAGS.output_dir,
        save_images=FLAGS.save_images, save_videos=FLAGS.save_videos, show_image=FLAGS.show_image, scaled=FLAGS.scaled, det_results_dir=FLAGS.det_results_dir, draw_threshold=FLAGS.draw_threshold)

if __name__ == '__main__':
    FLAGS = parse_args()
    cfg = load_config(FLAGS.config)
    merge_config(FLAGS.opt)

    check_config(cfg)
    check_gpu(cfg.use_gpu)
    check_version()

    place = 'gpu:{}'.format(ParallelEnv().dev_id) if cfg.use_gpu else 'cpu'
    place = paddle.set_device(place)
    run(FLAGS, cfg)

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

百度飞浆行人多目标跟踪笔记 的相关文章

  • 把自己的博客推荐到百度、Google等主要搜索引擎

    谷歌搜索自己的博客 搜索不到 可以設置公開 添加記錄 會比較方便 如果不把你的博客提交到各大搜索引擎中 它们一般是不会收录你的博客的 你可以先尝试一下看看能不能在百度搜到你的博客吧 如果搜不到的话说明你的博客还没有被百度收录 那么怎么才能被
  • 百度云的sugar大屏模板1

    1 企业实时销售数据1 2 企业实时销售数据2 3 电商618大数据 4 实时数据分析 5 某平台智能监控系统
  • 超详细!百度富媒体检索比对系统的关键技术

    导读 百度富媒体检索比对系统是一套基于 Ann approximate nearest neighbor 检索和内容特征比对技术 旨在提供针对图像 音频 视频等多媒体资源的相似检索系统 包括离线训练 建库 在线特征提取 检索 目前百度富媒体
  • GOTURN——Learning to Track at 100 FPS with Deep Regression Networks

    文章的题目叫 Learning to Track at 100 FPS with Deep Regression Networks 算法简称 GOTURN Generic Object Tracking Using Regression N
  • (海伦公式)已知三角形三条边长,求面积

    海伦公式 已知三角形三条边长 求面积 海伦公式 S p p a p b p c 其中p是三角形的周长的一半p a b c 2 以下转自百度百科 海伦公式海又译作希伦公式 海龙公式 希罗公式 海伦 秦九韶公式 传说是古代的叙拉古国王 希伦 H
  • Java6.0中Comparable接口与Comparator接口详解 下

    Part IV 说到现在 读者应该对Comparable接口有了大概的了解 但是为什么又要有一个Comparator接口呢 难道Java的开发者都吃饱撑着没事做吗 再谈Comparator接口之前 大家应该先了解一个叫 策略模式 的东东 一
  • 在页面中调用搜索引擎

    今天突然想到 在自己的页面中调用google 百度这样强大的搜索引擎想必很酷 于是上网查了资料 没想到就几行代码的事 下面是调用百度的一个代码段 div div
  • 开源网盘空间本地挂载神器,挂载百度、阿里云盘、OneDrive等云盘到本地工具-AList

    开源网盘空间本地挂载神器 挂载百度 阿里云盘 OneDrive等云盘到本地工具 AList 什么是Alist 一个支持多种存储 支持网页浏览和 WebDAV 的文件列表程序 由 gin 和 Solidjs 驱动 AList 是一款免费开源支
  • HTML5录音并调用百度语音识别

    HTML5录音借鉴的网上的代码 但是下载下来却无法用 查阅了好多资料 终于在国外某网站上找到原因 原来是js函数废弃了 替换为新的js函数名即可 HTML5录音的代码 http www it165 net design html 20140
  • 飞桨AI课程干货--带你开启新世界的大门!

    笔者近期体验了免费的 百度深度学习7日打卡第六期 Python小白逆袭大神 训练营 课程每天都有对应的直播 由中科院团队负责教学 每天有对应的作业贯穿其中 带你全程体验百度AI开放平台 AI Studio 飞桨PaddlePaddle Ea
  • 百度搜索 抓取真实url

    现在的百度搜索url都是加密的 不是真实url 比如搜索豆瓣 复制链接地址得到的url如下 https www baidu com link url vsdsl04PUGwYT udMGNDBSgQ4D62grmcfm8fM4LVjYLVV
  • SiamMask 测试程序分析

    之前分析了 DaSiamRPN 的测试代码 侧重于执行细节 到了 SiamMask 似乎主题应该有所升华 故事的明线为跟踪器构成 暗线为训练流图 相比于 DaSiamRPN SiamMask 不仅网络结构是现代化的 系统设计也更具匠心 这便
  • Qt+百度AI实现人脸识别之人脸检测

    文章目录 简单需求 Demo运行结果 百度AI人脸识别接入 为什么使用百度AI接口 接入步骤 如何获取Access Token Qt软件开发 人脸检测Qt编程步骤 知识点 网络编程 get put post请求方式的区别简述 POST 提交
  • 基于MyApps低代码平台生成的CRM实现客户的高效管理

    随着市场的发展 客户开始变得越来越重要 因此很多公司开始追求客户数量用尽浑身解数 可盲目发展 一股脑的想要扩大客户数量 也导致企业无法对客户进行有效的管理 不可避免地出现以下问题 1 没有对新客户做好分析 也疏于老客户的管理 导致客户流失的
  • Flutter 第三方SDK集成(友盟统计,极光推送,百度地图)

    友盟统计 Flutter SDK集成 首先创建一个项目 接着去友盟工作台添加应用 添加成功后会得到AppKey 集成友盟 Flutter SDK 下载Demo Demo地址 https developer umeng com api sdk
  • 2022年,能让你月入过万的5个副业,不信试试

    2021年已经过去了 不管过去的一年 是成功还是失败 一切都过去了 新的一年要开始做新的规划 当务之急 搞钱最为重要 01 自媒体写作 以前我总是觉得会写文章不算什么技能 工作之后才发现 文字功底好优势好大 无论是工作还是做副业 发现会写文
  • 再见,百度网盘!新 60MB/s!

    点击上方卡片 关注回复 青春网盘 即可获得下载链接 近些年 大家苦百度网盘久矣 非会员的限速导致下载速度大多停留再KB为单位 这个问题一直被人吐槽 有关部门规定网盘不许无底线限速 因此百度给出的整改措施是 推出百度网盘青春版 免费用户将享受
  • 2016视觉目标跟踪总结

    最近学习视觉目标跟踪算法 主要了解了几个主流的跟踪算法 kcf stc dsst 算法原理网上很多 这里就不再赘述 只对跟踪效果做了测试记录 Kcf 全名Kernelized Correlation Filters 其中hog特征用的fho
  • Air Video

    http baike baidu com view 8552809 htm 1 百度首页 登录注册 新闻网页贴吧知道MP3图片视频地图百科文库 帮助 首页 自然 文化 地理 历史 生活 社会 艺术 人物 经济 科技 体育 图片 数字博物馆
  • 这座城市引领大模型浪潮!80余个AI大模型,一半集结在这里!

    刚刚结束的2023全球数字经济大会上 人工智能高峰论坛掀起了一股热潮 大型模型的发展和应用成为了会议的亮点 而作为这次盛会的主办方之一 北京市已经成为了这场人工智能革命的领先力量 作为人工智能产业的引领者 北京不负众望 国内已有80余个大型

随机推荐

  • Python 有序字典

    Python OrderedDict 是一个dict维护项目插入顺序的子类 当我们迭代 OrderedDict 时 项目将按照插入的顺序返回 常规字典不跟踪插入顺序 因此 当对其进行迭代时 项目会以任意顺序返回 当我们想要确保项目按照插入顺
  • 代理设计模式

    代理设计模式是结构设计模式之一 在我看来也是最容易理解的模式之一 代理设计模式 Proxy design pattern intent according to GoF is Provide a surrogate or placehold
  • 如何在 Ubuntu 16.04 上使用 RVM 安装 Ruby on Rails

    介绍 Ruby on Rails 是最受希望创建网站和 Web 应用程序的开发人员欢迎的应用程序堆栈之一 Ruby 编程语言与 Rails 开发框架相结合 使应用程序开发变得简单 您可以使用命令行工具轻松安装 Ruby 和 RailsRVM
  • C/C++中二叉树的高度

    二叉树的高度定义为任何叶节点距根节点的最大深度 即从根节点到任意叶子节点的最长路径的长度 让我们考虑下面的二叉树 Binary Tree Ht 由于最大深度对应的叶子节点为40 and 50 为了求出高度 我们只需求出从根节点到这两个节点之
  • 如何在 Ubuntu 22.04 上安装和配置 Ansible

    介绍 配置管理系统旨在简化管理员和运营团队控制大量服务器的过程 它们允许您从一个中心位置以自动化方式控制许多不同的系统 虽然有许多流行的配置管理工具可用于 Linux 系统 例如Chef and Puppet 这些通常比许多人想要或需要的更
  • 了解 R 中的plot() 函数 - 图形绘制基础知识

    在本教程中 让我们首先了解 R 中使用plot 函数的基础知识 R 语言以其精美的图形而闻名 它具有丰富的函数来构建和格式化任何类型的图形以及plot 函数族之一可以帮助我们构建这些函数 R 中的plot 函数不是单个定义的函数 而是一系列
  • 如何在 Ubuntu 14.04 上安装 Tinc 并设置基本 VPN

    介绍 在本教程中 我们将介绍如何使用 Tinc 一个开源虚拟专用网络 VPN 守护程序 来创建一个安全的 VPN 您的服务器可以在该 VPN 上进行通信 就像在本地网络上一样 我们还将演示如何使用 Tinc 建立通往专用网络的安全隧道 我们
  • 如何使用 Python WebSSH 从浏览器连接到终端

    介绍 通常 您使用终端中的命令行应用程序或包含 SSH 客户端的终端仿真器软件连接到 SSH 服务器 一些工具 例如 Python 的WebSSH 可以通过 SSH 连接并直接在 Web 浏览器中运行终端 这在许多情况下都很有用 当以具有视
  • 在 Ubuntu 18.04 上使用 Nginx 安装 WordPress

    WordPress是最受欢迎的开源内容管理系统 CMS 之一 与 Drupal 或 Joomla 等其他 CMS 相比 拥有高达 60 的市场份额 WordPress 可用于开发任何类型的网站 无论是博客 小型企业还是大型企业 凭借其免费和
  • Java中的模板方法设计模式

    模板方法是行为设计模式 模板方法设计模式用于创建方法存根并将某些实现步骤推迟到子类 模板方法设计模式 模板方法定义了执行算法的步骤 并且它可以提供可能对所有或某些子类通用的默认实现 让我们通过一个例子来理解这个模式 假设我们想提供一种建造房
  • 如何在虚拟专用服务器上配置 Nginx Web 服务器

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • Python 3 中使用 pandas 和 Jupyter Notebook 进行数据分析和可视化

    介绍 蟒蛇pandas包用于数据操作和分析 旨在让您以直观的方式处理标记数据或关系数据 The pandas软件包提供了电子表格功能 但由于您使用的是 Python 因此它比传统的图形电子表格程序更快 更高效 在本教程中 我们将介绍如何设置
  • 如何使用 Nginx 创建临时和永久重定向

    介绍 HTTP重定向是将一个域或地址指向另一个域或地址的方法 有几种不同类型的重定向 每种重定向对于客户端浏览器来说都有不同的含义 两种最常见的类型是临时重定向和永久重定向 临时重定向 响应状态码302 找到 如果临时需要从不同位置提供 U
  • 如何在 Ubuntu 12.04 LTS 上设置 nginx 虚拟主机(服务器块)

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • Hibernate 多对多映射 - 连接表

    今天我们将研究Hibernate 多对多映射使用 XML 和注释配置 之前我们研究过如何实施一对一 and 一对多映射在休眠状态下 休眠多对多 多对多映射通常在数据库中使用连接表 例如我们可以有Cart and Item表和Cart Ite
  • 春季面试问题及解答

    我发了很多帖春季教程最近 这篇文章将帮助您解决 Spring 面试问题 详细解释核心概念 Spring框架是最流行的 Web 应用程序 Java EE 框架之一 依赖注入面向方面编程是 Spring 框架的核心 如果你擅长 Spring 框
  • 运算符

    运算元 运算符应用的对象 1 2 3 1 2就是运算元 一元运算符 只有一个运算元的运算符 var a 1 a a 表达式 由运算符和变量 常量组成的式子 a 1 1 2 3 5 5 4 a b c d 常见的数学运算符 指数 多个数字和字
  • 电子科技大学软件工程期末复习笔记(三):需求分析

    目录 前言 重点一览 需求分析 需求的定义 需求的特性 功能性需求与非功能性需求 需求分析的四个步骤 结构化需求分析方法 结构化需求分析建模的核心 围绕该核心建立的三种图 绘制数据流图 重点 绘制数据流图实例 面向对象分析 面向对象分析的三
  • 网络中的注意力机制-CNN attention

    网络中的注意力机制 CNN attention 前言 网络结构 SEnet CBAM GSoP Net AA Net ECA Net 前言 Attention机制就是加权 目前实现形式主要包括三个方面 CNN Attention 图像 RN
  • 百度飞浆行人多目标跟踪笔记

    开源地址 PaddleDetection configs mot at release 2 3 PaddlePaddle PaddleDetection GitHub 百度飞浆集成了多目标跟踪的多种算法 地址 PaddleDetection