KUBEL logo KUBEL logo    SECTION5
KUBEL logo KUBEL logo Home | Embedded / Signal Processing | Device control library | Visualization | Contacts/Links

round
Blackfin/uClinux
ICEbear-JTAG
Software
VisionKit
AppNotes
Support

The VisionKit camera framework

Specific for embedded Linux systems, we have developed a machine vision proof (since year 2006) camera framework which is now going public, as it is considered one of the most versatile Linux powered frameworks around. It consists of the following modules:

  1. ppivideo: High performance buffer queue based kernel driver for Blackfin/uClinux
  2. videoserver: Multi threaded camera server: Pipelined, quasi-simultaneous acquisition, image processing and data transmission via netpp or standard UDP/TCP video streaming. The videoserver is portable to other architectures (i86, ARM, ...)
  3. Sensor access library, supporting full register access, see supported sensor list on the bottom
  4. display: Remote display server with various video display options
  5. The Camasutra remote control user interface. Originally developed for cameras (hinting the origin of its name) it can be customized to support any type of device
All sensor properties and configurations are detected at the start of the video server. This also supports multi head camera implementations (tristated bus) without the need to recompile the kernel or the software. Thus, various camera solutions can run with one single software.

The important differences to the existing SoC v4l2 framework are, that all configuration and control of sensor devices is running in userspace via the netpp framework. Advantages:

  • No requirement to opensource your specs or drivers!
  • No bloated kernell
  • No/Very little driver maintenance required when upgrading to newer kernels

The image processing capabilities of the videoserver are basically featured by a FIFO buffer queue. The user tells the kernel (preferrably via the v4l2 USERPTR method) where the video buffers are stored. A DMA process automatically fills the buffers with incoming video data and notifies the user when a buffer is ready. Then, a raw buffer is taken off the FIFO queue, data is processed and is optionally stuffed back onto the FIFO queue for transmission or further processing.

The entire architecture was designed such that no data loss can occur, which allows to employ the system for line scan applications. The used three stage FIFO scheme ('fresh', 'process', 'deliver') provides maximum performance while being most flexible. For extra performance or low latency applications, Realtime driver models and extensions are supported as well.

Reference applications:

  • MJPEG streaming via http
  • MPEG streaming using ffmpeg libraries
  • 2D barcode reader, 3-5 frames per second
  • Line scan application
  • High reliability point tracking and blob detection

The VisionKit is not a plug'n'play camera from the box. It is meant for specific system developers who wish to combine the (possibly wireless) networking functionality of Linux systems with typical high performance image processing functionality on their own camera (or on section5-designed) hardware. It is based on a (uC)Linux kernel version 2.6.34.

Since based on the netpp framework, the VisionKit provides

  • Platform independent scripting support: Remote control your entire camera pool using Python scripts
  • Fast design of camera type specific user interfaces in XML which can be loaded by the Camasutra GUI control tool - at runtime

Screen shots

Example application of Camasutra remote control tool and remote display server. The processing is entirely done on the camera.

Further documentation:

The VisionKit supports the following commercially available cameras and modules:

Camera SystemSensor modules
VendorProduct NameLink
Supercomputing SystemsLeanXcamhttp://leanxcam.origo.ethz.ch/
Imaging DiagnosticsCamelothttp://www.imagine2d.com/
Surveyor Corp.SRV1 camera robothttp://www.surveyor.com/
Mesa ImagingSwissRanger 3000/4000http://www.mesa-imaging.ch/
BluetechnixCM-BF527/537 based camerashttp://www.bluetechnix.at/

Further reference solutions (automotive/medical) and ports to other architectures (TI/OMAP) on request

VendorProduct ID
AptinaMT9V024
AptinaMT9V032
AptinaMT9V034
AptinaMT9D131
AptinaMT9D111
AptinaMT9P031
AptinaMT9T111
OmnivisionOV9620
OmnivisionOV9655
OmnivisionOV7725
AMIS/Photonfocus70700/Emphis300

Support for other, custom sensor modules can be implemented easily using XML descriptions provided by the netpp framework

mailaddr


Version: 11.2011