论文阅读:Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos

news2024/11/24 14:23:56

Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos

文章目录

  • Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos
    • 摘要及贡献
    • 相关工作
    • Generalizing R-CNN from 2D to 3D
    • 框架结构
      • Tube Proposal Network(TPN)
    • 结果及讨论
    • Region proposal network (RPN)vs Tubelet proposal network(TPN)理解
    • Related

摘要及贡献

本文提出了端到端的深度卷积网络T-CNN

首先一段视频首先被分割成固定长度的片段(8帧)-------> 这些片段被送到Tube Proposal Network(TPN)并生成一系列的 tube proposal --------> 根据每个视频片段中的tube proposal 的行为得分和相邻proposal之间的重叠进行连接起来(即linking tube proposals),形成一个完整的tube proposal用于视频中的时空行为定位 -------> 最后the Tube-of-Interest(TOI)pooling被用于连接的行为tube proposal 来形成一个固定长度的特征向量用于行为标签预测。

在这里插入图片描述

贡献如下:

  1. 提出了一种基于端到端深度学习的视频行为检测方法。它直接对原始视频进行操作,利用单个3D网络捕捉时空信息,根据3D卷积特征进行行为定位和识别。据我们所知,这是第一个利用3D ConvNet进行行为检测的工作。
  2. 我们引入了一个Tube Proposal Network (TPN),它利用在时间域的跳跃池,以保存时间信息的行动定位在三维体积。
  3. 我们在T-CNN中提出了一种新的池化层Tube-of-Interest (ToI) pooling,ToI pooling是R-CNN感兴趣区域(Region-of-Interest, RoI)池化层的3D形式。它有效地缓解了变化的空间和时间大小的Tube Proposal Network的问题。我们证明了ToI池化可以大大提高识别结果。

相关工作

  1. CNN和3DCNN在action detection的相关方法

  2. action detecction相关方法

  3. object detection流程

本文将R-CNN从2D图像区域推广到3D视频用于action detection

Generalizing R-CNN from 2D to 3D

与可以裁剪的图像不同,视频在时间维度上有很大差异,因此,我们将输入视频分成固定长度(8帧)的视频片段,这样视频片段就可以在固定大小的ConvNet架构下进行处理。此外,基于剪辑的处理降低了GPU内存的成本。

3D CNN相对于2D CNN的一个优点是它通过在时间和空间上应用卷积来捕捉运动信息,由于我们的方法不仅在空间维度上使用了3D卷积和3D max pooling,而且在时间维度上也使用了3D卷积和3D max pooling,从而减小了视频片段的大小,同时集中了可区分的信息。temporal pooling在识别任务中是很重要的,因为它能更好地建模视频的时空信息并减少一些背景噪声。然而,时间顺序信息丢失了。这意味着如果我们任意改变视频剪辑中的帧的顺序,最终的3D最大特征集将是相同的。这在行为检测中是有问题的,因为它依赖于特征立方体来获得原始帧的边界框。——时间信息很重要,不能任意改变帧的顺序

由于一个视频被一个片段一个片段地处理,action tube为不同的片段产生了不同的空间和时间大小的action tube proposal。这些片段候选框需要链接到一个tube proposal sequence,该序列用于行为标签预测和定位。为了产生一个固定长度的特征向量,我们提出了一种新的池化层-Tube-of Interest。ToI池化层是R-CNN感兴趣区域(Region-of-Interest, RoI)池化层的三维泛化。经典的最大池化层定义了内核大小、步长和填充,这些决定了输出的形状。而对于RoI池化层,首先确定输出形状,然后确定核的大小和步幅。相对于以二维特征图和二维区域作为输入的RoI池,ToI pooling deals with feature cube and 3D tubes。表示特征立方体的大小为d × h × w ,其中d、h、w分别表示特征立方体的深度、高度和宽度。feature cube中的ToI由一个d-by-4 矩阵定义,该矩阵由分布在所有帧中的d个box组成。Box由一个四元组( x 1 i , y 1 i , x 2 i , y 2 i )定义,该四元组指定第i个特征图的左上角和右下角,由于d bounding boxes 不同的大小、纵横比和位置,为了应用时空池化,空间域池化和时间域池化是分开进行的。首先,h × w 特征图映射被分为H × W bins,每个单元对应一个大小为h/w的单元,在每个单元格钟,应用最大池化来选择最大值,其次,空间池化的d个特征被暂时分为D bins,和第一步相似,d/D相邻特征图杯分组在一起来形成标准的时间最大池化。因此,TOI池化层的固定输出大小是DxHxW,如下图

在这里插入图片描述

框架结构

核心结构是TPN为每个片段产生tube proposals

Tube Proposal Network(TPN)

  • 目标:输入8帧图片,输出8个连续的bbox。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3mQKPXSy-1675910590283)(C:%5CUsers%5C%E7%8E%8B%E4%B8%80%E4%BA%8C%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20230207165308635.png)]

针对8帧视频片段,采用三维卷积和三维池化方法提取spatio-temporal feature cube ,我们的3D ConvNet由七个三维卷积层和四个三维最大池化层组成。我们用d×h×w表示三维卷积/池化的核形状,其中d;h;W分别为深度、高度和宽度。在所有卷积层中,kernel size 为3×3×3, padding和stride保持为1。filter数量是前3个卷积层分别为64、128和256,其余的卷积层为512。第一个3D最大池化层的kernel size设置为1 ×2×2,其余3D最大池化层的内核大小设置为2×2×2。网络架构的详细信息如表1所示。我们使用C3D模型作为预训练模型,并在我们的实验中对每个数据集进行微调.

在conv5之后,时间大小减少到1帧(即深度为D = 1的特征立方体),我们在conv5 feature tube生成bounding box proposals

在这里插入图片描述

Anchor bounding boxes selection

在Faster RCNN中,Anchor的数量被手工定义例如,9个anchor包含3个尺度和3个横纵比,在本文中我们不选择手工挑选的anchor boxes,而是在训练集上应用k-means聚类来学习12个anchor boxes(即聚类质心)。这种数据驱动的anchor boxes方法可以适应不同的数据集

每个包围框都与一个“actionness”分数相关联,该分数衡量框中的内容对应于有效动作的概率,我们为每个包围框分配一个二进制类标签(是否是一个动作),动作得分小于阈值的包围框将被丢弃。在训练阶段,IoU与任意ground-truth box重叠大于0.7或Intersection-over-Union最大的边界框(IoU)与ground-truth box(后一种情况被考虑,以防前一种情况可能找不到正样本)重叠被认为是正边界盒的建议

Temporal skip pooling

  • 存在的问题:3D CNN其实丢失了帧的顺序信息(order),而temporal skip pooling就是为了保留order信息。

由conv5 feature cube生成的bounding box可用于边界框回归的帧级动作检测,然而,由于时间最大池化的时间集中(8帧到1帧)会导致原始8帧的时间顺序丢失。因此,我们使用时间跳过池(temporal skip pooling) 引入时间顺序进行帧级检测。

  • 具体实现:
    • 8帧输入到conv5的时候temporal纬度已经变为1了,通过普通的检测方法获取bbox propoals。
    • 在对上述proposal提取特征的时候,到conv2提取。因为conv2时没有对temporal纬度进行操作,可以认为conv2还保留着order信息。
    • 输入 conv5 的 proposal + conv2 的 feature,通过类似于RoI Pooling的操作就能提取定长特征,用于后面的操作。
    • 后面bbox reg的输入是通过 proposal + (conv2 & conv5) 提取的。
    • 8次bbox reg的输入都一致。

因此,以conv5 feature cube中有5个边界框为例,则在每个conv2特征片中对应的位置映射5个缩放的边界框。这将创建5个tube proposals ,如图3所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3mQKPXSy-1675910590283)(C:%5CUsers%5C%E7%8E%8B%E4%B8%80%E4%BA%8C%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20230207165308635.png)]

Linking Tube Proposals

  • 目标:连接不同clip的tube。

  • link的主要条件有两个:actionness(即每个clip中tube的动作得分,得分越高表示存在动作的概率越大)和overlap(即不同clip间tube的IoU,前一个tube最后一帧与后一个tube第一帧的IoU)。

  • 通过公式计算前后帧tube之间的得分,按照得分高低进行连接

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xn8qhgaM-1675910590284)(C:%5CUsers%5C%E7%8E%8B%E4%B8%80%E4%BA%8C%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20230207112043252.png)]
    在这里插入图片描述

Action Detection

  • 目标:输入上一部得到的Linked之后的tube,对tube进行行为分类。

  • 由于tube长度不一样,要对所有tube提取得到定长特征,就需要使用文中提出的ToI Pooling。
    在这里插入图片描述

结果及讨论

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 这个不能用在online版本中。
  • TOI pooling 可以与two-stream CNN结合

Region proposal network (RPN)vs Tubelet proposal network(TPN)理解

首先我们先回顾一下物体检测的主流方式,通常会包含以下几步:

  • 生成一系列的候选框,这些候选框称为proposals

  • 根据候选框判断候选框里的内容是前景还是背景,即是否包含了检测物体

  • 用回归的方式去微调候选框,使其更准确地框取物体,这过程我们称bounding box regression

在这里插入图片描述

  • region proposal: 候选框区域,选出来的区域。

  • anchor box: 手工设计或者聚类得到的定位中心点框(与proposal区别是这些框是基于某一点的)

  • Bounding box(bbox): 将这些 anchor bbox回归之后的结果叫bounding box,就是更进一步的候选框,离标答更近了,从某种程度也是proposal(候选框)。

RPN主要包含以下几步:

  • 生成Anchor boxes.

  • 判断anchor boxes包含的是前景还是背景.

  • 回归学习anchor boxes和groud truth的标注的位置差,来精确定位物体

    img

    假设每个anchor生成了k个boxes,每个anchor box会输入到2个卷积网络,分别是cls layaer和reg layer。RPN的训练数据是通过比较anchor boxes和GT boxes生成的,会在图片中采样一些anchor boxes,然后计算anchor box和GT box的IOU来判断该box是前景还是背景,对于是前景的box还要计算其与GT box之间各个坐标offset。

    img

Tubelet Proposal Network(TPN)

与静态目标检测中的候选边框(bounding box proposals)相同,视频目标检测中的边框被称为tube,tube是一系列候选边框的集合,视频目标检测算法使用tube来获得时间上的信息。因此,在Tubelet Proposal Network(TPN)中,从上一步得到了base 3D network的特征图,采用手工设计或者聚类的方法设计tube anchor ,每个tube anchor都有两个标签,一个是CLS——显示来自该空间位置的foreground tube与proposal tube是否有很高的重叠。一个是REG——输出一个4T-dimensional矢量编码位移,该位移是根据tube anchor中每个box的坐标得来tube bounding box。

相当于
region proposal = tube proposal
feature map = feature cube 由d个boxes组成的四维矩阵(因为加了时间)
anchor = tube anchor 采用手工设计或者聚类的方法设计tube anchor(如本文使用的12个anchor聚类)
bounding box = tube bounding box 从tube anchor中进行有无action进行打分并计算IOU,坐标为(x1,y1,x2,y2)为左上和右下角
conv5得到的feature cube

Related

论文浏览(38) Tube Convolutional Neural Network (T-CNN) for Action Detection in Videos - 爱码网 (likecs.com)

详解Region Proposal Network - 知乎 (zhihu.com)

【目标检测】概念理解:region proposal、bounding box、anchor box、ground truth、IoU、NMS、RoI Pooling_kentocho的博客-CSDN博客_ground truth iou

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode刷题之背包问题(01背包)

01 背包 概念:有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]weight[i]weight[i],得到的价值是value[i]value[i]value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 方法1:暴力回溯…

综合办公系统(OA+HR+CRM)

综合办公管理系统是集OA办公系统、HR人力资源管理系统和CRM客户关系管理系统于一体的综合系统。 其架构为: 功能介绍 一、OA办公系统 OA办公系统主要包括个人办公、会议室管理、车辆管理、新闻公告、资产管理和文档管理模块 (1)个人办公 内部…

6年软件测试经历:成长、迷茫、奋斗

前言 测试工作6年,经历过不同产品、共事过不同专业背景、能力的同事,踩过测试各种坑、遇到过各种bug。测试职场生涯积极努力上进业务和技术能力快速进步过、也有努力付出却一无所得过、有对测试生涯前景充满希望认为一片朝气蓬勃过、也有对中年危机思考不…

【笔记】移动端自动化:adb调试工具+appium+UIAutomatorViewer

学习源: https://www.bilibili.com/video/BV11p4y197HQ https://blog.csdn.net/weixin_47498728/category_11818905.html 一、移动端测试环境搭建 学习目标 1.能够搭建java 环境 2.能够搭建android 环境 (一)整体思路 我们的目标是Andr…

小红书情人节大赏!热门话题各出奇招,看看哪个品牌打动了你?

情人节热度狂飙,实时热度值破万 以爱之名,传递爱意。每年情人节向来是不容错过的热门话题。我们发现,临近情人节,小红书平台的相关内容热度飙升。据千瓜数据关键词热度查询,2月初“情人节”热搜词热度值就已破万。 截止…

1.ORB-SLAM2中的多线程调度解析

目录 0.先修知识 1.ORB - SLAM2中的线程 2.ORBSLAM2中的互斥锁示例 0.先修知识 需要了解C中开辟多线程的方式,了解C中不同锁的使用方法 学习C:C进阶(五)多线程编程原理及多线程编程方法https://blog.csdn.net/qq_41694024/artic…

Java 网络编程详解

1、什么是网络编程 在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。 应用场景:     1、即时通信 2、网游对战 3、邮件等等 Java中可以使用java.net包下的技术轻松开发出常见的网络应用程序 2、网络编程三要素 2.1 IP地址 要…

HCNP路由交换学习指南丨学习笔记丨07.BGP

07.BGP1. BGP 的基本概念1.1 BGP 对等体关系类型1.2 IBGP 水平分割原则1. BGP 的基本概念 关于 自治系统(Autonomous System,AS) 的传统定义:由一个单一的机构或组织所管理的一系列 IP 网络及其设备所构成的集合。 自治系统的简单…

jsp羽毛球场馆管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 羽毛球场馆管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,…

通达信MACD面积背离指标公式,思路来自于缠论背驰

MACD面积背离指标公式的思路来自于缠论的MACD面积背驰,但是背驰的定义有一些限制条件,编写指标不一定能满足,这里就不纠结了,编写的指标称为MACD面积背离。另外编写这个指标公式需要对缠论有一些了解,如果没有相关基础…

数据结构笔记堆

1.堆的定义//堆是一颗完全二叉树,堆一般由优先队列来实现堆分为两种:1.大顶堆中父亲结点的值大于或者等于孩子结点的值,以它为根结点的子树,它是最大值(顶点是最大值,顶点指的是树的根结点或者子树的根结点)2.小顶堆的父亲结点的值…

详解 matplotlib.pyplot ,Python 初学者真能看懂

Matplotlib 是一个 Python 中的 2D 绘图库, pyplot 模块是一个方便使用 Matplotlib 的接口。 下面是 pyplot 模块中的五个重要的知识点: 【创建图形】: pyplot 模块提供了许多简单易用的函数来创建图形,如 plot、scatter、bar、h…

Python语言零基础入门教程(十)

Python 字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ’ 或 " ) 来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 Hello World! var2 "Python Runoob"Python 访问字符串中的值 Python 不…

TCP连接的状态详解以及故障排查(五)

同时打开 两个应用程序同时执行主动打开的情况是可能的,虽然发生的可能性较低。每一端都发送一个SYN,并传递给对方,且每一端都使用对端所知的端口作为本地端口。例如: 主机a中一应用程序使用7777作为本地端口,并连接到主机b 888…

【Python入门第四天】Python 注释

开始之前,先给大家讲个笑话… 程序员最讨厌的两种人:写代码不写注释的人和让自己写注释的人。 注释可用于解释 Python 代码。 注释可用于提高代码的可读性。 在测试代码时,可以使用注释来阻止执行。 创建注释 注释以 # 开头&am…

低代码开发平台|生产管理-生产加工搭建指南

1、简介1.1、案例简介本文将介绍,如何搭建生产管理-生产加工。1.2、应用场景在主生产计划列表中下达加工后,在加工单列表可操作领料、质检。2、设置方法2.1、表单搭建1)新建表单【产品结构清单(BOM)】,字段…

32单片机矩阵键盘-同列组合键不能识别故障-已解决

一、电路原理 1.1. 矩阵键盘电路 1.2. gd32f103单片机端是iic,中间经过一个pca9535芯片。 1.3 pca9535 的功能请参考相关文档 这里主要用到的是设置输入输出模式,读取输入值,输出高或者输出低等功能。 二、基本要求 2.1 单个按键识别 2.2 组合键识别…

米尔基于ARM嵌入式核心板的电池管理系统(BMS)

BMS全称是Battery Management System,电池管理系统。它是配合监控储能电池状态的设备,主要就是为了智能化管理及维护各个电池单元,防止电池出现过充电和过放电,延长电池的使用寿命,监控电池的状态。 图片摘自网络 电池…

【C++入门】命名空间,输出输入,缺省参数,函数重载

文章目录命名空间C输入与输出缺省参数函数重载命名空间 在C/C中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标 识符的名称进行本地化&#xff0…

电子技术——共源共栅放大器

电子技术——共源共栅放大器 之前我们提到过,提高基础增益单元(共源放大器)的一种方法是提高其 ror_oro​ 的阻值,之后我们学过共栅放大器作为电流缓冲器可以做到这一点,自然地我们就得到了终极解决方案,也…