Graham Taylor

Pose-Sensitive Embedding by Nonlinear NCA Regression

Sample code provided by Graham Taylor

Permission is granted for anyone to copy, use, modify, or distribute this program and accompanying programs and documents for any purpose, provided this copyright notice is retained and prominently displayed, along with a note saying that the original programs are available from our web page.

The programs and documents are distributed without any warranty, express or implied. As the programs were written for research purposes only, they have not been tested to the degree that would be advisable in any important application. All use of these programs is entirely at the user's own risk.

Note: This code requires a modern CUDA-capable GPU with at least 900 MB of device memory (e.g. GTX285 or later).

Change Log


  1. Verify that GPUmat and my GPUmat modules are working correctly on your system and that both are added to your Matlab path
  2. Create a separate directory and download into that directory
  3. Unzip the above file, preserving directory structure and filenames
  4. Download the sample data (10,000 160x120 synthetic training images; 5,000 160x120 synthetic test images) and save both in the "pse_demo/data" subdirectory that was created during the previous step
  5. Modify snapshot_path in both conv_ncar.m and conv_drlim.m (and optionally, other settings)
  6. To train a model and plot results, start GPUmat with "GPUstart" and then run either "demo_conv_ncar" (NCAR objective) or "demo_conv_drlim" (Soft DrLIM objective)
  7. The README file, included in the zip, provides more details