zoukankan      html  css  js  c++  java
  • R-C3D:用于时间活动检测的区域3D网络

    论文原称:R-C3D: Region Convolutional 3D Network for Temporal Activity Detection(2017)

    主要贡献:

    1.提出一个包括活动候选区和任意长度活动的分类的端到端模型。如下图所示

     2.提出在候选区生成和分类部分共享全卷积C3D特征,实现了比当前模型快5倍的速度。

        论文主要从Faster R-CNN受启发而来,论文大部分idea都是Faster R-CNN中提出的(看这篇论文的时候,我真是深感生不逢时啊),作者将2D目标检测的方法用到了时间卷积网络,因此出现了R-C3D。

    R-C3D模型框架

       如上图所示,R-C3D由3部分组成,一个共享的3D ConvNet特征提取器,一个时间候选段(temporal proposal stage)生成部分,一个活动分类及调整部分。

        模型输入是3xLxHxW的RGB视频帧,先经过3D ConvNet特征提取网络,再由temporal proposal stage 生成候选区域,候选区域的连续帧将进行分类,并调整候选区域。

        关于共享的3D ConvNet特征提取器没有过多介绍,主要采取C3D网络的五层卷积层,第五层输出的尺寸是512x (L/8) x (H/16) x (W/16)。512是feature map 的通道数,H和W是112,L是任意长度的,受内存限制。

    Temporal Proposal Subnet

      这个部分的主要内容是实现模型对任意长度候选段的预测。

        由于第五层输出了长度为L/8的时间位置(temporal locations)(指的是时间维度上的长度), 这里每个位置产生K个anchor片段(对anchor不懂的,直接理解为K个片段也可以),每个anchor片段都有固定但不同的比例,即总共产生的anchor片段是L/8*K个。

        然后,通过大小为(1xH/16xW/16)的3D最大池化对空间维度上进行下采样(从H/16xW/16  到1x1 )产生时间特征图Ctpn (R512xL/8 x1x1),Cptn中每个位置的512维的向量用来预测一个中心位置和每个anchor片段长度{Ci, Li}的相对偏移{$Ci, $Li}, i属于{1, ...., K}

        候选段的偏移和得分是通过在Cptn的顶端增加两个1x1x1的卷积层来预测的。

        在训练阶段,通过两种方式来确定正样本,

        1)与一些ground-truth活动的IoU值大于0.7;

        2)与一些ground-truth活动的IoU值最大。

        若IoU低于0.3,则直接认为是负样本。最后正负样本的比例为1:1.

    Activity Classification Subnet

      对上个阶段产生的anchor proposal片段(由于比例不一样,因此长度不一)通过3D RoI池化来抽出固定长度的候选段(长度都一样),然后对候选段进行分类和边界回归。

        对于那些生成的anchor 候选段,互相覆盖率比较高的,且置信度比较低的,使用非极大值抑制(NMS)直接去除,NMS的阈值设为0.7。

        关于3D RoI,其作用就是从任意的L,H,W的图输出一个固定大小的图。

        例如,输入的图的尺寸是 LxHxW,  需要输出的大小为Ls x Hs xWs。只需要一个大小为L/Ls, H/Hs, W/Ws的最大池化操作即可。

        回到本文,在经过3D RoI池化后输入两个全连接层,经过两个全连接层后进入分类和候选段回归部分,分类和回归又是各自两个全连接层。(具体看图2)

    Optimization

    分类使用softmax, 回归使用smooth-L1 loss ,

    关于smooth-L1 loss如下:

    因此整个模型的目标函数为:

        前面部分是分类的部分。后面的部分是回归。

        关于回归部分,ti表示预测的相对偏移量,ti*表示ground truth片段转到anchor片段的转移坐标(这句话比较难理解,这里anchor片段指的是对时间维度进行了卷积操作后(变了长度)的部分而ground truth指的是原视频的片段,(感觉这个anchor不是yolo里的那个anchor了,yolo里的anchor指的是原图片下的点))。

    其坐标 ti={$Ci, $Li },ti 和ti* 计算如下:

        带*的Ci是ground truth的中心,Ci是anchor 的中心,带*的Li是ground truth的长度,Li是anchor的长度。

        为防止这部分没讲清楚,把论文原文相关部分贴在下面

        到此,R-C3D的主要内容就讲完了,剩下的是一些实验,如IoU阈值取多少合适,论文进行了不同阈值效果对比,发现取0.5比较好,然后还测试了阈值取0.5时在THUMOS14数据集上各个类别的AP值,以及与其他模型取得的AP值对比。

        最后是R-C3D与其他SOTA模型的一些map与速度对比。具体如下:

     

    如有错误或不合理之处,欢迎在评论中指正。

    本文来源于微信公众号“ CV技术指南 ” 。更多内容与最新技术动态尽在公众号发布。

    欢迎扫描下方二维码关注公众号“CV技术指南”,主要进行计算机视觉方向的论文解读,最新技术跟踪,以及CV技术的总结。

    原创文章第一时间在公众号中更新,博客只在有空时间才更新少量公众号文章

     

  • 相关阅读:
    [Android Training视频系列]2.3 Stopping and Restarting an Activity
    [Android Training视频系列]2.1 Starting an Activity
    【Android每日一讲】2012.11.29 自定义下拉菜单模式 Spinner与setDropDownViewResource
    【Android每日一讲】2012.11.28 快速地搜索手机文件引擎 Java IO的应用
    [Android Samples视频系列之ApiDemos] AppActivityTranslucent
    [Android Samples视频系列之ApiDemos] AppActivityTranslucentBlur和Wallpaper
    [Android Training视频系列]2.2 Pausing and Resuming an Activity
    [Android Training视频系列]1.4 Starting Another Activity
    [Android Samples视频系列之ApiDemos] AppActivitySaveRestore State
    [Android Samples视频系列之ApiDemos] AppActivitySetWallpaper
  • 原文地址:https://www.cnblogs.com/wxkang/p/13937295.html
Copyright © 2011-2022 走看看