GithubHelp home page GithubHelp logo

dpd's Introduction

Deformable Part Descriptors (DPD)

This code accompanies the ICCV 2013 paper Deformable Part Descriptors for Fine-grained Recognition and Attribute Prediction.

===

User Configuration

[TODO: streamline these directory paths for minimal user setup]

in dpd_set_up.m:

scratchdir = /scratch  %for KDES features, DPD features, etc

if strcmp(database, 'bird')
    dataset_base = /path/to/CUB200-2011 %you edit this
elseif strcmp(database, 'cub200')
    dataset_base = /path/to/CUB200-2010 %you edit this
elseif strcmp(database, 'human')
    dataset_base = /path/to/berkeley-human-attributes-dataset %you edit this
end

===

Running DPD+DeCAF demos

Here's how to automatically classify CUB200-2011 birds using Deformable Part Descriptors with DeCAF convolutional features:

TODO: set scratch dir somewhere (env var?) TODO: add scratch directory argument: dpd_decaf(dpd_scratch)

#Option 1: run DPD+DeCAF in one line
./run_dpd_decaf.sh #this script does each step of DPD+DeCAF pipeline

#Option 2: run DPD+DeCAF steps one at a time
./extract_dpm_parts.sh #calls into ffld_dpm/build/ffld
./run_dpd_decaf_features.sh #DeCAF convnet features on DPM parts
matlab
>dpd_decaf; %weak pooling, SVM training, SVM classification

#dpd_decaf is hard-coded for this config: (weak pooling; CUB200_2011; trainAndTest). 
# not too hard to modify, though.

===

Running DPD+KDES demos

Here's how to automatically classify CUB200-2011 birds using Deformable Part Descriptors with Kernel Descriptors (KDES):
matlab
>run_dpd('bird', 0, 0); %runs all images through each DPD pipeline step, in batch mode

%arguments: run_dpd_kdes('class', 0=weakPooling 1=strongPooling, 0=trainAndTest 1=trainOnly);
%assume: DPM part bounding boxes are already extracted and located in a subdirectory of dpd_scratch

===

Reorganizing directories

```Shell

move: dpd_set_up -> dpd_kdes_set_up thirdparty/ffld_dpm ./ffld_dpm

new: dpd/dpd_decaf mv train_test/dpd_decaf.m dpd_decaf/dpd_decaf.m mv ./dpd_decaf_features.py dpd_decaf/dpd_decaf_features.py dpd/dpd_kdes mv train_test dpd_kdes common/{cksvd*, kdes_cholesky} -> dpd_kdes dpd/old mv dpd/test_realtime old mv dpd/test_realtime_cpp old mv thirdparty old/thirdparty

mv fgcomp old/fgcomp  #just a script to convert FGcomp labels to pascal format

add: dpd_decaf_set_up.sh #just point to dpd_scratch directory location

dpd's People

Contributors

n-zhang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.