R-C3D论文笔记
R-C3D: Region Convolutional 3D Network for Temporal Activity Detection
论文地址:https://arxiv.org/pdf/1703.07814.pdf
刚看完论文,先总结一下论文的创新点:
1.推广faster-RCNN的Region Proposal Network到时域
2.推广faster-RCNN的ROI Pooling算法到时域
3.端到端的训练方式
R-C3D总览网络的总体结构:
1.提取特征:C3D网络构成的特征提取网络提取特征,等效于Faster-RCNN中的ImageNet预训练的特征网络。
2.给出建议区域:根据C3D特征,给可能包含活动(activities)的时间区域(propose temporal regions)。等效于Faster-RCNN中的RPN,这里被称为Proposal Subnet
3.给出建议区域的动作类型:根据C3D特征和建议区域,得到区域内的实际活动(activities)类型,比如图中的跑步。等效于Faster-RCNN中的ROI POOLING+网络后半段的分类网络,这里被称为Classification Subnet。
注意:
输入是整个视频(或者任意长度视频段),C3D特征的输出被第2步和第3步共享。
详细的网络结构如下:
网络详细结构1.3D ConNet:输入尺寸为3*L*H*W的视频,L为视频帧数,也是视频时序,输出为512*L/8*H/16*W/16的视频C3D特征。只需要使用C3D网络跑一遍视频即可。
2. Proposal Subnet,或Temporal Proposal Subnet。网络的前面,输入的是C3D特征,输出为512*L/8*1*1。这里的L/8对应于原来视频中的L,时序也严格对应,每个时序上的特征被保存在512维的向量里。基于这512维的向量,我们算基于anchor segments的一个时序上的偏差。作者定义的anchor segments,对应于Faster-RCNN的锚框,只不过,这是一个时序上的多尺度检测框,有K种。那么最后输出有K*L/8个anchor segments。预设的anchor segments如下
最终计算得到的结果相对于预设anchor segments的偏差,也就是:
3.Classification Subnet,或Activity Classification Subnet。利用NMS对Proposal Subnet的结果进行处理后,得到了时间长度大小不一的建议区域(Temporal Proposals)。这里引入一个3D ROI Pooling的概念,假设输入是l*h*w,我们目的是得到一个
直观的想法就是,把输入进行划分,划分成这么多区域,然后做pooling。OK,就是这样。