vladmandic / human

Human: AI-powered 3D Face Detection & Rotation Tracking, Face Description & Recognition, Body Pose Tracking, 3D Hand & Finger Tracking, Iris Analysis, Age & Gender & Emotion Prediction, Gaze Tracking, Gesture Recognition
https://vladmandic.github.io/human/demo/index.html
MIT License
2.33k stars 323 forks source link

About anthropometry #152

Closed websocketing closed 3 years ago

websocketing commented 3 years ago

I'm glad to see this project. I wonder if this project supports anthropometry? I need to measure the human parts of the generated manikin. I hope I can get your reply and information.

websocketing commented 3 years ago

@vladmandic

vladmandic commented 3 years ago

no, it doesn't support anthropometry - but that is a really interesting topic - i'll do some research on it
and if you have a working example, let me know

vladmandic commented 3 years ago

from the top of my head...

given that we don't know distance or reference scale to start with, we need to start with either:

if focal length is well-known, its a decent start

if relying on a refence object, there is issue with 3d depth:
is reference object closer or further away from measured?
could partially be solved with 3d reconstruction models, but that is pretty low precision
only "real" way to do it would be using spectroscopic cameras so 3d reconstruction is precise

without that, we simply don't know if we're looking at a doll in a model house or a giant on a hill

and in both cases, we still have issues with

so all-in-all, i don't think anthropometry would be any good without having a well-defined camera parameters to start with
which fortunately in some cases can be extracted from the image exif properties for images, but it's missing for video feeds

but not all cameras with same params have same level of distorsion - that depends on the actual glass elements so most distorsion correction software works with a built-in lens distorsion database and still only corrects barrel distorsions
while perspective distorsions are hit-or-miss (just look at photoshop or lightroom)

all-in-all, i could add some for-fun functions that do different measurements, but only if a) user provides camera parameters in the config b) there are no significant perspective distorsions (meaning camera angle is straight-on)

let me know your thoughts

vladmandic commented 3 years ago

closing as it cannot be implemented without user providing a lot of information manually