caffe-segnet
caffe-segnet copied to clipboard
Port segnet architecture to caffe/master branch?
Since the Caffe main branch now has a batch normalization layer and upsampling via deconvolution layer, it seems to me that it might be feasible to port the SegNet architecture so that it can run off the BVLC/caffe master
(using Python layers for the data input layer and per-class-weighted loss).
I wonder if this might be worthwhile, because, while I haven't followed it in detail, it seems that caffe has gotten any number of improvements in the past year that segnet training could benefit from.
@alexgkendall what do you think?
I agree this would be great - aside from what you've pointed out you would also need to port the max unpooling layer too.
IMHO, integration with Caffe is important for growth since Nvidia is taking steps towards this framework, such as Digits or GIE and SegNet's idea and implementation still original and useful.
I agree this would be great - aside from what you've pointed out you would also need to port the max unpooling layer too.
@alexgkendall From a naive read of the prototxt
file, I don't see these as a layer type -- could you point me to an example of one of these layers?
@anandthakker I believe @alexgkendall is referring to the "upsample" layer, which is the same thing as unpooling. There is a discussion on the Caffe User's Group about incorporating an unpooling layer into the master branch (see https://groups.google.com/forum/#!searchin/caffe-users/unpooling%7Csort:relevance/caffe-users/rB5jSwqrwDY/2z-z67FXAQAJ) but I don't know whether there has been any traction on that.
One problem might be that SegNet's license doesn't match Caffe's license, the latter being fine with commercial use.
SegNet says:
"This extension to the Caffe library is released under a creative commons license which allows for personal and research use only. For a commercial license please contact the authors. You can view a license summary here: http://creativecommons.org/licenses/by-nc/4.0/"
Of course @alexgkendall could dual-license (retaining copyright of his code) and allow the Caffe version to be used more permissively, but without that agreement I doubt Caffe would accept any pull request with SegNet code. The other option is that someone re-implements the missing bits.