Upper Body Skeleton Detection

For an educational project, we are currently working on a basic motion and gesture detection system. Our main goal is to detect the human body in the camera stream. Using this information, we want to detect the basic skeleton of the body in order to make further detection of gestures that a person makes.

We use EmguCV / OpenCV to process our stream. I found this video on Youtube: http://www.youtube.com/watch?v=fYZtmkfWh5g . He is able to detect the upper body and put the main skeleton into it, but how? He does not mention any algorithms used.

We already tried to detect the body contour using background subtraction (BackgroundSubtractorMOG2), but camera noise and lightning conditions made us fail.

Does anyone have an idea to detect the body exactly as shown in the video?

+7
source share
4 answers

I think you should follow these steps:

  • Face detection.
  • Hand detection.
  • Rate the scale of the body image.
  • Place the kinematic model of the upper body (skeleton) using the position of the head information and set its scale, which determines the size of the head of the head.
  • The coincidence of the models of the head and hands with the head and hands found in front of the human positions.
  • Refresh the inverse kinematics of the model to evaluate the human posture.
  • I believe that it should be very good to use some statistical filter, for example, a particle filter or a Kalman filter.
  • Go to step 1.

For the kinematic model, you can use some 2D physical endine ( Box2D , for example).

+1
source

I like this post " js-opendetect " solution specified in js-objectdetect stream with LBP cascades

If you want to conduct a trial version with Matlab-Model and VS, here is a historical sample http://groups.inf.ed.ac.uk/calvin/articulated_human_pose_estimation_code/

0
source

More sophisticated models with NeuralNetworks such as Caffe .. can be found via Websearch → "Human Posture Evaluation", for example https://github.com/ZheC/Realtime_Multi-Person_Pose_Estimation It seems that the new OS is not easy to install (older compiler ...?) And a little resource, hungry (on my old 1 GB-HW it will not work at the moment).

And finally, it may be interesting how deeplearnjs will grow or integrate (it still needs chrome, and the samples show Object Recognition, but it looks promising).

0
source

All Articles