forked from richzeng/asterisk
-
Notifications
You must be signed in to change notification settings - Fork 0
Algorithms
Achal Dave edited this page Dec 8, 2013
·
3 revisions
- ViBe background subtraction to adaptively learn the keyboard background and separate the hand as foreground.
- Idea is to keep a few past "frames" made of a non deterministic selection of points from the past, where each point may also be updated by surrounding pixels (spatial and temporal awareness).
- Unfortunately, we either can't deal with a camera shake, or if we try to deal with it, we end up with the hand becoming a part of the background if it stays still.
- Attempted to do smart adaptive bgsub, which reinitializes the background if more than 50% of the image is foreground. This works slightly better, but is still an issue if the camera is moving often (if user is typing and screen hinge is weak).
- Some webcams do weird hue changes which makes skin detection difficult. However, in a constrained case, this works very well.
- Attempted to get orientation gradients and look for curved objects (fingertips)
- Can't think of a way to get just the curved edges.
- However, we could do very good ML with this, and it's very fast.
- Not attempted, may help
- Detect all the keys in a keyboard, and then check which ones are blocked to get some idea about the fingertip location.
- Main issue: finding squares is not trivial, especially since they're not always closed, may be various colors, etc.
- Get the palette of colors in a reference image, then find things that don't fit in that palette later.
- Theoretically sound, but palettization is slow :(
- Haven't tried implementing entirely, will try
Specifically for finding the tips of your fingers, once the hand segmentation has been abstracted away.
- Start at the boundary of the image, then "march" inwards until you hit what's called a 'collapse of a boundary segment'. It seems this means when the "marchers" from two different boundary segments collide into each other, forming a skeleton of the object.
- Seems promising, but not clear how to extract the tips from the skeleton, or if the skeleton will be ideal.
- Paper
- Likely employs something similar but inferior to FMM.
- Works decently well, can use this to get finger tips.