Thursday, July 03, 2008

CMUcam3: Open Source Programmable Embedded Color Vision Platform

CMUcam3: Open Source Programmable Embedded Color Vision Platform

Overview :
The goal of the CMUcam project is to provide simple vision capabilities to small embedded systems in the form of an intelligent sensor. The CMUcam3 extends upon this idea by providing a flexible and easy to use open source development environment that complements a low cost hardware platform. The CMUcam3 is an ARM7TDMI based fully programmable embedded computer vision sensor. The main processor is the NXP LPC2106 connected to an Omnivision CMOS camera sensor module. Custom C code can be developed for the CMUcam3 using a port of the GNU toolchain along with a set of open source libraries and example programs. Executables can be flashed onto the board using the serial port with no external downloading hardware required.

Features :

* Fully open source and programmable using GCC
* CIF resolution (352x288) RGB color sensor
* Open source development environment for Windows and Linux
* MMC/SD flash slot with FAT16 driver support
* Four-port servo controller
* Image processing rate of 26 frames per second
* Lua light-weight language interpreter for rapid prototyping
* Software JPEG compression
* Basic image manipulation library
o Arbitrary image clipping
o Image downsampling
o Threshold and convolution functions
o RGB, YCrCb and HSV color space
o CMUcam2 emulation
+ User defined color blobs
+ Frame differencing
+ Mean and variance data collection
+ Raw images dumps over serial
+ Histogram generation
* B/W analog video output (PAL or NTSC)
* FIFO image buffer for multiple pass hi-res image processing
* Wireless Mote networking interface (802.15.4)
o Tmote Sky / Telos Connection
* virtual-cam for prototyping on the PC
* CMUcam3-Frame-Grabber for viewing images on the PC

Applications :

* Robotics (spoonBot)
* Surveillance
* Sensor Networks
* Education
* Interactive toys
* Object recognition and tracking
* Programmable servo control
* Serial MMC/SD flash data logging