Shop OBEX P1 Docs P2 Docs Learn Events
CMUcam4: Open Source Programmable Embedded Color Vision Sensor — Parallax Forums

CMUcam4: Open Source Programmable Embedded Color Vision Sensor

KyeKye Posts: 2,200
edited 2012-03-17 17:45 in Robotics
CMUcam4_A.JPG
CMUcam4_B.JPG
CMUcam4 Arduino Shield B_Little - A4.jpg
CMUcam4 Arduino Shield A_Little - A4.jpg


The goal of the CMUcam project is to provide simple vision capabilities to small embedded systems in the form of an intelligent sensor. The CMUcam open source programmable embedded color vision sensors are low-cost, low-power sensors for mobile robots. You can use the CMUcam vision systems to do many different kinds of on-board, real-time vision processing tasks. The CMUcam4 is a fully programmable embedded computer vision sensor. The main processor is the Parallax P8X32A (Propeller Chip) connected to an OmniVision 9665 CMOS camera sensor module. For more information please see the http://cmucam.org/projects/cmucam4/wiki.

Features
  • Fully open source and re-programmable using the Propeller Tool
  • Arduino Shield Compatible
    • w/ Supporting Interface Libraries and Demo Applications for the Arduino and BASIC Stamp
  • VGA resolution (640x480) RGB565/YUV655 color sensor
    • Image processing rate of 10 frames per second
    • Raw image dumps over serial or to flash card
      • (640:320:160:80)x(480:240:120:60) image resolution
      • RGB565/YUV655 color space
  • Onboard Image Processing (QQVGA 160x120)
    • Track user defined color blobs in the RGB/YUV color space
    • Mean, median, mode and standard deviation data collection
    • Segmented (thresholded) image capture for tracking visualization (over serial or to flash card)
      • 80x60 image resolution
      • Monochrome color space
    • Histogram generation (up to 128 Bins)
    • Arbitrary image clipping (windowing)
  • µSD/µSDHC/µSDXC flash card slot with FAT16/32 full file system driver support
    • w/ Directory and File manipulation
  • I/O Interfaces
    • Two-port servo controller (pan and tilt w/ 1us resolution at a 50 Hz refresh rate)
      • Pan and/or Tit servo channels can be configured as GPIOs
    • Indicator user controllable LED (red) and power LED (green)
    • TTL UART (up to 115200 baud – 19200 baud by default)
  • Monochrome baseband analog video output (NTSC/PAL) of 160x120 resolution for tracking visualization (segmented (thresholded) image w/ color centroid and bounding box overlay at 10 FPS)
  • CMUcam4 GUI for viewing images on the PC
Download the feature list in PDF form http://cmucam.org/attachments/download/529/CMUcam4-Feature-List-100.pdf.

Typical Uses

The CMUcam4 can be used to track or monitor colors. The best performance can be achieved when there are highly contrasting and intense colors. For instance, it can easily track a red ball on a white background, but it would be hard to differentiate between different shades of brown in changing light. Tracking colorful objects can be used to localize landmarks, follow lines, or chase moving beacons. Using color statistics, it is possible for the CMUcam4 to monitor a scene, detect a specific color, or do primitive motion detection. If the CMUcam4 detects a drastic color change, then chances are something in the scene changed. Using “line mode”, the CMUcam4 can generate low resolution binary images of colorful objects. This can be used to do more sophisticated image processing that includes branch detection, or even simple shape recognition. These more advanced operations require custom algorithms to post process the binary images sent from the CMUcam4. As is the case with a normal digital camera, this type of processing might require a computer or at least a fast microcontroller.

Typical Configuration

The most common configuration for the CMUcam4 is to have it communicate to a master processor via a standard TTL serial port. This “master processor” could be a computer (through USB or RS232), Arduino, Basic Stamp, PIC, or similar microcontroller. The CMUcam4 is small enough to add simple vision to embedded systems that can not afford the size or power of a standard computer based vision system. Its communication protocol is designed to accommodate even the slowest of processors. The CMUcam4 supports various baud rates to accommodate slower processors. For even slower processors, the CMUcam4 can operate in “poll mode”. In this mode, the host processor can ask the CMUcam1 for just a single packet of data. This gives slower processors the ability to more easily stay synchronized with the data. It is also possible to add a delay between individual serial data characters using the “delay mode” command. Due to communication delays, both poll mode and delay mode will lower the total number of frames that can be processed in one second.
187 x 191 - 49K
211 x 191 - 27K

Comments

  • vanmunchvanmunch Posts: 568
    edited 2012-03-17 15:57
    This sounds excellent! Will we be able to buy one at the expo? Again, I can't explain how exciting it will be to be add vision to my projects!
  • KyeKye Posts: 2,200
    edited 2012-03-17 17:45
    Maybe, I'll keep you posted.

    Thanks,
Sign In or Register to comment.