Robust face tracking with cheap hardware (or: How to build a desktop autosentry)
Aim of this project was to teach a usb-controlled softair-turrent (see below) to:
scan the room for people (by recognizing faces)
track the face while moving the camera/gun
move face to middle of camera (thats where the gun shoots at)
shoot (loop)
The Software is running on a PIII/300 (my old laptop) because i needed a portable
solution. The camera is utter crap (noisy as hell), i tried my best to add tricks to
improve recognition: skin-color-searching for example, you can see the software
tries to track a picture on the wall as face for a brief moment because it has a
skin-like color (and seemingly a face-like structure). For the sake of my neighbours
mental health it does not really shoot when it successfully aimed at my head,
you only hear the shoot-relay clicking (watch video below to hear it shooting).
The sentry-hardware itself is nothing new (see 1).
I wanted one for total party mass destruction, so i ordered the USB Rocket Launcher
(produced by the company DreamCheeky),
added a softair-gun (10 Euros, shoots 6mm plastic balls), a webcam (6 Euros),
a laser-pointer (2 Euros) and viola: A pc-controlable weapon of mass destruction
for about 50 Euros, ready to annoy your co-workers.
I placed the end-switches for the vertical movement at different positions, resulting
in a total vertical freedom of about 70 degrees (compared to the 25 degrees the device
normally has).
As the control-Software is utter crap (and does not run under Vista) and other
programs (12)
require special hid drivers (which are not available for vista) or crash often...
Here is a revised control-program by me: mntsentry.exe.
Seemingly there are two different models out there, if your launcher fires endlessly on
program startup you can try this alternative version.
It works under Win98 up to Vista, monitors the maximal-movement-switches (and thereby keeps you from destroying those
cheap plastic gears) and recognizes if the device is unplugged or replugged.
Controls: Cursor keys (normal or numpad) to move, space to fire, control for special slow-motion mode.
You can script this program. It accepts the following Commandline-parameters:
mntsentry.exe <duraction in milliseconds> [left] [right] [up] [down] [fire] [slow]
You can create a little batch-program like this:
@echo off
mntsentry.exe 2000 left up
mntsentry.exe 7000 right slow
mntsentry.exe 6000 fire
mntsentry.exe 800 right
mntsentry.exe 6000 fire
mntsentry.exe 800 right
mntsentry.exe 6000 fire
Update: See what happens when the VSR8000 vacuuming robot dares to enter the
camera-range of the sentry. The sentry is not amused and gazes skeptical
at any move of the moving disc.
Add a webserver and the minisentry is ready to be controlled with an iphone: