当前位置: 首页 > article >正文

A Closer Look at Spatiotemporal Convolutions for Action Recognition

1、引言

        论文链接:https://arxiv.org/abs/1711.11248

        在这篇文章中作者更细致地研究了用于行为识别任务中的时空卷积,即在 ResNet[1] 框架下做了大量 2D CNN 到 3D CNN 的实验,证明了 3D CNN 在残差学习框架下的优势,并引入了 2 种新的时空卷积形式 MCx 和 R(2+1)D[2],其中 R(2+1)D 在 Sports-1M 上达到 SOTA,在 Kinetics, UCF101, 和 HMDB51 上接近 SOTA。

2、R3D

        R3D[2] 只是把 ResNet 的所有卷积层换成了对应的 3D 卷积,自然所有的 BatchNorm2d 层要改为 BatchNorm3d,分类头前的 AdaptiveAvgPool2d 层要替换为 AdaptiveAvgPool3d。但 R3D 的第一个卷积层的卷积核尺寸为(3,7,7),stride=(1, 2, 2)。即第一个卷积层卷积核时间尺寸与空间尺寸不同,且没有时间 striding。

2、MCx

        作者把 ResNet 的卷积分为 5 组,对应于 ResNet 的 5 层。x 代表 x 组及其后面的卷积都是 2D 卷积(3D 卷积核时间尺寸为 1, 且没有时间 striding),x 组前面的卷积都是 3D 卷积。其它部分均与 R3D 相同。

4、R(2+1)D

        将 3D 卷积分解为连续的 2D 空间卷积(3D 卷积核时间尺寸为 1, 且没有时间 striding)和 1D 时间卷积(3D 卷积核空间尺寸为 1, 且没有空间 striding)就得到 (2+1)D 卷积,如图 1 所示。

图1  (2+1)D vs 3D 卷积

        设 3D 卷积的输入通道数为 in_c,输出通道数为 out_c,kernel_size=(t,d,d)。则对应的 (2+1)D 卷积中,2D 卷积的输入通道数为 in_c,输出通道数为 Mi,kernel_size=(1,d,d);1D 卷积的输入通道数为 Mi,输出通道数为 out_c ,kernel_size=(t,1,1);为了使  (2+1)D 卷积与对应的 3D 卷积参数量相当,应满足

                    Mi=t*d*d*in_c*out_c//(d*d*in_c+t*out_c).                                (1)

        (2+1)D 在 2D 卷积核 1D 卷积间依次添加了 BatchNorm3d 和 ReLU,使 (2+1)D 卷积的非线性量是 3D 卷积的两倍,使 (2+1)D 卷积可以拟合更复杂的函数。R3D 和 R(2+1)D 的第一组卷积的 torch 源码如图 2 所示。

图2  (2+1)D vs 3D 卷积源码示例        

        这里的 Mi=45 不满足式(1)。在 torch 源码中,若均使用 BasicBlock,则只有第 2 组的第一块和 2、3、4、5 组的其它块的第一个 (2+1)D 卷积满足式(1);若均使用 Bottleneck,则只有第一组的第一块满足式(1)。

        R3D 将所有的 3D 卷积都替换为对应的  (2+1)D 卷积就得到 R(2+1)D。

4、总结

        在论文[2] 中作者主要引入了 2 种新的时空卷积形式 MCx 和 R(2+1)D,其中 MCx 中 MC3 的动作识别 accuracy 最高, MC3 的 accuracy 明显超过了同层数的 R3D,但参数量大约只有其 1/3。R(2+1)D 的参数量和对应的 R3D 差不多,但其 accuracy 明显超过了 MC3。

参考文献

[1] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 770–778, 2016.

[2] Du Tran, Heng Wang, Lorenzo Torresani, Jamie Ray, Yann LeCun, and Manohar Paluri. A closer look at spatiotemporal convolutions for action recognition. In CVPR, pages 6450–6459, 2018. 


http://www.kler.cn/a/273940.html

相关文章:

  • Cursor无限续杯——解决Too many free trials.
  • 寒假刷题Day1
  • torch.max和torch.softmax python max
  • 7_TypeScript Number --[深入浅出 TypeScript 测试]
  • 怎么管理电脑usb接口,分享四种USB端口管理方法
  • Java SpringBoot使用EasyExcel导入导出Excel文件
  • 蓝桥杯(3.18 刷真题)
  • Fail-fast (快速失败)
  • 【爬虫】web自动化和接口自动化
  • 【c++】string类---标准库(STL)中的string类
  • duckdb如何使用extension以及直接连接数据库
  • IonQ最新研究突破!引入光量子纠缠以构建量子计算网络
  • UG NX二次开发(C#)-通过控制点创建样条曲线(UF_CURVE_create_spline )
  • XR虚拟拍摄助力短剧制作:探索未来影视新纪元
  • 敏捷开发——elementUI/Vue使用/服务器部署
  • 邮箱验证码api接口申请流程?有哪些条件?
  • 网络安全防御策略
  • 面向对象程序设计c++有什么合适的习题吗?
  • Python爬虫案例-爬取主题图片(可以选择自己喜欢的主题)
  • 为什么技术人员副业赚钱那么难?
  • 官网有没有用?就这个问题,我曾经鼓舞数个建站老铁。
  • SpringBoot+Vue项目(后端项目搭建 + 添加家居)
  • 深入浅出:数据库的世界 - 介绍、分类、作用与特点
  • LabVIEW湍流等离子体束热效率优化
  • C++ 内存泄露调试技巧
  • android adb 实时画面 和操作