snout_screenshot
Screenshot of the OpenFrameworks program which runs the "Double-Taker (Snout)" robot. Subscreens are (from top left): (1) masked input; (2) background (via running median); (3) depthmap, derived from binocular disparity (via PointGrey Triclops SDK); (4) presence (via background subtraction); (5) motion (via frame-differencing); (6) "activity" (via blurred feedback buffer of the weighted sum of presence and motion). Below left: larger image of live camera input. Below right: "stick figure" animation-skeleton of the simulated robot.
The system tracks the two most significant moving-things in the camera's view. (Two seemed like enough for such a slow robot). When a new person appears they are given priority, so the robot will generally turn to look abruptly-ish at people who enter the scene.
The weird mask in the image processing reduces distractions from non-critical areas of the camera's view. For example, it's important that the robot does not see itself, or else it would always be the most significant moving thing, causing a feedback, etc.
snout_screenshot
Screenshot of the OpenFrameworks program which runs the "Double-Taker (Snout)" robot. Subscreens are (from top left): (1) masked input; (2) background (via running median); (3) depthmap, derived from binocular disparity (via PointGrey Triclops SDK); (4) presence (via background subtraction); (5) motion (via frame-differencing); (6) "activity" (via blurred feedback buffer of the weighted sum of presence and motion). Below left: larger image of live camera input. Below right: "stick figure" animation-skeleton of the simulated robot.
The system tracks the two most significant moving-things in the camera's view. (Two seemed like enough for such a slow robot). When a new person appears they are given priority, so the robot will generally turn to look abruptly-ish at people who enter the scene.
The weird mask in the image processing reduces distractions from non-critical areas of the camera's view. For example, it's important that the robot does not see itself, or else it would always be the most significant moving thing, causing a feedback, etc.