Este é um código Pytorch para classificação de vídeo (ação) usando o 3D Resnet treinado por este código.
A resnet 3D é treinada no conjunto de dados da Kinetics, que inclui 400 classes de ação.
Este código usa vídeos como entrada de nomes de classe de entrada e saída e pontuações de classe previstas para cada 16 quadros no modo de pontuação.
No modo de recurso, este código produz recursos de 512 DIMS (após o pool médio global) para cada 16 quadros.
A versão Torch (Lua) deste código está disponível aqui.
conda install pytorch torchvision cuda80 -c soumith
wget http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz
tar xvf ffmpeg-release-64bit-static.tar.xz
cd ./ffmpeg-3.3.3-64bit-static/; sudo cp ffmpeg ffprobe /usr/local/bin;
Suponha que os arquivos de vídeo de entrada estejam localizados em ./videos .
Para calcular as pontuações da classe para cada 16 quadros, use --mode score .
python main.py --input ./input --video_root ./videos --output ./output.json --model ./resnet-34-kinetics.pth --mode score
Para visualizar os resultados da classificação, use generate_result_video/generate_result_video.py .
Para calcular os recursos de vídeo para cada 16 quadros, use --mode feature .
python main.py --input ./input --video_root ./videos --output ./output.json --model ./resnet-34-kinetics.pth --mode feature
Se você usar este código, cite o seguinte:
@article{hara3dcnns,
author={Kensho Hara and Hirokatsu Kataoka and Yutaka Satoh},
title={Can Spatiotemporal 3D CNNs Retrace the History of 2D CNNs and ImageNet?},
journal={arXiv preprint},
volume={arXiv:1711.09577},
year={2017},
}