Measuring tracked features

Hi All,

I’ve been working with ofxHaarFinder addon and seems to work fine. I’m developing a projekt where features are detected and measured. The tracking part is done.

The idea is to develop a kind of “beauty canon” detector so we need find data as:

  • Head proportions
  • Eyes with (compared to head width)
  • nose length
    -…

I’ve been investigating blobs, but they seem to have always a fixed proportion. It changes its scale but nothing else.

Any of you have an idea how could I start? Is there any other library that could help? Is this even possible?

I’ve been stucked on this for weeks, I hope anyone can help please.

Ciao!

Hi,

you could use so called AAM or ASM to accomplish that task.
http://en.wikipedia.org/wiki/Active-appearance-model
http://en.wikipedia.org/wiki/Active-shape-model

there are some c++ libraries around which work in conjunction of opencv – just google for aam library.

I did a few project with these libs in the past and – had a hard way to learn all that stuff myself (computervision is a really broad field). Unfortunately I’m a bit spare of time to give you a deeper instruction, but if you have concrete questions I’m willing to help out and answer them as good as I can.

cheers

Hi, thanx for the info.

I hope those libraries dont get too tricky cause i’m not in advanced mode :P. They are used mainly for detecting gestures, right? I guess getting dimensions is one of the “basic” steps to get to its final function.

What I exactly need is:

  • Head width/height
  • Nose length (front view)
  • distance between eyes (i think i can get this one with the .centroid parameter in blobs). Not very precise but…could work.

I would really apreciate it if you could focus me on an specific area of those libraries, or code. I’ve try to understand them but right now that is out of my league…

Thanx a lot.

(Ah! By the way, i found some of you’re projects, they look great!)

Ey!

I’m looking at the basic example and I’m a little bit scared :slight_smile:

Does anybody has a clue about this?

Thnx, F.

@parmendil - yeah the “face area” of the opencv facetracking is always squared. have a look here http://www.cognotics.com/opencv/servo-2007-series/part-2/index.html for more details on the subject.

@Mirna1886 - ASM and AAM are basically fitting algorithms. that means you can train a “model” with serveral faces (ob objects in general) and build something like a mean of that. for AAM the appearance of the whole texture is used in correlation with hard edges (borders), for ASM just the region around the borders is use. that way it’s possible to fit a mean contour shape of a face to a face in a image … that process is called fitting.

you can see some examples over here http://www.ri.cmu.edu/research-project-detail.html?project-id=448&menu-id=261 but also on youtube if you’r searching for “aam fitting” or “asm fitting”. ASM should be enough for your purpose and will give you detailed information about position and size of the various face features like nose, mouth, eyebrow …

If your on the pc the easiest solution would be to use this library http://code.google.com/p/asmlibrary/ - one tip: remove the “highgui.h” dependencies from the library header files.

… On the other side, if you’r not really into computer vision maybe it would make more sense to collaborate on this with a university and let them do the hard cv stuff – because what you wann do sounds like a tough job :wink:

hope that helps a bit
m9d

Ok, I’ll check deeper the asm library then.

Then openCv ONLY gives squared shapes? it is not posible to get dimensions directly from there?

At first I though i could just get blob.height and blog.with to get the information i needed.