VCNN - Double-Bladed Sword
Vectorized implementation of convolutional neural networks (CNN) in Matlab for both visual recognition and image processing. It's a unified framework for both high level and low level computer vision tasks. The code is on Github.
How to run demos
  1. For MNIST, you can launch this script to use a pre-trained model. For training, just launch this script. You will get sensible results within seconds.
  2. For image denoise, launch this script to see the denoise result by pre-train models. For training, you need to generate the data yourself since the data used in the training is large. Please do the following steps to generate data: a) download MIT saliency dataset from here and put all the image files here; b) launch this script to generate training data; c) launch this script to generate validation data; d) launch this script to start the training.
Hardware/software requirements
  1. Matlab 2014b or later, CUDA 6.0 or later(currently tested in Windows 7).
  2. A Nvidia GPU with 2GB GPU memory or above (if you would like to run on GPU). You can also train a new model without a GPU by specifying "config.compute_device = 'CPU';" in the config file (e.g. mnist_configure.m).
Jimmy SJ. Ren and Li Xu, "On Vectorization of Deep Convolutional Neural Networks for Vision Tasks", The 29th AAAI Conference on Artificial Intelligence (AAAI-15). Austin, Texas, USA, January 25-30, 2015
Jimmy SJ. Ren (
Li Xu (

General introduction
(youtube youku)


High level vision - Digit recognition
(youtube youku)


Low level vision - Image denoising
(youtube youku)



More to come...