I am trying to get a rough estimate of a position of a hand through using backprojection on frames retrieved from a camera. I do not need perfect detection on the hand, but I can't really afford to get many false blobs. At night, my histogram works fine but at day I get a large amount of false blobs. The patch of skin I calculate the hist from is sufficient enough to provide enough information for the hist to work properly. I am using the YCrCb colourspace but have omitted the third plane to help improve detection in varying lighting conditions. I am using 30 bins for Y and 32 bins for Cr. I am also using a range of 0 - 255 for both. I have tried using several morphological operations, but the false blobs are too large to go away.
Does anyone have any suggestions on how I can remove false blobs? I can compromise on the detail of the positive detections (it can be a little blobby) but I need to remove most of the negative detections for my program to work. If this is not possible, does anyone have any suggestions other than backprojection on how to get a rough estimate of the position of the hand? (Haar or any other machine learning techniques are not possible). I cannot post code or a sample image. I am using the C++ API in OpenCV so please only suggest solutions that can be implemented in this API.