Skip to content

CNN LSTM architecture implemented in Pytorch for Video Classification

License

Notifications You must be signed in to change notification settings

pranoyr/cnn-lstm

Repository files navigation

CNN LSTM

Implementation of CNN LSTM with Resnet backend for Video Classification alt text

Getting Started

Prerequisites

  • PyTorch (ver. 0.4+ required)
  • FFmpeg, FFprobe
  • Python 3

Try on your own dataset

mkdir data
mkdir data/video_data

Put your video dataset inside data/video_data It should be in this form --

+ data 
    + video_data    
            - bowling
            - walking
            + running 
                    - running0.avi
                    - running.avi
                    - runnning1.avi

Generate Images from the Video dataset

./utils/generate_data.sh

Train

Once you have created the dataset, start training ->

python main.py --use_cuda --gpu 0 --batch_size 8 --n_epochs 100 --num_workers 0  --annotation_path ./data/annotation/ucf101_01.json --video_path ./data/image_data/  --dataset ucf101 --sample_size 150 --lr_rate 1e-4 --n_classes <num_classes>

Note

  • All the weights will be saved to the snapshots folder
  • To resume Training from any checkpoint, Use
--resume_path <path-to-model> 

Tensorboard Visualisation(Training for 4 labels from UCF-101 Dataset)

alt text

Inference

python inference.py  --annotation_path ./data/annotation/ucf101_01.json  --dataset ucf101 --model cnnlstm --n_classes <num_classes> --resume_path <path-to-model.pth> 

References

License

This project is licensed under the MIT License

About

CNN LSTM architecture implemented in Pytorch for Video Classification

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published