TODO:
Weight initializers
- Logistic Regression init. for
softmaxlayers (esp. for large layers – e.g., bilinear pooling output) - Try ConvolutionAware for CNNs?
- Logistic Regression init. for
Expand base CNN builders
- Convert weights from ResNet18/34 pre-trained
Caffemodels - Check out wide/dilated ResNet blocks from keras-contrib/applications
- Convert weights from ResNet18/34 pre-trained
Implement compact bilinear pooling
Figure out Buffer bugs when passing
covariance_boundtocyvlfeat.gmm.gmmTests and benchmarks
keras-texture¶
Implementations of several keras layers, model classes, and other
utilities that are useful in constructing models for texture recognition
and fine-grained classification problems. It is a work in progress,
and the tensorflow backend is required for most functionality.
Develop-mode installable with pip install -e . Root module of package is texture.
Benchmarks¶
Working on benchmarking models constructed with various texture recognition datasets:
Some fine-grained classification datasets are also of interest, but benchmarking those has a lower priority for me at the moment:
- Birds-200 (2011 version)
- FGVC-Aircraft
- Cars
Further Improvements¶
Encoding¶
- Smaller
ResNet-based constructors for feature networks
Bilinear¶
- Add support for
fAandfBto have different input shapes (technically only output shapes need to correspond). - Add support for
fAandfBto have different output shapes (crop/interpolate/pool to match them)
Would also like to add the matrix square root normalization layer as described in:
@inproceedings{lin2017impbcnn,
Author = {Tsung-Yu Lin, and Subhransu Maji},
Booktitle = {British Machine Vision Conference (BMVC)},
Title = {Improved Bilinear Pooling with CNNs},
Year = {2017}}
Authors claim this improves accuracy by several % on fine-grained recognition benchmarks.
DEP¶
- Utilities for combining a base CNN with
Encoding&BilinearModelto create aDeep Encoding Pooling Network.