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

这篇文章是ICCV 2017的一篇文章,作者主要是以C3D网络为基础。借鉴了Faster RCNN的思路,对于任意的输入视频L,先进行proposal,然后3D-pooling,最后后进行分类和回归操作。文章主要贡献点有3个:

可以针对任意长度视频、任意长度行为进行端到端的检测

速度很快(是目前网络的5倍),通过共享Progposal generation 和Classification网络的C3D参数

作者测试了3个不同的数据集,效果都很好,显示了通用性。

一、网络结构

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

特征提取网络:对于输入任意长度的视频进行特征提取

Temporal Proposal Subnet: 用来提取可能存在行为的时序片段(Proposal Segments)

Activity Classification Subnet: 行为分类子网络

Loss Function

下图是整个网络结构图。

 

1.1 特征提取网络

骨干网络作者选择了C3D网络,经过C3D网络的5层卷积后,可以得到512 x L/8 x H/16 x W/16大小的特征图。这里不同于C3D网络的是,R-C3D允许任意长度的视频L作为输入。

learning Spatiotemporal feature with 3DConvolutional Networks(C3D网络论文)

 

1.2 Temporal Proposal Subnet

这一部分是时序候选框提取网络,类似于Faster R-CNN中的RPN,用来提取一系列可能存在目标的候选框。这里是提取一系列可能存在行为的候选时序。

Step1:候选时序生成

输入视频经过上述C3D网络后得到了512 x L/8 x H/16 x W/16大小的特征图。然后作者假设anchor均匀分布在L/8的时间域上,也就是有L/8个anchors,每个anchors生成K个不同scale的候选时序。

Step2: 3D Pooling

得到的 512xL/8xH/16xW/16的特征图后,为了获得每个时序点(anchor)上每段候选时序的中心位置偏移和时序的长度,作者将空间上H/16 x W/16的特征图经过一个3x3x3的卷积核和一个3D pooling层下采样到 1x1。最后输出 512xL/8x1x1.

Step3: Training

类似于Faster R-CNN,这里也需要判定得到的候选时序是正样本还是负样本。文章中的判定如下。

正样本:IoU > 0.7,候选时序帧和ground truth的重叠数

负样本: IOU < 0.3

为了平衡正负样本,正/负样本比例为1:1.

1.3 Activity Classification Subnet

行为分类子网络有如下几个功能:

从TPS(Temporal Proposal subnet)中选择出Proposal segment

对于上述的proposal,用3D RoI 提取固定大小特征

以上述特征为基础,将选择的Proposal做类别判断和时序边框回归

 

Step1: NMS

针对上述Temporal Proposal Subnet提取出的segment,采用NMS(Non-maximum Suppression)非极大值抑制生成优质的proposal。NMS 阈值为0.7.

Step2:3D RoI

利用RoI (Region of interest,兴趣区域)将proposal调整到固定尺寸.这里,个人感觉作者的图有点问题,提取兴趣区域的特征图的输入应该是C3D的输出,也就是512xL/8xH/16xW/16,可能作者遗忘了一个输入的箭头。

假设C3D输出的是 512xL/8x7x7大小的特征图,假设其中有一个proposal的长度(时序长度)为lp,那么这个proposal的大小为512xlpx7x7,这里借鉴SPPnet中的池化层,利用一个动态大小的池化核,ls x hs x ws。最终得到 512x1x4x4大小的特征图

Step3: 全连接层

经过池化后,再输出到全连接层。最后接一个边框回归(start-end time )和类别分类(Activity Scores)。

Step4: Traning

在训练的时候同样需要定义行为的类别,如何给一个proposal定label?同样采用IoU。

IoU > 0.5,那么定义这个proposal与ground truth相同

IoU 与所有的ground truth都小于0.5,那么定义为background

这里,训练的时候正/负样本比例为1:3。

1.4 Loss Function

这里分类和回归联合,而且联合两个子网络。分类采用softmax,回归采用smooth L1.

其中的N都代表batch size

lamda 为1

 

三、实验结果

3.1 THUMOS‘14

首先,作者在THUMOS’14上进行了测试,一个是测试与当前算法的对比,一个是在不同类别上的得分。

 

Case1:不同算法对比

Case2:不同类别上的得分

3.2 ActivityNet

这个好像有点奇怪,作者对比了手工选特征的方法,发现效果不如?

3.3 Charades

接着作者还在Charades上做了实验,结果如下。

3.4 速度对比

基于C3D的速度还是非常快的,加之作者采用了参数共享。

 

 

参考文献

[1] Xu H, Das A, Saenko K. R-C3D: Region convolutional 3d network for temporal activity detection[J]. arXiv preprint arXiv:1703.07814, 2017.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值