All Projects β†’ epic-kitchens β†’ epic-kitchens-55-starter-kit-action-recognition

epic-kitchens / epic-kitchens-55-starter-kit-action-recognition

Licence: MIT License
🌱 Starter kit for working with the EPIC-KITCHENS-55 dataset for action recognition or anticipation

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to epic-kitchens-55-starter-kit-action-recognition

Practical Machine Learning With Python
Master the essential skills needed to recognize and solve complex real-world problems with Machine Learning and Deep Learning by leveraging the highly popular Python Machine Learning Eco-system.
Stars: ✭ 1,868 (+4570%)
Mutual labels:  jupyter, notebook, pandas
biojupies
Automated generation of tailored bioinformatics Jupyter Notebooks via a user interface.
Stars: ✭ 96 (+140%)
Mutual labels:  jupyter, notebook
jupyter-django
Using Jupyter Notebook with Django: a presentation
Stars: ✭ 42 (+5%)
Mutual labels:  jupyter, pandas
colab-badge-action
GitHub Action that generates "Open In Colab" Badges for you
Stars: ✭ 15 (-62.5%)
Mutual labels:  jupyter, notebook
cognipy
In-memory Graph Database and Knowledge Graph with Natural Language Interface, compatible with Pandas
Stars: ✭ 31 (-22.5%)
Mutual labels:  jupyter, pandas
python ml tutorial
A complete tutorial in python for Data Analysis and Machine Learning
Stars: ✭ 118 (+195%)
Mutual labels:  jupyter, notebook
jupyter-bbox-widget
A Jupyter widget for annotating images with bounding boxes
Stars: ✭ 19 (-52.5%)
Mutual labels:  jupyter, notebook
epic-kitchens-55-lib
β˜• EPIC-KITCHENS-55 dataset python library
Stars: ✭ 28 (-30%)
Mutual labels:  action-recogntion, epic-kitchens
pytest-notebook
A pytest plugin for regression testing and regenerating Jupyter Notebooks
Stars: ✭ 35 (-12.5%)
Mutual labels:  jupyter, notebook
dmind
jupyter notebook ηš„ζ€η»΄ε―Όε›Ύζ’δ»Ά
Stars: ✭ 21 (-47.5%)
Mutual labels:  jupyter, notebook
MGT-python
Musical Gestures Toolbox for Python
Stars: ✭ 25 (-37.5%)
Mutual labels:  jupyter, notebook
ipychart
The power of Chart.js with Python
Stars: ✭ 48 (+20%)
Mutual labels:  jupyter, notebook
observable-jupyter
Embed visualizations and code from Observable notebooks in Jupyter
Stars: ✭ 27 (-32.5%)
Mutual labels:  jupyter, notebook
Hello-Kaggle-Guide-KOR
Kaggle을 처음 μ ‘ν•˜λŠ” μ‚¬λžŒλ“€μ„ μœ„ν•œ λ¬Έμ„œ
Stars: ✭ 140 (+250%)
Mutual labels:  jupyter, notebook
mercury
Mercury - data visualize and discovery with Javascript, such as apache zeppelin and jupyter
Stars: ✭ 29 (-27.5%)
Mutual labels:  jupyter, notebook
2021 course dev-rougier
NumFocus Academy - Matplotlib (beginner)
Stars: ✭ 54 (+35%)
Mutual labels:  jupyter, notebook
sage-binder-env
A SageMath-based computing environment for binder
Stars: ✭ 17 (-57.5%)
Mutual labels:  jupyter, notebook
Jupyter Tips And Tricks
Using Project Jupyter for data science.
Stars: ✭ 245 (+512.5%)
Mutual labels:  jupyter, pandas
Ipython
Official repository for IPython itself. Other repos in the IPython organization contain things like the website, documentation builds, etc.
Stars: ✭ 15,107 (+37667.5%)
Mutual labels:  jupyter, notebook
astetik
Astetik takes away the pain from telling visual stories with data on Python
Stars: ✭ 15 (-62.5%)
Mutual labels:  jupyter, pandas

EPIC-KITCHENS-55 Action recognition starter kit

CircleCI status badge

This is a tutorial introduction to the EPIC-KITCHENS-55 egocentric action dataset.
We'll introduce you to EPIC and some tools like Snakemake, a python build tool, for managing the process of

  • Downloading RGB frames, Optical flow frames, and action metadata.
  • Integrating the metadata and frames into a format suitable for using a model training loop.

Steps:

  1. Get your environment setup with Conda
  2. Download and process the dataset with Snakemake
  3. Explore the dataset and learn how to load frames and labels in Jupyter notebooks

Environment set-up

In this section we'll set up a virtual environment with all the tools and libraries you need, allowing you to easily work with EPIC.

We provide a conda environment.yaml file describing the environment you need to work with EPIC

If you don't have conda, go and install it, either miniconda or anaconda will be fine.

Download the repository, and create the conda virtual environment:

$ git clone https://github.com/epic-kitchens/starter-kit-action-recognition.git epic
$ cd epic
$ conda env create -n epic -f environment.yaml
$ conda activate epic

Data pipeline: Snakemake

In this section we'll download EPIC and perform some processing steps to transform it into a format suitable for working with in a model training loop.

We use Snakemake, a build tool similar to make, to manage the downloading of all media and metadata, segmentation of frames into action segments, and ingestion of data into GulpIO, a high performance format for video storage for machine learning.

To download the EPIC action segment labels, and build a new pickled dataframe for the train and test sets you can run snakemake data/processed/{test_{,un}seen,train}_labels.pkl.

You have now built data/processed/train_labels.pkl, data/processed/test_seen_labels.pkl, and data/processed/test_unseen_labels.pkl, which contain the train and test labels of EPIC stored as a pickled dataframe. You can now open up a python session and inspect the labels with pd.read_pickle('./data/processed/train_labels.pkl').

You should now build the gulp directories that contain all the flow and RGB frames which are used in the second notebook, and to be used for training purposes.

NOTE: If you are running on a machine where you have separate fast storage and are reading from a parallel network file system, you might want to set the tmp_dir variable in config.yml to a path residing on that file system. This will instruct Snakemake where to extract the frames and where to gulp the files to disk.

$ snakemake -p gulp_all

This will download the RGB (220GB) and flow (100GB) frames, segment them using the test/train labels, and finally gulp the data. WARNING: The final few steps which involve gulping the frames will take a very long time if you aren't using a SSD - as such, we recommend that you locate the data directory on a SSD and symlink the directory here.

You should also download the class CSVs that describe the mapping between verbs/nouns and their numerical classes.

$ snakemake -p download_metadata

Notebooks

In this section we'll investigate the actions within EPIC and learn how to use the EPIC-KITCHENS-55 library that provides software for common use cases. Ensure you have run snakemake -j $(nproc) all before using these notebooks as they use files created from the pipeline.

  1. Introduction to EPIC
  2. Reading frames with GulpIO

Appendix A: Importing data for training with GulpIO

Both RGB frames and flow are encoded as JPEG files. Individual files to be slow to read from disk so we suggest employing GulpIO for storing the data in a manner suitable for training.

We typically structure the files like so:

epic
|--- rgb-segments
|    |--- P01
|    |    |--- P01_01
|    |    |--- ...
|    |    |--- P01_19
|    ...
|--- flow-segments
|    |--- P01
|    |    |--- P01_01
|    |    |    |--- u
|    |    |    |--- v
|    |    |--- ...
|    |    |--- P01_19
|    ...

Inside each of these folders are named segments in the form <video_id>_<uid>_<narration> (e.g. P01_01_0_open-door)

<video_id> := regex(P\d\d_\d\d)
<uid> := regex(\d+)
<narration> := <word>[-<word>]*
<word> := [a-zA-Z][a-zA-Z0-9_]*

Appendix B: Manual Download

If you don't wish to use Snakemake to download the data, you can choose to manually download it yourself.

Media

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].