Weblog
Open circuit television
Background - I'm interested in motion tracking software
CCTV is ubiquitous in urban centres. These cameras typically exhibit two problems:
- As a citizen I find these cameras can be invasive, open lenses continually gaping at my every move.
- In my work, for instance when evaluating a Neighbourhood Wardens project, I have heard that security cameras are neither use nor ornament since there is nobody watching them.
Technology has an answer to both of these concerns. Computers running motion tracking software can "watch" the cameras on our behalf and will observe patterns of movement and behaviour rather than following individuals.
Face Recognition software, by contrast, answers the second problem but exacerbates the first. There's a fascinating permanent exhibit at Manchester's Urbis - the control zone - that demonstrates this disconcerting feat of engineering.
There are some applications of computer-observed CCTV that preserve individual liberties while providing useful non-attributable analysis. London Underground has trailed an IT solution for identifying suspicious packages. Springboard use iSite motion tracking to provide customer counting measures for the performance management of retail areas and the development of local transport planning.
If you take anonymous computer controlled cameras to the extreme then you end up with an in-security camera that actively avoids making eye contact!
Software - So I had a go
Fascinated by the potential of this software, and keen to wade knee-deep in java, I turned to processing. I discovered the JMyron (WebCam Xtra) and V3ga (Blob Detection) libraries. After testing both approaches I adopted the former because the motion detection routines are better. In particular JMyron uses an (ingeniously titled) 'retina' that adapts, with lag, to the incoming images which provides the perfect reference for comparing the difference between two frames. In other words the 'difference image' provides you with a picture of the moving elements only and removes all of the background. V3ga Blob Detection, on the other hand, focusses upon areas of distinct contrast and, therefore, struggles to identify blobs when set against a background that isn't uniform.
I wanted to apply motion detection to a urban CCTV. East Ayrshire Council uploads camera footage on it's website. I downloaded a short movie using vlc.
I had to initialise the java quicktime library to get this running under Mac OS X.
Download - And this is what I made...
How better to promote the non-privacy invading mode of CCTV usage than releasing the results of my research back into the community?
Click here to download a zip including the source code and the short video I recorded.
NB: You'll need processing and the JMyron library (and a Java Runtime Environment too).
Roadmap - ...but it needs more work!
I want to implement the following features and would welcome any ideas/ development support:
- path tracing
- zone entry/ exit detection
- stock and flow counts
- behavioural identification routines, possibly based upon machine learning
Dear Robin, very interesting
Dear Robin,
very interesting post! thought you might be interested in this application of such ideas by a friend of mine:
http://www.media.mit.edu/cogmac/publications/kubat_icmi2007.pdf
Here's it in action (wait for a few seconds into the movie):
http://www.media.mit.edu/cogmac/videos/vidvol_web_low.mov
And here's why Deb is doing all this:
http://www.media.mit.edu/cogmac/projects/hsp.html
On a more mundane level, I was wondering if you could help me with my own project using webcamxtra, the pluggin for director that uses Myron. I would simply like to make something happen when the camera detects some motion (with a variable parameter for sensitivity). I realize that this is probably just a few lines of code, testing the differenceimage, but my attempts have been unsuccessful.
Do you have any pointers or example code? Thanks so much!
yours,
daniel.
Post new comment