一 文章基本信息
- github: 3D-ResNets-PyTorch
- CVPR2018: Can Spatiotemporal 3D CNNs Retrace the History of 2D CNNs and ImageNet?
- ICCV2017: Learning Spatio-Temporal Features with 3D Residual Networks for Action Recognition
- CVPR2017: Aggregated Residual Transformations for Deep Neural Networks
二 文章内容
1. ICCV2017大致思想:
由于3DCNN在处理视频数据的良好表现,从而将3D卷积引入到ResNet网络中。将3D-ResNet在ActivityNet和Kinetics进行训练,记过发现在ActivityNet上出现了过拟合,而在大数据量的Kinetics上的表现优于C3D等网络。
Kinetics上的测试结果
2. CVPR2018大致内容:
因为在ImageNet预训练的模型应用很广泛,作者希望可以仿照2DCNN预训练模型的成功,提供基于3DResNet在Kinetics预训练的结果。
ResNet-18在各数据集上训练的结果
2.1 过拟合说明:
作者基于ResNet-18通过在各个数据集上的测试,证明了仅为18层的网络在小数量的数据集UCF101、HMDB-51、ActivityNet上出现了过拟合,而在数据量最为充分的Kinects上表现最好。如果希望在UCF101等小数据集上得到较高的准确率,可以基于kinects预训练的模型进行微调。下图是在UCF101和HMDB-51上微调的结果:
基于Kinects预训练模型微调的结果
2.2 Kinects数据量充足:
使用预训练的模型在UCF101与HMDB-51上进行微调,与其他SOAT进行对比,相对于其他复杂的模型,单单使用3D-ResNext即可取得良好的效果:SOTA对比
2.3 ResNext与ResNet:
引入的原因是,希望能在不增加模型复杂度的条件下,提升模型的准确率。借鉴了Inception对网络进行拓宽的思想。一般会使用32个cardinality,网上相关的介绍和对比很多。ImageN-5K实验结果
三 模型测试与微调复现
-
UCF101数据集上微调:
3DResNext-101(16f)(灰色) val:84.52%+ train :89.17% 55epoch
3DResNet-50 (蓝色) val:80.56% train:94.7% 90epoch
3DResNet-18 (桃红)val:75.55% train:89.51% 60epoch
**训练集**准确率与时间图像
训练集Loss与时间图像
- 猜想可能是我参数选择,训练的方式,硬件资源等等问题,得到结果与文中指标相去甚远
作者的解释是:
‘If you get the accuracy in val.log, the accuracy is the clip-level accuracy whereas the accuracy reported in my paper is the video-level accuracy, which can be evaluated using val.json and eval_ucf101.py’ - 试着用了一下原文中的test.py发现测量的结果相差太远,在对比作者微调发布的预训练模型后,认为应该是程序的问题。后续也没有进行修改再测试了
- github讨论中,有人说在video-level测量的结果和作者论文差不多,在clip-level测量的结果一般都会差一些,有兴趣的同学可以试试
最后:
- 第一次写博客,欢迎大家建议指正 0.0
- 禁止转载!!! 谢谢~