In recent years there has been a rapid evolution of classical machine vision towards embedded vision. Although these compact systems have been made possible by the increased availability of small platforms containing extremely powerful CPUs, developing an embedded vision device can be very time-consuming and cost-intensive. To overcome these limitations, IDS has introduced an embedded vision construction kit that utilises off-the-shelf components.
There are many considerations needed for highly specialised embedded vision systems regarding data interfaces, performance, storage space and user interfaces. This makes hardware handling and software development very difficult compared to a system that uses a desktop workstation with standard components. Especially with proprietary embedded system developments (hardware platform, firmware and software), it can take a considerable amount of time and effort before the first results are available. However, there are now a number of suitable embedded standard components that allow out-of-the-box testing and are especially useful for the pre-development phase. Used in combination with qualified software solutions, the first prototypes for vision applications can be derived very quickly. IDS has recently published a TechTip that shows how to create a simple embedded vision application using an IDS uEye camera with the PyuEye Python programming interface, a Raspberry Pi 3 board and OpenCV image processing.
The Raspberry Pi3 has a quad-core CPU with enough power for simple image processing tasks and the Raspbian OS comes with many pre-installed components including OpenCV. The OpenCV (Open Computer Vision) OpenSource library provides fast image processing results. In addition to a collection of image processing algorithms, it provides sample code for various aspects of machine vision. With the BSD license, OpenCV is free for private and commercial projects.
Key to the development of the embedded vision prototypes is the Python object-oriented programming language. Python is a high-level general-purpose programming language comparable to Perl, Ruby, Scheme or Java and it can be applied to many different classes of problems. Python combines remarkable power with very clear syntax, making programs easier to read. Since it is an easy-to-use language, Python enables users to concentrate on the problem rather than focusing on the syntax. It is ideal for prototype development and other ad hoc programming tasks, without compromising maintainability. Its interactive mode makes it easy to write and test small code snippets without the complex setup of a development environment with a toolchain. Python is supplied with a large standard library that supports many common programming tasks such as connecting to web servers, searching text with regular expressions, and reading and modifying files. It can be readily extended by adding new modules implemented in a compiled language such as C or C++.
OpenCV has a Python interface for a quick start and easy development and the new PyuEye open source interface also allows interactive programming of IDS uEye industrial cameras using Python. In combination with the OpenCV Python wrapper, it is an easy way to develop prototypes on an embedded system such as the the Raspberry Pi. Once the PyuEye interface is installed, a 'uEye' module can be imported into the Python application to provide access to all of the uEye functions and the powerful uEye camera SDK.
The IDS TechTip, Embedded Vision Kit: Prototype development with the uEye Python interface and OpenCV describes how to set up a simple embedded vision demonstration project to search for circles in an image and highlight them. The Raspberry Pi 3 hardware platform uses Raspbian OS version Jessie together with a uEye USB camera.
Follow the link read the TechTip about prototyping embedded vision systems.