7

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?

Danielku15
  • 1,490
  • 1
  • 13
  • 29
  • If your project is indoor and the people will be standing in a short range from camera, try using Kinect. Its SDK has a sample code same as what you want. – Amir Zadeh Jun 30 '13 at 18:40
  • Just start with head detection and then shoulder detection would be easy because it will be the upper line of retangle-approximated torso. I think upper-arm and lower-arm detections are still rectangular approximation. But in order to distinguish the two detection, they used color detection as well. I think that's why he showed his skin in lower-arms. – Tae-Sung Shin Oct 16 '13 at 10:51

4 Answers4

1

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).

Andrey Smorodov
  • 10,649
  • 2
  • 35
  • 42
0

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

isrish
  • 692
  • 6
  • 12
0

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/

Stephen
  • 1
  • 1
0

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).

Stephen
  • 1
  • 1