Clockwork Convnets for Video Semantic Segmentation
Evan Shelhamer*, Kate Rakelly*, Judy Hoffman*, Trevor Darrell
arXiv:1605.06211
This project reproduces results from the arxiv and demonstrates how to execute staged fully convolutional networks (FCNs) on video in Caffe by controlling the net through the Python interface. In this way this these experiments are a proof-of-concept implementation of clockwork, and further development is needed to achieve peak efficiency (such as pre-fetching video data layers, threshold GPU layers, and a native Caffe library edition of the staged forward pass for pipelining).
For simple reference, refer to these (display only) editions of the experiments:
notebooks: interactive code and documentation that carries out the experiments (in jupyter/ipython format).
nets: the net specification of the various FCNs in this work, and the pre-trained weights (see installation instructions).
caffe: the Caffe framework, included as a git submodule pointing to a compatible version
datasets: input-output for PASCAL VOC, NYUDv2, YouTube-Objects, and Cityscapes
lib: helpers for executing networks, scoring metrics, and plotting
License
This project is licensed for open non-commercial distribution under the UC Regents license; see LICENSE. Its dependencies, such as Caffe, are subject to their own respective licenses.
Requirements & Installation
Caffe, Python, and Jupyter are necessary for all of the experiments. Any installation or general Caffe inquiries should be directed to the caffe-users mailing list.
Install Python, and then install our required packages listed in requirements.txt. For instance, for x in $(cat requirements.txt); do pip install $x; done should do.
Install Jupyter, the interface for viewing, executing, and altering the notebooks.
Configure your PYTHONPATH as indicated by the included .envrc so that this project dir and pycaffe are included.
Download the model weights for this project and place them in nets.
Now you can explore the notebooks by firing up Jupyter.