Danielku15
Danielku15

Reputation: 1520

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 a human body on a camera stream. Using this information we want to detect a basic skeleton of the body to do a further detection of the gestures the person does.

We are using 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 place a basic skeleton in it, but how? He does not mention any algorithms used.

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

Does anybody have an idea to detect the body exactly like shown in the video?

Upvotes: 7

Views: 6952

Answers (4)

Stephen
Stephen

Reputation: 1

I like this lean "js-opendetect" solution, refered in thread js-objectdetect with LBP cascades

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

Upvotes: 0

Stephen
Stephen

Reputation: 1

More complex models, with NeuralNetworks like Caffe .. could be found via Websearch -> "Human Pose Estimation", e.g https://github.com/ZheC/Realtime_Multi-Person_Pose_Estimation Seems on newer OS not easy to install (older compiler ...?) and a bit resource hungry (on my old 1 GB-HW it won't run as of now).

And finally it might be interesting, how the deeplearnjs will rise or get intergrated (till now it needs chrome and the samples shows Object recognition but looks promising).

Upvotes: 0

isrish
isrish

Reputation: 692

This will be good as a starting point, Implementation of Upperbody detection algorithm in C++. (http://www.robots.ox.ac.uk/~vgg/software/UpperBody/)

Upvotes: 0

Andrey  Smorodov
Andrey Smorodov

Reputation: 10852

I think that you should implement next steps:

  1. Detect face.
  2. Detect hands.
  3. Estimate scale of body image.
  4. Place upper body kinematic model (skeleton), using head position information and set its scale usung detected head size.
  5. Match models head and hands with detected before positions of human head and hands.
  6. Update inverse kinematics of model for get human pose estimation.
  7. I suppose, that here should be very good to use some statistical filter, like particle filter or Kalman filter.
  8. Go to step 1.

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

Upvotes: 1

Related Questions