Unsupervised Discovery of Mid-Level Discriminative Patches
Matlab C++ M
Switch branches/tags
Nothing to show
Failed to load latest commit information.
code Adding code that demonstrates how to pool features. Mar 5, 2013
README.md Added setup information in readme Oct 24, 2013


Discriminative Patches

This repository contains code for the following paper

Saurabh Singh, Abhinav Gupta and Alexei A. Efros. "Unsupervised Discovery of Mid-Level Discriminative Patches." In European Conference on Computer Vision (2012). (arXiv:1205.3137) http://graphics.cs.cmu.edu/projects/discriminativePatches/

All Rights Reserved @ saurabh.me@gmail.com (Saurabh Singh).


  1. Git clone this repository (if you are reading this on git-hub).
  2. Download the pre-trained models from the project website and un-compress the file in the root directory of the repository, i.e. as a sibling to the 'code' directory.
  3. Modify the setmeup.m file to make USR.imgDir and USR.modelDir point to the models directory.
  4. cd to code/features directory and run 'mex features.cc' from the matlab prompt. (This is assuming you have mex already setup).

Basic Usage

A script that demonstrates how to run pre-trained models is provided in the 'code/user' directory. Simply cd to 'code' directory in repository and run the following commands on the matlab prompt.

>> setmeup
>> detectDiscPats

Training The Patches

Start by taking a look at setmeup.m for required libraries and trainDiscPats.m. This script runs a training job for the pascal sub-dataset used in paper. Pay attention to the comments related to run time. To run on your own dataset create a script similar to getPascalData.m that generates the required metadata.


Some of the code pieces are borrowed from other sources. Following should be an exhaustive list of those. It is recommended to get the latest libraries from these sources to remain upto-date with the improvements.