Another night of graphics/vision research and development!
Tonight's installment bring us an improvement over existing document camera technology. My system intelligently keeps track of occluding foreground objects and a stable background that only changes incrementally over time to create the effect of writing with an invisible hand.
See the full demo (2MB zip of jpegs): http://adamsmith.as/typ0/ihdemo.zip
- The bottom left image is read directly from the camera (a crappy webcam taped to the wall in my case).
- The bottom right image is the blurred version of the first image.
- The top right image is the blurred version of the background image from last frame (not shown).
- The bottom middle image is the absolute color difference between the two blurred images
- The top middle is a thresholded version of the difference image.
- The top left is the old background image with areas not occluded by foreground objects copied from the freshly captured image below.
Large blobby object like hands are (ideally) never inserted into the background state so viewers can always see "through" (which is really "back in time") to what was there before the hand moved in the way. The clue that something is a transient occluder is that it touches the border of the image. I have some code in there (not demonstrated) that will check if a foreground region is connected to the border of the image. If it is not, it is immediately imported into the background scene. In this way, if the hand reaches in and places a dark object in the middle of the pages it will instantly pop into visibility as soon as the hand disconnects from it!
Up next, I have to remove those shadow boundaries so my algorithm doesn't get confused by their smooth gradients.