This is a PyTorch implementation of an anomaly detection in video using Convolutional LSTM AutoEncoder. This project is inspired by some articles below.
- Mahmudul Hasan, Jonghyun Choi, Jan Neumann, Amit K. Roy-Chowdhury, Learning Temporal Regularity in Video Sequences (2016), arXiv:1604.04574.
- Yong Shean Chong, Abnormal Event Detection in Videos using Spatiotemporal Autoencoder (2017), arXiv:1701.01546.
Input image | result |
- PyTorch
- tqdm
- Albumentations
- NumPy
- For training, you should get a sequence of video frames which contains 'normal' situations.
- It is a good way to see UCSD Anomaly Detection Dataset to get more details.
- Put a sequence and set your training phase at train.py
class args():
# Dataset setting
channels = 3
size = 256
frames_dir = 'datasets/train'
time_steps = 10
where time_steps denotes each of size using the sliding window technique.
- Run the command below
python train.py
- Just run the command below
python evaluate.py
- Then, you can get regularity scores at each frame.
- For convolutional LSTM with time-distributed convolutions, I refered to great works such PyTorch Forum and ndrplz's work
- You can see same results with Keras in here