【Spatial-Temporal Action Localization(五)】论文阅读2020年
文章目录
- 1. Actions as Moving Points
- 摘要和结论
- 引言:针对痛点和贡献
- 模型框架
- 实验
1. Actions as Moving Points
Actions as Moving Points (ECCV 2020)
摘要和结论
MovingCenter Detector (MOCdetector) 通过将动作实例视为移动点的轨迹。通过三个分支生成 tubelet detection results(bbos sequences)。
- (1)中心分支(Center Branch)用于中心检测和动作识别;
- (2)运动分支(Movement Branch)用于相邻帧的运动估计,形成运动点的轨迹;
- (3)盒子分支(Box Branch)用于空间范围检测,通过直接回归每个估计中心的边界框大小。
Tubelet检测结果,可以进一步链接到生成具有匹配策略的视频级管。
引言:针对痛点和贡献
痛点:
- Frame-level Detector:一些早期的方法独立地在每一帧上应用一个动作检测器,然后通过将这些帧级检测结果或跨时间跟踪一个检测结果来生成动作管。这些方法在进行帧级检测时不能很好地捕获时间信息,因此在现实中检测动作管效果较差。
- Clip-level Detector(action tubelet detectors): 现有的小管检测方法与目前主流的目标检测器(如Faster R-CNN[24]或SSD[20])密切相关,这些方法都是在大量的预定义锚盒上运行。ACT [15] 采用了从锚长方体回归的短帧和输出小管序列。STEP [36] 提出了一种渐进式方法,通过几个步骤细化提案以解决大位移问题并利用更长的时间信息。一些方法[12,17]首先链接帧或小管提议来生成管提议,然后进行分类。这些方法都是基于锚点的目标检测器,由于锚点盒数量多,其设计对锚点设计和计算成本比较敏感。
- 首先,随着剪辑时间的增加,可能的小管锚点数量会急剧增加,这对训练和推理都提出了很大的挑战。
- 通常需要设计更复杂的锚盒放置和调整,以考虑沿时间维度的变化。
- 这些基于锚点的方法直接沿着时间维度扩展2D锚点,将每个动作实例预定义为跨越空间和时间的长方体。这种假设缺乏灵活性,无法很好地捕捉相邻帧级边界框的时间相干性和相关性。
贡献:
提出了一个新的检测框架(动作实例视为移动点moving points),并且时Anchor-free的。
模型框架

将一组连续的帧作为输入,并将它们分别输入到一个有效的2D主干中,以提取帧级特征。我们设计了三个头部分支,以无锚的方式执行小管检测。这三个分支协同工作以从短剪辑中产生小管检测,这将通过遵循常见的链接策略进一步链接到在长未修剪的视频中形成动作管检测。
-
Backbone:输入 K 帧,每帧的分辨率为 W × H。R=4 是空间下采样率,B=64 表示通道数。为了保留完整的时间信息以供后续检测,我们不对时间维度执行任何下采样。具体来说,我们选择 DLA-34 [38] 架构作为我们遵循 CenterNet [41] 的 MOC 检测器特征主干。该架构采用编码器-解码器架构来提取每个帧的特征。提取的特征由三个头分支共享。
输出特征大小为:K * W/R * W/R * B -
Center Branch: Detect Center at Key Frame : 目的是检测关键帧(即中心帧)中的动作实例中心,并根据提取的视频特征识别其类别。

时间信息对于动作识别很重要,因此我们设计了一个时间模块来估计动作中心并通过沿通道维度连接多帧特征图来识别其类别。
估计关键帧的中心热图 ˆL ∈ [0, 1] W/R × H/R ×C。C 是动作类别的数量。 ^L(x,y,c) 的值表示在位置 (x, y) 处检测到类 c 的动作实例的可能性,值越高表示可能性越强。 -
Movement Branch: Move Center Temporally:运动分支尝试关联相邻帧以预测动作实例中心沿时间维度的运动。

与中心分支类似,运动分支也利用时间信息来回归当前帧相对于关键帧的中心偏移。具体来说,运动分支以堆叠特征表示作为输入,并输出运动预测图 ˆM ∈ W/R × H/R ×(K×2)。 2K 通道表示 X 和 Y 方向上从关键帧到当前帧的中心移动。 -
Box Branch: Determine Spatial Extent:Box Branch 是 tubelet 检测的最后一步,重点是确定动作实例的空间范围。

与中心分支和运动分支不同,我们假设框检测仅取决于当前帧,并且时间信息不会有利于与类无关的边界框生成。 我们将在附录 B 中提供消融研究。从这个意义上说,这个分支可以以逐帧的方式进行。具体来说,Box Branch 输入单帧的特征 f j ∈ W/R × H/R ×B 并生成第 j 帧的尺寸预测图 ˆSj ∈W/R × H/R ×2 来直接估计边界框尺寸(即宽度和高度)。请注意,Box Branch 在 K 个帧之间共享。 -
Tubelet Linking:获得剪辑级检测结果后,我们将这些小管跨时间连接成最终的管。MOC模型会对输入的视频进行处理,提取出多个短序列的图像帧,并以每个序列为单位提取出最优的10个候选物体作为候选的区域,这些候选区域会在每个序列中按照一定步长进行滑动,并通过连接每个序列中的候选物体,形成最终的动作管道。
首先,在第一帧中,所有候选动作都会开始一个新的链接。在后续帧中,没有分配到任何现有链接的候选动作会开始新的链接。
在每一帧中,我们按照链接得分的降序扩展现有的链接,使用一个可用的tubelet候选动作作为链接的一部分。链接的得分是该链接中所有tubelet的平均得分。当满足以下三个条件时,一个候选动作只能分配给一个现有链接:(1)候选动作没有被其他链接选择,(2)链接和候选动作之间的重叠大于阈值τ,(3)候选动作拥有最高的得分。
如果一个存在的链接在连续的K帧中没有被扩展,它就会停止。我们为每个链接构建一个动作tube,其得分是链接中所有tubelet的平均得分。对于链接中的每一帧,我们平均包含该帧的tubelet的bbox坐标。初始化和终止确定tube的时间范围。具有低置信度和短持续时间的tube会被丢弃。由于这个链接算法是在线的,因此MOC可以应用于在线视频流。
实验



相关文章:
【Spatial-Temporal Action Localization(五)】论文阅读2020年
文章目录 1. Actions as Moving Points摘要和结论引言:针对痛点和贡献模型框架实验 1. Actions as Moving Points Actions as Moving Points (ECCV 2020) 摘要和结论 MovingCenter Detector (MOCdetector) 通过将动作实例视为移动点的轨迹。通过三个分支生成 tub…...
Linux基本指令(中)——“Linux”
各位CSDN的uu们好呀,今天,小雅兰的内容是Linux基本指令呀!!!下面,让我们进入Linux的世界吧!!! cp指令(重要) mv指令(重要)…...
OWASP Top 10漏洞解析(3)- A3:Injection 注入攻击
作者:gentle_zhou 原文链接:OWASP Top 10漏洞解析(3)- A3:Injection 注入攻击-云社区-华为云 Web应用程序安全一直是一个重要的话题,它不但关系到网络用户的隐私,财产,而且关系着用户对程序的新…...
Java自定义类加载器的详解与步骤
自定义类加载器的步骤 继承ClassLoader类:首先创建一个新的类,该类需要继承ClassLoader类。可以通过直接继承ClassLoader或是间接继承URLClassLoader等子类来实现。重写findClass()方法:在自定义类加载器中,最重要的是重写findCl…...
完美清晰,炫酷畅享——Perfectly Clear Video为你带来卓越的AI视频增强体验
在我们日常生活中,我们经常会拍摄和观看各种视频内容,无论是旅行记录、家庭聚会还是商务演示,我们都希望能够呈现出最清晰、最精彩的画面效果。而现在,有一个强大的工具可以帮助我们实现这一目标,那就是Perfectly Clea…...
如何让FileBeat支持http的output插件
目录 1 缘由2 编译filebeat3 配置虚拟机访问外网4 编译beats-output-http4.1 使用本地包4.2 发布在线包 5 测试6 beats-output-http的部分解释 1 缘由 官网的filebeat只有以下几种output插件: Elasticsearch ServiceElasticsearchLogstashKafkaRedisFileConsole …...
解密人工智能:决策树 | 随机森林 | 朴素贝叶斯
文章目录 一、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 二、决策树2.1 优点2.2 缺点 三、随机森林四、Naive Bayes(朴素贝叶斯)五、结语 一、机器学习算法简介 机器学习算法是一种基于数据和经验的算法,通过对…...
web:[极客大挑战 2019]BabySQL
题目 点进页面显示如下 查看源代码 先尝试一下万能密码 没用,or被过滤了 试着双写看看 回显一串,也不是flag 先查询列数尝试一下,把union select过滤了,使用双写 构造payload /check.php?usernameadmin&password1 %27 ununi…...
DRM全解析 —— plane详解(1)
本文参考以下博文: Linux内核4.14版本——drm框架分析(5)——plane分析 特此致谢! 1. 简介 一个plane代表一个image layer(硬件图层),最终的image由一个或者多个plane(s)组成。plane和 Framebuffer 一样是内存地址。…...
数据结构总结
数据结构 相关博文 单链表数组模拟单链表-CSDN博客双链表数组模拟双链表-CSDN博客栈及单调栈数组模拟栈以及单调栈-CSDN博客队列及单调队列数组模拟队列以及单调队列-CSDN博客KMPKMP详细算法思路-CSDN博客TrieTire树的理解-CSDN博客并查集并查集(面试常考ÿ…...
在SOLIDWORKS搭建一个简易的履带式机器人
文章目录 前言一、构建模型基本单元二、搭建车体模块三.插入轮子4.构建履带 前言 趁着十一假期,在solidworks中搭建了一个履带式机器人小车,计划将其应用在gazebo中完成多机器人编队的仿真。 一、构建模型基本单元 构建底板(a面)…...
C# 为什么要限制静态方法的使用
前言 在工作了一年多之后,我发现静态方法的耦合问题实在是头疼。如果可以尽量不要使用静态方法存储数据,如果要存储全局数据就把数据放在最顶层的主函数里面。 静态方法问题 耦合问题,不要用静态方法存储数据 我这里有两个静态方法&#…...
【已解决】Pyecharts折线图,只有坐标轴没有折线数据
【已解决】Pyecharts折线图,只有坐标轴没有折线数据 1、问题复现2、原因3、问题解决 1、问题复现 在做简单的数据通过 Pyecharts 生成折现图的时候,一直只有坐标轴没有折线数据,但是代码一直看不出问题,代码如下: im…...
win10搭建Selenium环境+java+IDEA(3)
这里主要对前面的maven和selenium做补充说明,以及更新一些pom文件下载依赖的问题。 IDEA里面,如果你创建的工程是maven工程文件,那么就会有一个pom.xml文件,可以在这个网站:https://mvnrepository.com/搜索依赖&#…...
String 、Stringbuffer、StringBuilder区别
上代码 public class Test {public static void main(String[] args) {//String 连接10000次消耗1127ms//StringBuffer 连接10000次消耗5ms//StringBuilder 连接10000次消耗3msStringTest(10000);StringBufferTest(10000);StringBuilderTest(10000);}public static void Strin…...
如何提升爬虫IP使用效率?精打细算的方法分享
在进行爬虫数据采集时,爬虫IP是不可或缺的工具。然而,爬虫IP的费用可能是一个爬虫项目的重要开支之一。为了帮助您节省爬虫IP经费,本文将分享一些经济高效的方法,让您在使用爬虫IP时更加节约成本,提高经济效益。 一、优…...
(高阶) Redis 7 第19讲 缓存过期淘汰策略 大厂篇
🌹 以下分享 Redis 缓存淘汰策略,如有问题请指教。🌹🌹 如你对技术也感兴趣,欢迎交流。🌹🌹🌹 如有对阁下帮助,请👍点赞💖收藏🐱🏍分享😀 面试题 1. 生产上,redis内存设置的多少 2. 如何配置、修改Redis 内存大小 3. 如果内存满了,如何处理 4. …...
【四旋翼飞行器】模拟四旋翼飞行器的平移和旋转动力学(Simulink仿真实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Kaggle - LLM Science Exam(一):赛事概述、数据收集、BERT Baseline
文章目录 一、赛事概述1.1 OpenBookQA Dataset1.2 比赛背景1.3 评估方法和代码要求1.4 比赛数据集1.5 优秀notebook 二、BERT Baseline2.1 数据预处理2.2 定义data_collator2.3 加载模型,配置trainer并训练2.4 预测结果并提交2.5 deberta-v3-large 1k Wikiÿ…...
mmap底层驱动实现(remap_pfn_range函数)
mmap底层驱动实现 myfb.c(申请了128K空间) #include <linux/init.h> #include <linux/tty.h> #include <linux/device.h> #include <linux/export.h> #include <linux/types.h> #include <linux/module.h> #inclu…...
C# 14 AOT × Dify客户端:为什么92%的金融与政务客户已强制要求AOT编译?3个合规性红线与4步过审指南
第一章:C# 14 AOT Dify客户端:金融与政务场景的合规性演进全景随着金融与政务系统对启动性能、内存确定性及二进制可控性的要求持续提升,C# 14 原生 AOT(Ahead-of-Time)编译能力与 Dify 客户端的轻量级 LLM 集成能力正…...
Hermes-Agent 安装全流程(Windows WSL2 + Ubuntu + macOS)一键部署+源码编译+避坑指南
🤵♂️ 个人主页:小李同学_LSH的主页 ✍🏻 作者简介:LLM学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
Codex的安装和初步使用
前言 Codex是ChatGpt的AI编程框架。如果有chatgpt的账号的话,可以免费使用Codex 。 一、安装 1.1、打开Codex对应的网页 打开ChatGpt的网页:点击这个左边栏位的内容中Codex:然后进入如下的页面:可以看到三种应用的方式 第一种Code…...
让Ouster OS1-128雷达跑通LeGO-LOAM建图:关键参数修改与‘ring‘字段报错解决
Ouster OS1-128雷达与LeGO-LOAM深度适配实战指南 当128线激光雷达遇上轻量级SLAM算法,会碰撞出怎样的火花?作为自动驾驶和机器人领域的热门硬件,Ouster OS1-128凭借其紧凑体积和高分辨率点云,正在逐步替代传统Velodyne设备。但真正…...
OpCore Simplify:黑苹果EFI一键生成的终极指南
OpCore Simplify:黑苹果EFI一键生成的终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore配置而烦恼吗…...
Qwen2.5-0.5B-Instruct应用实战:搭建个人智能问答网页
Qwen2.5-0.5B-Instruct应用实战:搭建个人智能问答网页 在人工智能技术快速发展的今天,拥有一个属于自己的智能问答系统不再是遥不可及的梦想。本文将详细介绍如何使用Qwen2.5-0.5B-Instruct这一轻量级大语言模型,快速搭建一个功能完善的个人…...
C++的完美转发:std--forward的工作原理
C的完美转发:std::forward的工作原理 在C模板编程中,完美转发(Perfect Forwarding)是一项关键技术,它允许函数模板将参数以原始类型和值类别(左值或右值)传递给其他函数,避免不必要…...
文件管理笔记
su 切换用户bash 执行命令shutdown -h立即关机 -r立即重启 -hxx xx分钟后自动关机文件目录操作命令cd 将当前目录切换到指定目录pwd 显示当前所处目录mkdir 创建目录tree 查看目录结构rm 直接删除目录或文件 -f 不做提示 -r 删除目录以及内文件 -v 显示删除详细过程文件操作…...
告别模拟器:用Termux+Ubuntu+JDK在安卓手机上搭建轻量Java开发环境
安卓手机变身Java开发机:TermuxUbuntuJDK全栈解决方案 在咖啡馆等朋友时突然需要调试一段业务逻辑代码,出差途中发现线上服务报错需要紧急修复,通勤路上想继续昨晚未完成的算法练习——这些场景下,我们往往懊恼没带笔记本电脑。其…...
VMware虚拟机磁盘管理实战:.vmdk文件的拆分与合并操作指南
1. VMware虚拟机磁盘管理入门 刚接触VMware虚拟机的朋友可能对.vmdk文件感到陌生。简单来说,它就像是虚拟机的"硬盘",存储着虚拟机的所有数据。我在管理服务器集群时,经常需要处理几十个虚拟机镜像,发现合理管理.vmdk文…...
