This code was generated to implement deconvolution neural network under Theano background. We found that there was no existing code to actually implement deconvolution neural network under Theano and its extension codes, even through many papers claims that they are using convolution-deconvolution structure. The only one workable code in python is under caffe environment to solve segmentation problem, in which, they actually modified caffe foundamentally. We know that most of the computer vision research is leaded in Matlab, but, for fast training using servers, python is still the optimal choice.
We used our network to do boundary detection task. The network does not apply optimal configuration in this experiment, and we only want to show the code is correct and workable. We highly suggest you modify the code to achieve your own task.
We also introduced a novel structure that can combine multiple network configurations, please see our paper in this positroy. Paper
This is one comparision of our network(second from left) with benchmark algorithm(right most).
In relatively noisy background, our implementation captures too much noise. But it is due to our network doesn't using optimal configuration. You can make it better.
You need to install Theano and Cuda, that is all
Ga Wu, email, Kelley Engineering Center, Oregon State University
Xu Xu, email, Kelley Engineering Center, Oregon State University
Data Operation Code Updated[03-05-2016]
Python can load images into memory and create list with element size : 481x321x3, This format can be directly used in Keras
Label data was in the form of *.mat. We extracted single ground truth from it into form of csv txt
Layer Code Updated[03-07-2016]
Max Pooling layer redefined under theano environment. Now the function output maxed matrix and mask!
Reversed Max Pooling layer is functional, it can recover the 'original' shape of matrix through max pooling mask saved
Convolution layer is functional, just warp of con2d in theano
Network Class Updated[03-08-2016]
Convolution task can be worked on our code now
Added Keras Backend. Now the convolution layer can accept padding!!!!
Accelerated version of Code[03-09-2016]
Complete training and evaluating[03-10-2016]
Forward Propagation works
Loss function works(binary cross entropy)
Data now in cPickle format(easier to load in correct shape)
Backpropagation works, but the error function may has some glitches... Always show 100% error
Code can run on Pelican server now
Bug Free Code!!!Yeah!![03-10-2016] 1. The code is fully functional and without any bug. Training and testing result seems encouraging!