Action Recognition Toolbox for CUHKÐZ&SIAT submission to ActivityNet 2016
This repository holds the materials necessary to reproduce the results for our solution to ActivityNet Challenge 2016. We won the 1st place in the untrimmed video classification task.
Although initially designed for the challenge, the repository also means to provide an accessible framework for general video classification tasks.
We are currently organizing the codebase. Please stay tuned.*
Jul 14 - The correct reference flow model is available for download. See here.
Jul 11 - Demo website is now online!
Jul 10 - Web demo code released
The codebase is written in Python. It is recommended to use Anaconda distribution package with it.
Besides, we also use Caffe and OpenCV. Particularly, the OpenCV should be compiled with VideoIO support. GPU support will be good if possible. If you use
build_all.sh, it will locally install these dependencies for you.
NVIDIA GPU with CUDA support. At least 4GB display memory is needed to run the reference models.
git clone --recursive https://github.com/yjxiong/anet2016-cuhk
If you happen to forget adding
--recursiveto the command. You can still go to the project directory and issue
git submodule update --init
data/plastering.avifor your example. To do single video classification with RGB model one can run
python examples/classify_video.py data/plastering.aviIt should print the top 3 prediction in the output. To use the two-stream model, one can add
--use_flowflag to the command. The framework will then extract optical flow on the fly.
python examples/classify_video.py --use_flow data/plastering.aviYou can use your own video files by specifying the filename.
One can also specify a youtube url here to do the classification, for example
python examples/classify_video.py https://www.youtube.com/watch?v=QkuC0lvMAX0
The two-stream model here consists of one reset-200 model for RGB input and one BN-Inception model for optical flow input. The model spec and parameter files can be found in
We also provide a light-weighted demo server. The server uses Flask.
It will be run on
127.0.0.1:5000. It supports uploading local files and directly analyzing Youtube-style video urls.
For a quick start, we have set up a public demo server at
The server runs on the Titan X GPU awarded for winning the challenge. Thanks to the organizers!
Released under BSD 2-Clause license.