Skip to content
Online Product Reviews for Affordances
Jupyter Notebook Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

OPRA Dataset: Online Product Reviews for Affordances

Kuan Fang*, Te-Lin Wu*, Daniel Yang, Silvio Savarese and Joseph J. Lim

For questions regarding OPRA Dataset please contact Kuan Fang and Te-Lin Wu.


The OPRA Dataset was introduced in our Demo2Vec paper for reasoning object affordances from online demonstration videos. It contains 11,505 demonstration clips and 2,512 object images scraped from 6 popular YouTube product review channels along with the corresponding affordance annotations. More details can be found on our website.


author = {Fang, Kuan and Wu, Te-Lin and Yang, Daniel and Savarese, Silvio and Lim, Joseph J.},
title = {Demo2Vec: Reasoning Object Affordances From Online Videos},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2018}


Install youtube-dl:

sudo -H pip install --upgrade youtube-dl

Install ffmpeg:

sudo add-apt-repository ppa:mc3man/trusty-media  
sudo apt-get update  
sudo apt-get install ffmpeg  

To visualize the dataset using Jupyter notebooks, these packages need to be installed: NumPy, OpenCV, Matplotlib, Jupyter.


One can follow the step-by-step instructions below or just run the bash script bash ./

Download and unzip data/ (around 500MB). The folder contains playlists of YouTube product review videos (playlists/), product images (images/), and human annotations of the video segmentation and interactiion regions (annotations/).


Download the product review videos from YouTube (around 51GB). (Note that some of the url may be no longer valid when you run the script, because they have been deleted from the playlist or due to other technical issues.)

python --playlist data/playlists --output data/raw_videos/

Segment the videos according to the annotations (around 13GB). After segmentation, raw videos will be no longer needed and can be removed.

python --annotations data/annotations/train.txt --raw data/raw_videos/ --output data/clips
python --annotations data/annotations/test.txt --raw data/raw_videos/ --output data/clips


We provide a simple demo for loading and visualizing the dataset. Please run the Jupyter notebook:

jupyter notebook

# Or run remotely. 
jupyter notebook --no-browser --port=8888

Open ./notebooks/visualize_annotations.ipynb in the browser (Chrome and FireFox are recommended) at this link. The notebook provide a basic demo of loading the dataset and visualizing the video clip, the target image, and the annotation.

You can’t perform that action at this time.