原论文连接:R-C3D:Region Convolutional 3D Network for Temporal Activity Detection
motivation
temporal action detection是要在视频序列中确定动作发生的时间区间(包括开始时间与结束时间)以及动作的类别。类似于图像中的目标检测任务,时序动作检测也可以分为生成时间区域提名(temporal action proposal generation)以及对提名进行分类(action recognition)两个环节。最常用的数据库为THUMOS14,MEXaction2, ActivityNet 1.2/1.3 等。常用的测评指标为mAP ( mean Average Precision)。 论文采用了3D convnet来实现了end-to-end的训练,提出快速的Region Convolutional 3D Network (R-C3D),用于连续视频流的行为检测。R-C3D使用3D卷积提取视频特征,采用了Faster-RCNN形式的思路,即先生成proposal,再roi-pooling,最后进行分类和边界回归。
R-C3D发表在CVPR2017,并在ActivityNet Large Scale Activity Recognition Challenge 2017做报告(没有参加ActivityNet2017)。性能指标:THUMOS14 上的mAP@0.5 为 28.9%,ActvitiyNet 1.3测试集上的average mAP为 16.74%, 速度方面,单一的Titan X Maxwell GPU可以实现 569帧/秒,确实很快。
论文主要完成3个方面的工作:
1、结合 activity proposal和classification两阶段算法,实现任意时间长度视频的端到端行为检测。
2、在产生proposal和classification两个阶段共享全卷积C3D特征,实现比当前算法加速5倍的检测。
3、在3个具有代表性数据集验证,R-C3D算法具有普适性。
Architecture
![](https://i-blog.csdnimg.cn/blog_migrate/a10f11e656f488e9d55944774db28b30.jpeg)
如图所示 R-C3D模型架构,由3D ConvNet、Proposal子网络和classification子网络组成。 3D ConvNet将原始视频帧作为输入并计算卷积特征。Proposal子网络提出可变长度的候选行为区域以及置信度分数。classification子网络过滤proposal,池化输出固定大小的特征,然后预测活动标签以及修订分割边界。
论文类比Faster R-CNN的 2D RoI pooling,提出3D RoI pooling 在各种分辨率和各种序列长度中提取特征。
论文有一句话:the proposal and classification sub-networks share the same C3D feature maps。l论文认为是共享相同的C3D特种图。但是从论文图2中看,proposal 和classification sub-network是串行关系,没有共同的输入特种图。对论文的“share"表示不解。(转注:改图应该有误解,串行的是坐标,但是基础特征是共享的,类似 FasterRCNN)
3D ConvNet
采用论文《Learning Spatiotemporal Features with 3D Convolutional Networks》提出的网络设计,输入图像尺寸是3×L×H×W(H=W=112,L表示任意长度,仅受内存影响)。经过C3D((conv1a to conv5b))的网络结构,输出512× L/8 × H/16 × W/16(512是输出特征的通道数)
temporal proposal sub-network
为了让模型可以预测可变长度的proposals,模型包含anchor segments。子网络预测关于anchor segments的潜在建议段和预测是否包含行为的二进制标签。anchor segments以L = 8均匀分布的时间位置为中心的预先定义的多尺度窗口。每个时间位置定义K anchor segments,因此总的anchor segments 是(L=8) ×K。 temporal proposal sub-network输入维度是512× L/8 × H/16 × W/16,经过3× 3× 3卷积和1× H/16 × W/16 3D pool下采样,输出512× L/8 ×1×1的特征图。在training阶段,anchor segments正负样本是1:1。
Activity Classification Subnet
主要包括3个步骤:1、NMS消除高度重叠和低置信度的proposal。2、3-D RoI pooling释放固定尺寸特征。3、分类行为标签和回归修订开始结束时间。
Optimization
temporal proposal sub-network和Activity Classification Subnet各有两个损失函数:Softmax cross-entropy loss和Smooth L1 loss。
Proposal subnet loss的 Softmax cross-entropy loss是二进制分类,预测是否包含指定行为,Smooth L1 loss用于proposal 边界回归,优化proposals 和ground truths的相对位移。
Classification subnet loss的Softmax 多类别分类损失预测的是具体的活动类别,Smooth L1 loss用于proposal 边界回归。两个子网络的4个损失函数是联合优化。
prediction
R-C3D模型的行为预测包含两步骤。首先proposal 子网络预测候选区域得分和预测开始结束时间偏移,proposals 通过NMS修订(NMS阈值0.7)。NMS之后,proposal馈送到分类网络用于行为分类,预测的proposals行为边界在回归层进一步修订。proposal和classification子网络的边界回归都是以中心偏移和分段长度计算。预测原始开始和结束时间,需要代入论文的公式2计算。
R-C3D接受可变长度的视频输入。为了利用矢量化深度学习库,对于短视频,用最后一帧填充视频;对于长视频,需要分段(受限于GUP 的memory资源)。
Experiment
性能指标:THUMOS14 上的mAP@0.5 为 28.9%,ActvitiyNet 1.3测试集上的average mAP为 16.74%,Charades测试集合的mAP是12.7%。 速度方面,单一的Titan X Maxwell GPU可以实现 569帧/秒,确实很快。
过程略,个人感觉motivation更重要。
Conclusion
R-C3D相比LSTM更快,论文给出的解释是DAP算法的LSTM循环架构花费时间,R-C3D直接输入视频图像帧,proposal subnets和classification subnets共享权重。 LSTM recurrent architecture in DAP takes time to unroll, while R-C3D directly accepts a wide range of frames as input and the convolutional features are shared by the proposal and classification subnets