pranoyr / cnn-lstm

CNN LSTM architecture implemented in Pytorch for Video Classification

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

License:MIT License


Languages

Language:Python 99.6%Language:Shell 0.4%