密集场景下的行人跟踪替代算法,头部跟踪算法 | CVPR 2021
一个不知名大学生,江湖人称菜狗
original author: Jacky Li
Email : 3435673055@qq.comTime 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…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
