Any ideas on detecting and tracking hand touching the body with OpenCV?

asked 2015-07-07 02:09:45 -0500

updated 2015-07-07 02:55:17 -0500


  1. Detect the hand over the human body (Note: color is very similar).
  2. Localize the position of the touch
  3. Track the movement as the hand moves along the body.

Here's a sample input image frame:

image description

I have tried a few possible solutions:

image description

  1. Contour detection (It doesn't work! Or maybe I miss a few additional tricks?)

  2. Color Segmentation (It doesn't work! Similarity of color between the hand and skin is a big problem)

  3. Keypoints (e.g. SIFT, SURF, ORB, AKAZE)? (It might work! However, the hand movement itself is non-rigid thus, the comparison might end up inconsistent.

  4. Object Detection (e.g. Haar or LBP) (It might work! But then again, the non-rigidity of hand movement might cause a serious problem.)

  5. Background Subtraction/ Motion segmentation (It might work; but if the belly is bulky, then, there will be motion all over the region. Furthermore, the examiner's arm or body will be in motion as well....)

  6. More Machine Learning (RT, SVM, KNN, MLP etc.) (It might work? )

Does anyone (else) have experienced similar problems that involve the above issues? Thanks in advance.

edit retag flag offensive close merge delete



Hmm i would take a look at the work of Mittal et al.. They have done quite some research at hand detection and tracking, even non rigid ones!

StevenPuttemans gravatar imageStevenPuttemans ( 2015-07-07 07:13:47 -0500 )edit

@StevenPuttemans Thanks for the comment. Mittal et al. context-based proposals to a sliding window shape based detector might be useful in this case. I will try it later. Although, I will drop the skin-based proposals due to the hand-body color similarity.

mkc gravatar imagemkc ( 2015-07-08 18:24:43 -0500 )edit