Coder Social home page Coder Social logo

vfdev-5 / pose-estimation-v1.3.2_octave Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 83.13 MB

Octave code adaptation for "Articulated Human Pose Estimation with Flexible Mixtures of Parts". http://www.ics.uci.edu/~yyang8/research/pose/

License: MIT License

MATLAB 46.75% C++ 52.95% M 0.30%

pose-estimation-v1.3.2_octave's Introduction

======================
Fork changes :
======================


File 'mex_unix/resize.cc' :
    assert(sy-1 >= 0); -> assert(sy1-1 >= 0);
    
File 'compile.m' : 
    remove -O
    remove -largeArrayDims

File 'visualization/HOGpicture.m' : 
    imrotate(bim1, -(i-1)*20, 'crop'); -> imrotate(bim1, -(i-1)*20, 'linear', 'crop');


In code-full : 
===========

Add file rgb_imrotate.m

File 'learning/lincomb.cc', 'learning/score.cc', 'learning/qp_one_sparse.cc' :
    #include "matrix.h" -> //#include "matrix.h"


File 'PARSE_data.m' :
    imwrite(imrotate(im,degree(i)),sprintf(posims_rotate,n,i)); -> imwrite(rgb_imrotate(im,degree(i)),sprintf(posims_rotate,n,i));


File 'learning/map_rotate_points.m' :
    hiB = ceil(max(abs(tformfwd([loA(1) hiA(2); hiA(1) hiA(2)],rotate)))/2)*2; -> hiB = ceil(max(abs(tformfwd(rotate, [loA(1) hiA(2); hiA(1) hiA(2)])))/2)*2;
    
    p_new = tformfwd(p+loA,rotate)-loB; -> p_new = tformfwd(rotate, p+loA)-loB;
    
    p_new = tforminv(p+loB,rotate)-loA; -> p_new = tforminv(rotate, p+loB)-loA;
    
    
File 'learning/k_means.m' :
    FIX BUG : error: k_means: A(I,J,...) = X: dimensions mismatch 
    at line "c(t,:)=mean(X(gIdx==t,:));"


File 'learning/point2box.m' :
    ratio = len(n,:)./r; -> ratio = transpose(len(n,:)./r);
    

File 'learning/trainmodel.m' : 
    Limit memory usage size by 2 GB 
    models{k} = train(cls,model,spos,sneg,1,1, 0.002, 2, 2);


File 'learning/warppos.m' : 
    warped{i} = imresize(window, cropsize, 'bilinear'); -> warped{i} = imresize(uint8(window), cropsize, 'bilinear');






===========================================================================



Information
===========

This is an implementation of the human pose estimation algorithm described in [1]. It includes pre-trained full-body and upper-body models. Much of the detection code is built on top of part-based model implementation of [2]. The training code implements a quadratic program (QP) solver described in [3].

To illustrate the use of the training code, this package also images from the PARSE image dataset [4], the BUFFY image dataset [5], and negative images from the INRIAPerson dataset [6]. We use also include the PCP evaluation code from [5] for benchmark evaluation on both datasets. The original evaluation code assumes a rigid-template detector, and we make modifications for our deformable skeleton detector.

Compatibility issues: The training code requires a large amount of memory (6GB). Uncomment/comment line 33/34 in code-full/learning/train.m to use less memory at the cost of longer training times.

Acknowledgements: We graciously thank the authors of the previous code releases and image benchmarks for making them publically available.

References
==========

[1] Y. Yang, D. Ramanan. Articulated Pose Estimation using Flexible Mixtures of Parts. CVPR 2011.

[2] P. Felzenszwalb, R. Girshick, D. McAllester. Discriminatively Trained Deformable Part Models. http://people.cs.uchicago.edu/~pff/latent.

[3] D. Ramanan. Dual Coordinate Descent Solvers for Large Structured Prediction Problems. UCI Technical Report, to appear.

[4] D. Ramanan. Learning to Parse Images of Articulated Bodies. NIPS 2006.

[5] V. Ferrari, Marcin Eichner, M. J. Marin-Jimenez, A. Zisserman. Buffy Stickmen V2.1: Annotated data and evaluation routines for 2D human pose estimation. http://www.robots.ox.ac.uk/~vgg/data/stickmen/index.html

[6] N. Dalal, B. Triggs. Histograms of Oriented Gradients for Human Detection. CVPR 2005.


Using the detection code
========================

1. Move to the code-basic directory
2. Start matlab
3. Run the 'compile' script to compile the helper functions.
   (you may need to edit compile.m to use a different convolution 
    routine depending on your system)
4. Run 'demo' to see an example of the code run on sample images.
5. By default, the code is set to output the highest-scoring detection
   in an image. Uncomment line 27 if you would like to see all detections.

Using the learning code
=======================

1. Move to the code-full directory
2. Start matlab
3. Run the 'compile' script to compile the helper functions.
   (you may need to edit compile.m to use a different convolution 
    routine depending on your system)
4. Run 'PARSE_demo' or 'BUFFY_demo' to see an example of the complete system, including training and benchmark evaluation.

Version Update
=======================

pose-release-v1.3
1. New convolution and other necessary files for windows machine to run our program.
2. New PCK and APK benchmarks, delete the old PCP criteria.
3. New functions for getting the highest score detection with overlap requirement.
4. First iteration joint training uses fixed mixture labels.
5. New visualization functions for showing the highest score detection and multiple detections.
6. New training code.
7. New non-maximum suppression after detection.

pose-release-v1.2
First time release

pose-estimation-v1.3.2_octave's People

Stargazers

 avatar

Watchers

 avatar  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.