Skip to content
Vectorized implementation of convolutional neural networks (CNN) in Matlab for both visual recognition and image processing.
Branch: master
Clone or download

README.md

VCNN - Double-Bladed Sword

GPU enabled 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.

How to use it

As long as you get Matlab and CUDA installed, you don't need to worry about other configurations. The system works in both Ubuntu and Windows.

You can directly try the demos without referring to any materials in the project website.

  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.
  3. For Deep Edge-Aware Filters, please see this link for details.

Please visit the project website for all documents, examples and videos.

Hardware/software requirements

  1. Matlab 2014b or later, CUDA 6.0 or later (currently tested in Ubuntu 14.04 and 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).

Videos

  1. Introduction
  2. MNIST example (demonstrate the speed & accuracy)
  3. Image denoising example

Contributors

Jimmy SJ. Ren (jimmy.sj.ren@gmail.com)
Li Xu (nathan.xuli@gmail.com)

Citation

Cite our papers if you find this software useful.
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

VCNN was used in the following research projects

[4] Jimmy SJ. Ren, Li Xu, Qiong Yan, Wenxiu Sun, "Shepard Convolutional Neural Networks", Advances in Neural Information Processing Systems (NIPS 2015).
[3] Yongtao Hu, Jimmy SJ. Ren, Jingwen Dai, Chang Yuan, Li Xu, Wenping Wang, "Deep Multimodal Speaker Naming", The 23rd ACM International Conference on Multimedia (MM 2015).
[2] Li Xu, Jimmy SJ. Ren, Qiong Yan, Renjie Liao, Jiaya Jia, "Deep Edge-Aware Filters", The 32nd International Conference on Machine Learning (ICML 2015).
[1] Li Xu, Jimmy SJ. Ren, Ce Liu, Jiaya Jia, "Deep Convolutional Neural Network for Image Deconvolution", Advances in Neural Information Processing Systems (NIPS 2014).

You can’t perform that action at this time.