Skip to content

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

License

Notifications You must be signed in to change notification settings

vfdev-5/pose-estimation-v1.3.2_octave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

======================
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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published