All Projects → zhengshou → Autoloc

zhengshou / Autoloc

Licence: mit
AutoLoc: Weakly-supervised Temporal Action Localization in Untrimmed Videos. ECCV'18.

Projects that are alternatives of or similar to Autoloc

Aws Research Workshops
This repo provides a managed SageMaker jupyter notebook with a number of notebooks for hands on workshops in data lakes, AI/ML, Batch, IoT, and Genomics.
Stars: ✭ 73 (-1.35%)
Mutual labels:  jupyter-notebook
Jakevdp.github.io Source
Source for my Pythonic Perambulations blog
Stars: ✭ 73 (-1.35%)
Mutual labels:  jupyter-notebook
Python
En este repositorio encontraras todo relacionado con python, desde definiciones básicas hasta Machine Learning y un poco de Data Science, este repositorio contiene todo lo que e aprendido acerca de python, espero lo disfrutes.
Stars: ✭ 74 (+0%)
Mutual labels:  jupyter-notebook
Rl Workshop
Reinforcement Learning Workshop for Data Science BKK
Stars: ✭ 73 (-1.35%)
Mutual labels:  jupyter-notebook
Python nlp tutorial
This repository provides everything to get started with Python for Text Mining / Natural Language Processing (NLP)
Stars: ✭ 72 (-2.7%)
Mutual labels:  jupyter-notebook
Islr With Python
Introduction to Statistical Learning with R을 Python으로
Stars: ✭ 73 (-1.35%)
Mutual labels:  jupyter-notebook
Lectures Labs
Slides and Jupyter notebooks for the Deep Learning lectures at Master Year 2 Data Science from Institut Polytechnique de Paris
Stars: ✭ 1,184 (+1500%)
Mutual labels:  jupyter-notebook
Rental Prediction
2018年全国大学生计算机应用能力大赛之住房月租金预测第一名代码
Stars: ✭ 74 (+0%)
Mutual labels:  jupyter-notebook
Predicting Diseases From Symptoms
Training a decision tree to predict diseases from symptoms.
Stars: ✭ 73 (-1.35%)
Mutual labels:  jupyter-notebook
Gan Vis
Visualization of GAN training process
Stars: ✭ 74 (+0%)
Mutual labels:  jupyter-notebook
Make A Map Geopandas
Tutorial on how to make a choropleth map using Geopandas and Matplotlib in Python.
Stars: ✭ 73 (-1.35%)
Mutual labels:  jupyter-notebook
Bootcamp2018
Repository of syllabi, lecture notes, Jupyter notebooks, code, and problem sets for OSM Lab Boot Camp 2018
Stars: ✭ 73 (-1.35%)
Mutual labels:  jupyter-notebook
Nlp Tutorial
A list of NLP(Natural Language Processing) tutorials
Stars: ✭ 1,188 (+1505.41%)
Mutual labels:  jupyter-notebook
Pydata la 2018
Added repo for PyData LA 2018 tutorial
Stars: ✭ 73 (-1.35%)
Mutual labels:  jupyter-notebook
Qastrategy101
strategy 101 从今天开始 逐步开放101个基础策略的QA实现 包含5个大类
Stars: ✭ 74 (+0%)
Mutual labels:  jupyter-notebook
Emacs Ipython Notebook
Jupyter notebook client in Emacs
Stars: ✭ 1,185 (+1501.35%)
Mutual labels:  jupyter-notebook
Rl Course Experiments
Stars: ✭ 73 (-1.35%)
Mutual labels:  jupyter-notebook
Python Note
《Python 学习手册》(第四版 + 第五版)笔记
Stars: ✭ 74 (+0%)
Mutual labels:  jupyter-notebook
Deep learning for biologists with keras
tutorials made for biologists to learn deep learning
Stars: ✭ 74 (+0%)
Mutual labels:  jupyter-notebook
Tensorflow Camp
Stars: ✭ 74 (+0%)
Mutual labels:  jupyter-notebook

AutoLoc

Citing

If you find AutoLoc or pre-extracted features useful, please consider citing:

@InProceedings{zheng_eccv18_autoloc,
  title={AutoLoc: Weakly-supervised Temporal Action Localization in Untrimmed Videos},
  author={Shou, Zheng and Gao, Hang and Zhang, Lei and Miyazawa, Kazuyuki and Chang, Shih-Fu},
  booktitle = {ECCV},
  year={2018}
}

Installation

This code has been tested with NVIDIA Titan X GPU of 12GB memory, Ubuntu 14.04, CUDA 8.0, cuDNN v5, caffe python interface, python2, python libs specified in requirements.txt (pip install -r requirements.txt). Please use "Issues" to ask questions or report bugs. Thanks.

For caffe, originally I was using MS internal caffe, but in order to publish this code repo, I have tested it with bvlc official caffe. I modified its python interface a little bit regarding the logging part and my customized bvlc caffe has been provided in this repo as well. Note that in order to install it, just need to follow the instructions on the official bvlc caffe website. Please refer any issues of setting up caffe on their venue. Basically the needed procedure is:

  1. cd bvlc_caffe;
  2. prepare your Makefile.config with WITH_PYTHON_LAYER=1 enabled;
  3. make all;
  4. make pycaffe;
  5. export PYTHONPATH=/your_bvlc_caffe_path/python:$PYTHONPATH.

Feature extraction

If you are willing to extract features by yourself, note that for experiments on AN v1.2, please refer to https://github.com/wanglimin/UntrimmedNet/issues/16 to find UntrimmedNet pre-trained model on train set. Models released here http://mmlab.siat.ac.cn/untrimmednet_model/ were trained on train+val set.

Alternatively, we release our extracted features for public downloading.

TH'14: OneDrive or BaiduCloud;

AN v1.2: OneDrive split00, split01 or BaiduCloud split00-split11

Details of the above features:

  1. Put TH14.tar.gz under ./data/TH14/; cd ./data/TH14/; tar -xzvf TH14.tar.gz -C ./; features are contained in the att_unfused/ folder. In att_unfused/:
    • Each video has one individual tsv file storing features.
    • Each row in tsv represents features of one whole video. Each row sequentially contains: video id, class label, feature, class activation, attention score.
    • For feature, class activations, attention score, values are separated by ; and data corresponding to each frame are concatenated sequentially.
    • For feature, the data field has dimension num of frames (T) x dim of feature (2048). T is the total number of frames of the whole video. For the 2048-dim vector, the first half 1024 is corresponding to the temporal CNN and the second half 1024 is spatial.
    • Likewise, class activation has dimension num of frames (T) x 2 x num of classes (K). The first half K is temporal (score after softmax over classes) and the second half is spatial. Attention score has dimension num of frames (T) x 2 (temporal attention, spatial attention).
    • All videos within each subset have stacked into one whole file, i.e. test.all.tsv and val.all.tsv.
  2. For AN:
    • Due to the storage limit, on OneDrive, I have first splited AN.tar.gz into AN.tar.gz.split00 and AN.tar.gz.split01 using split -d -b 19G AN.tar.gz AN.tar.gz.split. Thus after downloading the above splited files, the user needs to first merge them via cat AN.tar.gz.split00 AN.tar.gz.split01 > AN.tar.gz; for Baidu Cloud, more splits (each of 3G) have been used.
    • Put AN.tar.gz under ./data/AN/; cd ./data/AN/; tar -xzvf AN.tar.gz -C ./; features are contained in the att_unfused_onlytrain/ folder
  3. We follow UntrimmedNet to extract feature every 15 frames.

Overview of AutoLoc code structure

  1. data/: contains TH'14 and AN datasets
  2. exp/: scripts for running experiments and our trained model and testing results etc.
  3. lib/: core code of AutoLoc.
  4. tools/: tools for launching AutoLoc and evaluating results. Note that proc_net.py takes a whole set of videos as input and thus usually is used for training. proc_prll_net.py can launch multiple concurrent processes that each of them only takes one single video as input and thus usually is used for testing so that making predictions for each video in parallel to speedup.

Running AutoLoc

Under the root directory of this repo, run python exp/TH14/release/run.py for experiments on TH'14 and python exp/AN/release/run.py for experiments on AN v1.2. These scripts run training first and then run testing. In these scripts, num_process can be used to set the number of processes to be launched during the parallel testing.

Results

THUMOS'14 train on the val set and test on the testing set (mAP):

IoU 0.3 0.4 0.5 0.6 0.7
Sun et al. 8.5 5.2 4.4 - -
Hide-and-Seek 19.5 12.7 6.8 - -
UntrimmedNet 28.2 21.1 13.7 - -
AutoLoc (Ours) 35.8 29.0 21.2 13.4 5.8

AN v1.2 train on the trainig set and test on the val set (mAP):

IoU 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 Avg
UntrimmedNet 7.4 6.1 5.2 4.5 3.9 3.2 2.5 1.8 1.2 0.7 3.6
AutoLoc (Ours) 27.3 24.9 22.5 19.9 17.5 15.1 13.0 10.0 6.8 3.3 16.0
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].