R-C3D Region Convolutional 3D Network for Temporal Activity Detection

R-C3D:用于时间活动检测的区域卷积三维网络

原论文链接
这篇文章是ICCV 2017的一篇文章,作者主要是以C3D网络为基础。借鉴了Faster RCNN的思路,对于任意的输入视频L,先进行proposal,然后3D-pooling,最后后进行分类和回归操作。
本文的主要贡献有:
1.一个端到端行为检测模型,结合了活动proposal和分类阶段,可以检测任意长度的活动
2.通过在proposal生成部分和网络分类部分之间共享全卷积C3D特征,实现了快速检测速度(比现有方法快5倍)
3.对三个不同的活动检测数据集进行了广泛的评估,证明了我们模型的普遍适用性

1、摘要

区域卷积三维网络(R-C3D),它使用一个三维全卷积网络对视频流进行编码,然后生成包含活动的候选时间区域,最后将选定的区域划分为特定的活动。

2、介绍

连续视频中的活动检测是一个具有挑战性的问题,不仅需要对活动进行识别,而且需要对活动进行及时精确的定位。现有的最先进的方法将此任务处理为分类检测,即对以滑动窗口形式生成的时间段进行分类[13,20,24,37],或通过外部建议生成机制。存在的主要缺点:
1、是它们不以端到端的方式学习深度表示,而是使用手工制作的特征。
2、目前的方法依赖于外部proposal生成或穷举滑动窗口,导致计算效率低下
3、滑动窗口模型不能很容易地预测灵活的活动边界

R-C3D概述
区域卷积三维网络(R-C3D)是端到端可训练的,通过联合优化proposal生成和活动分类学习任务相关的卷积特征。受FasterR-CNN对象检测方法的启发,我们计算全卷积的三维ConvNet特征,并提出可能包含活动的时间区域,然后在这些三维区域内汇聚特征来预测活动类(图1)。该方案生成阶段滤除了许多背景段,与滑动窗口模型相比,计算效率更高。此外,proposal是根据预定义的anchor片段进行预测的,可以是任意长度的,允许检测灵活的活动边界。

提出了一种用于连续视频流中活动检测的快速端到端区域卷积三维网络(R-C3D)。该网络利用全卷积三维滤波器对帧进行编码,提出活动段,然后根据其边界内的汇聚特征对其进行分类和细化。

3、模型方法

3.1 C3D


二维和三维卷积运算。a)对图像应用二维卷积,得到图像。b)将二维卷积应用于一个视频体(多个帧作为多个通道)也会得到一个图像。c)对一个视频体积进行三维卷积,得到另一个体积,保存输入信号的时间信息。

.C3D架构。C3D net有8个卷积,5个最大池,2个完全连接的层,然后是两个全连接层层。所有的三维卷积核在空间和时间维度上都是3×3×3和stride 1。每个框中表示过滤器的数量。3D池层表示为从pool1到pool5。所有的池内核都是2×2×2,除了pool1是1×2×2。每个完全连接的层有4096个输出单元。

在经过五次卷积,四次池化之后,在Conv5特征图的尺寸会缩小为原图的16×16倍,时间维度会缩小为原来视频的8倍。

3.2 Faster-Rcnn

具体可参考
R-CNN
R-CNN
[Fast R-CNN的结构图
Fast R-CNN的结构图
Faster R-CNN结构图
Faster R-CNN结构图
Faster R-CNN具体结构图
实际上就是候选框提取模块+Fast R-CNN;将Fast R-CNN中的ss(selective search)方法变成由RPN网络提取候选框
RPN具体可见

在这里插入图片描述
9个位置不一样的anchor
anchor:
feature map为51x39x256,在这个特征参数的基础上,通过一个3x3的滑动窗口,在这个51x39的区域上进行滑动,stride=1,padding=2,得到51x39个3x3的窗口。3x3卷积核的中心点对应原图上的位置(点),将该点作为anchor的中心点,在原图中框出多尺度、多种长宽比的anchors。以这个中心点为中心生成三个面积尺寸,然后在每个面积尺寸下,取三种不同的长宽比例(1:1、1:2 、2:1)一共得到9种面积尺寸各异的anchor。
RPN结构图:
在这里插入图片描述
!
展示了RPN的整个过程,一个特征图经过sliding window处理,得到256维特征,然后通过两次全连接得到结果2k个分数和4k个坐标;相信大家一定有很多不懂的地方;我把相关的问题一一列举:

RPN的input 特征图指的是哪个特征图?
为什么是用sliding window?文中不是说用CNN么?
256维特征向量如何获得的?
2k和4k中的k指的是什么?
图右侧不同形状的矩形和Anchors又是如何得到的?
首先回答第一个问题,RPN的输入特征图就是图1中Faster RCNN的公共Feature Map,也称共享Feature Map,主要用以RPN和RoI Pooling共享;

对于第二个问题,我们可以把3x3的sliding window看作是对特征图做了一次3x3的卷积操作,最后得到了一个channel数目是256的特征图,尺寸和公共特征图相同,我们假设是256 x (H x W)

对于第三个问题,我们可以近似的把这个特征图看作有H x W个向量,每个向量是256维,那么图中的256维指的就是其中一个向量,然后我们要对每个特征向量做两次全连接操作,一个得到2个分数,一个得到4个坐标,由于我们要对每个向量做同样的全连接操作,等同于对整个特征图做两次1 x 1的卷积,得到一个2 x H x W和一个4 x H x W大小的特征图,换句话说,有H x W个结果,每个结果包含2个分数和4个坐标;

3.3结构

整个网络可以分为四个部分:

  • 特征提取网络:对于输入任意长度的视频进行特征提取
  • Temporal Proposal Subnet(时间建议子网络): 用来提取可能存在行为的时序片段(Proposal Segments)
  • Activity Classification Subnet: 行为分类子网络
  • Loss Function

结构如下图所示
R-C3D模型架构。三维卷积网络以原始视频帧为输入,计算卷积特征。这些是proposal子网的输入,该子网提出长度可变的候选活动和信心评分。分类子网过滤提议,汇集固定大小的特性,然后预测活动标签和细化的段边界
三维卷积网络以原始视频帧为输入,计算卷积特征。这些是proposal子网的输入,该子网提出长度可变的候选活动和信心评分。分类子网过滤提议,汇集固定大小的特性,然后预测活动标签和细化的段边界。为了实现高效的计算和端到端训练,proposal和分类子网络共享相同的C3D特征图。proposal子网预测可能包含活动的可变长度时间段,而分类子网将这些proposal分类为特定的活动类别或背景,并进一步细化proposal段边界。一个关键的创新是将FasterR-CNN中的2DRoI Pooling扩展到3DRoI Pooling,使我们的模型能够提取不同分辨率的特征,用于不同长度的proposal。

3.3.1 特征提取网络

我们使用3DConvNet从给定的输入视频缓冲区中提取丰富的时空特征层次结构,三维卷积神经网络以分层的方式编码丰富的空间和时间特征。模型输入是一个RGB视频帧序列,尺寸为3×L×H×W。三维卷积的体系结构借鉴了C3D体系结构,在经过C3D的五次卷积之后,生成一个尺寸为512×L/8×H/16×2/16(512是conv5b的通道维数)的特征图作为子网络的输出。与传统C3D结构不同的是,我们的模型输入时可变长度的。

3.3.2 时间建议子网络

时序候选框提取网络
其原理类似于Faster R-CNN中的RPN,使用的是RPN中的anchor方法。
RPN
使用CNN直接产生Region Proposal,本质上是滑动窗口,在CNN上额外增加了2个卷积层(全卷积层cls和回归层reg)

  • cls层:判断Propsal是前景(object)还是后景(non-object)
  • reg层:预测porposal的anchor对应的proposal(w,h,x,y)

Step1:候选时序的生成
将时序片段(anchor segments)合并到时间proposal子网络中。子网根据时序片段预测潜在的proposal段,并使用一个二进制标签表示预测的proposal是否包含活动。输入视频经过上述C3D网络后得到了512 x L/8 x H/16 x W/16大小的特征图。然后作者假设anchor均匀分布在L/8的时间域上,也就是有L/8个anchors,每个anchors生成K个不同数值范围的候选时序,且同一组K个时序片段存在于不同的时间位置。
Step2:3D卷积和池化
为了获得每个时序点(anchor)上每段候选时序的中心位置偏移和时序的长度。作者在Conv5上添加了一个内核小为3×3×3的3D卷积滤波器和一个内核大小为1×H/16×W/16的3Dmax-pooling过滤器生成一个只包含时间的特征图。最后输出的尺寸是最后输出 512xL/8x1x1。利用特征图中各个时间点的512维特征向量,预测相对于中心位置的偏移量和各个时序长度。同时预测每个proposal作为行为或者背景的二进制分数。通过在输出特征图的基础上增加两个1×1×1卷积层来预测方案的偏移量和评分。
Step3:训练
为时序点分配积极/消极的标签。根据目标检测的标准实践:
正标签:1、与某些ground-truth活动重叠,且交并比(IoU)大于0.7;
2、与某些ground-truth活动重叠的IoU最高
负标签:anchor与所有ground-truth活动重叠的IOU小于0.3
为了平衡正负样本,正/负样本比例为1:1

3.3.4 行为分类子网络

行为分类网络
有三个功能

  • 1、前一阶段中选择proposal片段
  • 2、对于上述的proposal,用3D RoI (三维兴趣区域池)提取固定大小特征
  • 3、以上述特征为基础,将选择的Proposal做类别判断和时序边框回归

Step1 非极大值抑制NMS
proposal子网生成的一些活动proposal高度重叠,有些proposal得分较低,表明信心较低。采用非极大值抑制(NMS)策略来消除高度重叠和低置信度的proposal。NMS阈值设置为0.7。每一个proposal都有一个得分,得分越大表明proposal越接近期待值,分别在局部选出极大值的proposal,然后去掉和这个框IOU>0.7的proposal,只留下最大值。

Step2:3D RoI
这里,作者的图有点问题,提取兴趣区域的特征图的输入应该是C3D的输出,也就是512xL/8xH/16xW/16,可能作者遗忘了一个输入的箭头。一般使用到RoIPooling的流程为: 输入图片->多层卷积->得到共享特征图->候选框坐标(相对于输入网络图片的坐标)在共享特征图上做映射->得到候选框区域在共享特征图上对应的区域->在对应的区域上进行max 或者average pooling操作->得到fix feature map(这个fix feature map的size是我们设定好的,例如7×7)->多层全连接(进行分类或者回归)。

所选proposal可以是任意长度的,需要为每个层提取固定大小的特性,以便使用完全连接的层进行进一步的活动分类和回归。从共享卷及特征conv5b中提取每个变成proposal固定大小的特征。在我们的例子中,假设一个proposal在Cconv5b中拥有lp×7×7的特征量,那么这个特征量将被划分为1×4×4个网格,并且在每个网格中最大池化。因此,任意长度的proposal产生了大小相同的512×1×4×4输出卷特性。

Step3: 全连接层
三维RoI池的输出被提供给一系列两个完全连接的层。这里,通过一个分类层将proposal划分为活动类别,并通过一个回归层给出了这些proposal的细化开始和结束时间。分类层和回归层也是两个独立的完全连接的层,它们的输入都来自前面提到的完全连接的层(在3D RoI池层之后)

Step4: Traning
需要为每个训练分类器子网的proposal分配一个活动标签。同样采用IOU。
分配行为标签:proposal与ground-truth活动有最高的IoU重叠,同时IoU重叠大于0.5
分配为背景标签(无行为):IoU与所有基本事实活动重叠小于0.5

3.4 LOSS

分类和回归联合,而且联合两个子网络。分类采用softmax,回归采用smooth L1.
损失函数
Ncls和Nreg代表批量大小和anchor/proposal段的数量,λ损失权衡参数被设置为1。i是批量中的锚/proposal段索引,ai是proposal或活动的预测概率,ai* 是ground truth。ti表示相对于锚定段或proposal的预测相对偏移量。ti* 表示从ground truth段到锚定段或proposal的坐标转换。

3.5 预测

在R-C3D中,行为预测包括两个步骤。首先,proposal子网生成候选proposal,并预测开始到结束的时间偏移量以及每个proposal的得分。然后通过阈值为0.7的NMS对方案进行细化。NMS后,将选定的proposal反馈给分类网络,分类为特定的活动类,并通过回归层进一步细化预测proposal的活动边界。proposal子网和分类子网的边界预测均采用中心点相对位移和线段长度的形式

4 实验结果

与之前的不同算法的对比

不同类别上的得分

AcivityNet

Charades

速度

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值