Temporal Relation Networks
We release the code of the Temporal Relation Networks, built on top of the TSN-pytorch codebase.
Note: always use git clone --recursive https://github.com/metalbubble/TRN-pytorch
to clone this project
Otherwise you will not be able to use the inception series CNN architecture.
Data preparation
Download the something-something dataset or jester dataset or charades dataset. Decompress them into some folder. Use process_dataset.py to generate the index files for train, val, and test split. Finally properly set up the train, validatin, and category meta files in datasets_video.py.
Code
Core code to implement the Temporal Relation Network module is TRNmodule. It is plug-and-play on top of the TSN.
Training and Testing
- The command to train single scale TRN
CUDA_VISIBLE_DEVICES=0,1 python main.py something RGB \
--arch BNInception --num_segments 3 \
--consensus_type TRN --batch-size 64
- The command to train multi-scale TRN
CUDA_VISIBLE_DEVICES=0,1 python main.py something RGB \
--arch BNInception --num_segments 8 \
--consensus_type TRNmultiscale --batch-size 64
- The command to test the single scale TRN
python test_models.py something RGB model/TRN_something_RGB_BNInception_TRN_segment3_best.pth.tar \
--arch BNInception --crop_fusion_type TRN --test_segments 3
- The command to test the multi-scale TRN
python test_models.py something RGB model/TRN_something_RGB_BNInception_TRNmultiscale_segment8_best.pth.tar \
--arch BNInception --crop_fusion_type TRNmultiscale --test_segments 8
Pretrained models (working on it)
- Download pretrained models on Something-Something, Jester, and Moments in Time
cd pretrain
./download_models.sh
- Test pretrained model.
python test_video.py something RGB pretrain/TRN_something_RGB_BNInception_TRNmultiscale_segment8_best.pth.tar
TODO
- TODO: Web-cam demo script
- TODO: Visualization script
- TODO: class-aware data augmentation
Reference:
B. Zhou, A. Andonian, and A. Torralba. Temporal Relational Reasoning in Videos. arXiv:1711.08496, 2017. PDF
@article{zhou2017temporalrelation,
title = {Temporal Relational Reasoning in Videos},
author = {Zhou, Bolei and Andonian, Alex and Torralba, Antonio},
journal={arXiv:1711.08496},
year={2017}
}
Acknowledgement
Our temporal relation network is plug-and-play on top of the TSN-Pytorch, but it could be extended to other network architectures easily. We thank Yuanjun Xiong for releasing TSN-Pytorch codebase. Something-something dataset and Jester dataset are from TwentyBN, we really appreciate their effort to build such nice video datasets. Please refer to their dataset website for the proper usage of the data.