Home

Awesome

Fine-grained Recognition with Part-Transfer

Computer Vision Group, Friedrich Schiller University of Jena

Authors: Christoph Goering, Erik Rodner, Alexander Freytag

contact: Erik.Rodner@uni-jena.de

Needed libraries and third party software

  1. vlfeat - for extracting features - http://www.vlfeat.org
  2. yael - fast, multithreaded k-means - https://gforge.inria.fr/projects/yael/
  3. opencv - only used for grabcut - http://opencv.org
  4. liblinear - http://www.csie.ntu.edu.tw/~cjlin/liblinear/
  5. color names - http://lear.inrialpes.fr/people/vandeweijer/software

Notes:

Usage (standard experiments)

    recRate = experimentParts('cub200_2011',nrClasses, ...
        config, configParts)

Examples

  1. use default values:
    recRate = experimentParts('cub200_2011',nrClasses, ...
        struct([]), struct([]))
  1. do not use global features:
    recRate = experimentParts('cub200_2011',nrClasses, ...
        struct('useGlobal','no'), struct([]))
  1. do not use part features:
    recRate = experimentParts('cub200_2011',nrClasses, ...
        struct([]), struct('useParts','none'))
  1. use part features, estimated using nearest neighbour:
    recRate = experimentParts('cub200_2011',nrClasses, ...
        struct([]), struct('useParts','nn'))
  1. do not use grabcut segmentation:
    recRate = experimentParts('cub200_2011',nrClasses, ...
        struct('preprocessing_useMask','none'), ...
        struct('useParts','none'))
  1. use the k-best part estimations:
    recRate = experimentParts_knn('cub200_2011',nrClasses, ...
        struct([]), struct([]))

Details of the algorithm

The algorithm is described in detail in the corresponding paper, here, we just give a very brief overview and mention some additional aspects: