当前位置: 首页 > news >正文

密集场景下的行人跟踪替代算法,头部跟踪算法 | CVPR 2021

一个不知名大学生,江湖人称菜狗
original author: Jacky Li

Email : 3435673055@qq.com

 Time of completion:2023.4.8
Last edited: 2023.4.8

目录

摘要

主要内容

结果

这篇文章是CVPR 2021 的最新论文,文章的标题:

文章的主要内容是提出了一种行人跟踪的替代算法,尝试跟踪行人中最清晰可见的部位(头部)来代替跟踪人体,因为人体存在严重的遮挡现象。同时贡献了一个新的数据集  Crowd of Heads Dataset (CroHD) ,并且提出了一个新的评价跟踪器的指标  IDEucl 。

在活动识别、异常检测、机器人导航、视觉监控、安全规划等领域有着广泛的应用。

摘要

在拥挤的视频序列中跟踪人是视觉场景理解的重要组成部分。不断增加的人群密度挑战了人类的可见度,限制了现有行人跟踪器对更高人群密度的可扩展性。为此,我们提出用人头群数据集(Crowd of Heads Dataset,CroHD)恢复人头跟踪,该数据集由9个11463帧的序列组成,包含2276838个人头和5230个在不同场景中注释的轨迹。在评价方面,我们提出了一个新的指标IDEucl来衡量一个算法在图像坐标空间中保持最长距离唯一身份的有效性,从而建立了行人拥挤运动与跟踪算法性能之间的对应关系。此外,我们还提出了一种新的头部检测器HeadHunter,它是为拥挤场景中的小头部检测而设计的。我们扩展了一个粒子滤波和基于颜色直方图的头部跟踪再识别模块的HeadHunter。为了建立一个强大的基线,我们将我们的跟踪器与CroHD上现有的最先进的行人跟踪器进行了比较,并展示了其优越性,特别是在保持身份的跟踪指标方面。我们相信,我们的研究成果将有助于在密集人群中进行行人追踪,因为我们有一个轻便的头部探测器和一个能有效保存身份的跟踪器。

主要内容

在这项工作中,提出了一种在密集人群中进行跟踪的替代方法,通过视频最明显的部位来跟踪行人,即头部。不断增加的人群密度,对人的能见度来说是个挑战。

将现有的行人跟踪器的可拓展性,由于了更高人群密度中的遮挡问题,大大降低了目标检测器的性能。(存在的问题

为了应对这些挑战,同时在拥挤的人群环境中有效跟踪人,作者重新思考了多目标跟踪任务,通过清晰可见的部位来跟踪人类(解决方案

为此,我们提出了一个新的数据集。crow hd crowd of heads 数据集,是由标签的行人头部组成,用于跟踪分布在五个场景中在不同照明环境下的全高清分辨率密集人群(解决方案

而现有的跟踪是跟踪算法的有说服力的性能指标,他们没有量化跟踪器能够在图像坐标空间中保留身份的真实情况的比例存在的问题。为了弥补这一差距,我们提出 IDEucl 一个度量标准(解决方案该度量基于它在图像坐标空间中保持一致身份的效率,为了直观地理解我们的指标,请考虑上面显示的示例,图中两个跟踪器 a 和 b 计算相同ground truth 轨迹的不同身份。

跟踪器 a 在前 150 帧中提交了三个身份切换,而另一方面,跟踪器 b 在前 150 帧保持一致的身份,但在后 150 帧中提交了三个身份切换。然而,现有的指标报告了,两个跟踪器的分数相同,因此无法区分。它们作为我们提议的 ide ucl 措施 ,显示了基于图像坐标空间y轴上中行进距离的跟踪器,它能够区分两个跟踪器并报告跟踪器 a 的分数为 0.3,跟踪器 b 的分数为 0.67(验证猜想)。

作为补充,我们在crow hd 上开发了一个头部检测器baseline,称为HeadHunter,它更适合在拥挤的人群中进行头部检测。HeadHunter是一个端到端的 two-stage 具有三个功能特点的检测器(解决方案。首先它使用特征金字塔网络在多个尺度上提取特征,使用 resnet 50 作为backbone。图像中外貌和头部是同质的,并且经常在拥挤的场景中像无关紧要对象(通常是背景),因此我们增加了一个每个单独的 fpns 之上的context-sensitive prediction module,因为检测行人头部是检测许多小尺寸的问题,相邻放置的目标,我们在特征上使用转置卷积,跨越所有金字塔层级以提升每个特征图的空间分辨率。最后,我们使用带区域提议网络(rpn)的faster rcnn 头,rpn 生成目标提议(object proposals),而回归和分类头每个分别提供位置偏移和置信度分数,通过三个主要组件的简单组装,我们的头部检测器实现了scut head 数据集的state-of-the-art 结果。

本文采用粒子滤波框架和基于颜色直方图的HeadHunter Re-ID 模块对猎头进行扩展,HeadHunter的工作原理可以概括为四个主要步骤

  • 从 HeadHunter 中提取特征

  • 从之前的视频帧中回归和预测部位的位置

  • Re-ID:基于颜色直方图的匹配

  • 初始化新的检测

首先从前一帧初始化的headhunter轨迹中提取给定帧的特征,然后基于运动模型进行回归,并在新的帧中,根据它们的重要度权重估计它们的位置,然后使用基于颜色直方图的re-identification来最小化身份切换,最后对于没有粒子匹配的建议,在当前帧中初始化新的检测

结果

  • 在CroHD和MOTChallenge之间对比相同的序列

  • ours 是在CroHD上评估,而others 实在MOTChallenge上评估

  • s-MOTA , s-IDF1, s-MT:由于各自检测器的MODA导致各自的得分尺度不一致

  • 我们的方法大大优于其他方法

我们讨论了我们工作中最有趣的结果头部跟踪器和全身跟踪器之间的比较,我们在CroHD和MOTChallenge数据集之间对比相同的序列,相同的序列确保跟踪器在场景中相同行人的全身和头部边界框上进行评估为了进行比较,我们评估了 HeadHunter t在CroHD数据集 ground truth 上的表现,同时评估了mott challenge数据集ground truth 上公布的最新方法,因为我们使用了与其他方法不同的目标探测器。性能指标之间的直接比较是不公平的,因此对于每个序列,我们测量了跟踪得分相对于他们的目标探测器得分,以获得我们的方法大大优于其他方法,表明跟踪头部检测更适合于跟踪环境中涉及行人密度高。

相关文章:

密集场景下的行人跟踪替代算法,头部跟踪算法 | CVPR 2021

一个不知名大学生,江湖人称菜狗 original author: Jacky LiEmail : 3435673055qq.com Time of completion:2023.4.8 Last edited: 2023.4.8 目录 摘要 主要内容 结果 这篇文章是CVPR 2021 的最新论文,文章的标题: 文章的主要内…...

Matlab与ROS(1/2)---服务端和客户端数据通信(五)

0. 简介 在前几讲我们讲了Matlab中的Message以及Topic的相关知识。而ROS主要支持的通信机制还有服务这一类。服务通过允许请求以及响应的通信方式,来给整个系统完成更紧密的耦合。服务客户端向服务服务器发送请求消息并等待响应。服务器将使用请求中的数据构造响应…...

数字化转型的避坑指南:细说数字化转型十二大坑

随着信息技术的快速发展,数字化转型已经成为许多企业发展的必经之路。然而,数字化转型过程中也存在许多坑,如果不谨慎处理,就可能导致企业陷入困境。本文将细说数字化转型的十二大坑,并提供相应的避坑指南。 1、不了解…...

pt05Encapsulationinherit

Encapsulation &inherit 封装继承 封装 向类外提供必要的功能,隐藏实现的细节, 代码可读性更高优势:简化编程,使用者不必了解具体的实现细节,只需要调用对外提供的功能。私有成员:作用:无需向类外提供…...

面向对象编程(基础)9:封装性(encapsulation)

目录 9.1 为什么需要封装? 而“高内聚,低耦合”的体现之一: 9.2 何为封装性? 9.3 Java如何实现数据封装 9.4 封装性的体现 9.4.1 成员变量/属性私有化 实现步骤: 成员变量封装的好处: 9.4.2 私有化…...

fate-serving-server增加取数逻辑并源码编译

1.什么是fate-serving-server? FATE-Serving 是一个高性能、工业化的联邦学习模型服务系统,专为生产环境而设计,主要用于在线推理。 2.fate-serving-server源码编译 下载fate-serving-serving项目(GitHub - FederatedAI/FATE-Serving: A scalable, h…...

循环队列、双端队列 C和C++

队列 目录 概念 实现方式 顺序队列 循环队列 队列的数组实现 用循环链表实现队列 STL 之 queue 实现队列 STL 之 dequeue 实现双端队列 概念 队列是一种特殊的线性表,它只允许在表的前端(称为队头,front)进行删除操作…...

正则表达式(语法+例子)

文章目录一、介绍二、语法1、匹配字符2、表示数量的字符3、边界字符4、其他字符5、转义字符三、例子1、邮箱2、用逗号分隔的数字集合1,23、允许一位小数4、20yy-mm-dd日期格式5、手机号6、匹配html、xml标签一、介绍 正则表达式(Regular Expression)&am…...

Properties和IO流集合的方法

方法名说明void load(InputStream inStream)从输入字节流读取属性列表(键和元素)void load(Reader reader)从输入字符流读取属性列表(键和元素对)void store(OutputStream out,String comments)将此属性列表(键和元素对…...

python 生成器、迭代器、动态新增属性及方法

目录 一、生成器 1、生成器定义 2、生成器存在的意义 3、创建生成器方式一(生成器表达式) 4. 创建生成器方式二(生成器函数) 1. 生成器函数 2. 生成器函数的工作原理 5. 总结 1. 什么是生成器 2. 生成器特点 二、迭代器…...

Java处理JSON

Java处理json有很多种方法,在这里总结一下。 1 Jackson Spring MVC 默认采用Jackson解析Json,出于最小依赖的考虑,也许Json解析第一选择就应该是Jackson。 1.1 引入的包 Jackson核心模块由三部分组成:jackson-core、jackson-a…...

58-Map和Set练习-LeetCode692前k个高频单词

题目 给定一个单词列表 words 和一个整数 k ,返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率, 按字典顺序 排序。 示例 1: 输入: words ["i", "love", …...

线程生命周期及五种状态

文章目录一、线程生命周期及五种状态1、New(初始化状态)2、Runnable(就绪状态)3、Running(运行状态)4、Blocked(阻塞状态)5、Terminated(终止状态)二、线程基本方法1、线程等待(wait)2、线程睡眠(sleep)3、…...

OBCP第八章 OB运维、监控与异常处理-灾难恢复

灾难恢复是指当数据库中的数据在被有意或无意破坏后复原数据库所需要执行的活动 回收站:回收站在原理上说就是一个数据字典表,放置用户删除的数据库对象信息。用户删除的东西被放入回收站后,其实仍然占据着物理空间,除非您手动进…...

亚马逊云科技Serverless Data:数字经济下的创新动能

Serverless时代已经到来!企业的技术架构,总是伴随着不断增长的数据与日趋复杂的业务持续演进。如何通过构建更易用的技术架构来聚焦在业务本身,而不必在底层基础设施的管理上投入过多的精力,是数据驱动型企业需要思考的重要议题。…...

【Ruby学习笔记】15.Ruby 异常

Ruby 异常 异常和执行总是被联系在一起。如果您打开一个不存在的文件,且没有恰当地处理这种情况,那么您的程序则被认为是低质量的。 如果异常发生,则程序停止。异常用于处理各种类型的错误,这些错误可能在程序执行期间发生&…...

聊聊MySQL主从延迟

文章目录 MySQL 的高可用是如何实现的呢?二、什么是主备延迟?三、主备延迟常见原因1、备库机器配置差2、备库干私活3、大事务四、主库不可用,主备切换有哪些策略?1、可靠优先2、可用优先实验一实验二3、结论MySQL 的高可用是如何实现的呢? 高可用性(high availability,缩…...

【C++从0到1】19、C++中多条件的if语句

C从0到1全系列教程 1、多条件的if语句 语法: if (表达式一) { // 表达式一为真时执行的语句。 } else if (表达式二) {// 表达式二为真时执行的语句。 } else if (表达式三) {// 表达式三为真时执行的语句。 } …… else if (表达式n) {// 表达式n为真时执行的语句。…...

【多微电网】计及碳排放的基于交替方向乘子法(ADMM)的多微网电能交互分布式运行策略研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Linux(centos7)安装防火墙firewalld及开放端口相关命令

安装firewalld 防火墙命令: yum install firewalld 安装完成,查看防火墙状态为 not running,即未运行,输入命令开启: 添加开放端口: 防火墙相关命令: 查看防火墙状态 systemctl status firewa…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

【单片机期末】单片机系统设计

主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥&#xff0c;再multisim中选择FWB&#xff0c;就有各种型号的电桥: 电桥是用来干嘛的呢&#xff1f; 它是一个由四个二极管搭成的“桥梁”形状的电路&#xff0c;用来把交流电&#xff08;AC&#xff09;变成直流电&#xff08;DC&#xff09;。…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...

算法250609 高精度

加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...