Robotics Equipment Corporation DeutschEnglish
 
 

VisCam Server

VisCam Server constitutes the central image processing and object recognition process of VisCam. It is running as an application on the smart camera and process the image data.

The compactness of smart cameras, due to their limited hardware resources, have special requirements from the algorithms they use. Since algorithms for image processing and interpretation, as well as object recognition are based on functions that are complex and computationally expensive, hardware  optimizations are necessary so as achieve comparable services to that of PC-based processing systems. In addition, the modular processing pipeline and special features allow for a flexible yet heavy duty application.


VisCam Server is implemented as an application on the smart camera and processes the data of the image sensor by means of a multilevel modular pipeline.
Characterization of polygons by means of Fourier descriptors (green). The higher the number of coefficients is chosen, the more accurate the polygon (purple) is approximated.

VisCam Server Pipeline

Imaging

The inclusion of the objects by means of a suitable image sensor and the supply of image data represent the first step of the image processing chain on the smart camera. Owing to a universally adaptable interface for the transfer of image data, VisCam can be used, in principle, with a variety of different cameras.

Preprocessing

Depending on the type and quality of the image acquisition unit, the input image data with noise and/or other disturbances are superimposed. Therefore VisCam server is able to process the image data by using various filters and thus optimize it for further processing. This allows VisCam to be used with almost any image data source

Additionally, many cameras, either optionally or fixed, immediately apply post-processing to the images received. VisCam Server, owing to its flexible pipeline architecture, supports the use of already processed input date without performing a re-filtering.

Object Extraction

VisCam Server uses advanced algorithms which reflect the latest state of research for the extraction of polygons. The processed image data from the preliminary stage serves as basis for the extraction of individual objects.

Object Classification

VisCam Server classifies the extracted objects and thus creates the basis of comparison of objects for the subsequent template matching. The objects of the scene are recorded, owing to advanced mathematical procedures, with a maximum of computing time and memory efficiency.

Object Identification

The classified objects of the scene are compared with the objects of the internal database (Template matching). A mathematical measure estimates the error between the test and reference object. The threshold value for a valid identification can be dynamically adjusted according to the conditions of the overall system.

Communication with the robot controller

VisCam Server transmits the recognized objects including the position and grasp information to the robot controller, which coordinates the further object specific actions of the system. A Telnet connection serves as a communication channel. It also enables the uncomplicated connection of the VisCam system to a variety of system controls.

As an extension, alternative communication protocols of any kind are also possible. Thanks to the modular concepts, VisCam Server offers ideal conditions for a variety of possible extensions.

Zum SeitenanfangSeitenanfang


The inner contours of the objects (Festo signatures) allows unique position determination (rotation).
Lenses and lens systems lead to typical optical distortions which can be illustrated by the inclusion of a regular lattice.
Four touching objects are detected as a single object.
An efficient algorithm searches for possible interfaces to separate the unknown single object into sub-objects.
The four individual objects can be correctly identified after the separation by means of template matching.

Special Features

Inner contours

With the help of inner contour extraction, VisCam can recognize object characteristics such as holes, slot or other formed recesses in objects. Internal contours can be used not only for distinct identification of objects but also resolve ambiguities in determining the object position (e.g. due to symmetrical outer contour).

The modular approach allows the users to fit their individual requirements to the inner contour extraction process optimally. A maximum performance can be ensured by flexible configuration.

Correction of optical distortions

Optical lenses and lens systems (e.g. camera objective) can lead to a distortion (optical distortion) of the camera image. It is a geometric aberration which increases with increasing distance of the pixel to the optical axis. Without compensation, this optical effect can lead to inaccurate object position determination in the peripheral areas of the image. VisCam is able to determines the degree of the optical distortion and the actual object location.

With the help of a simple calibration process, the distortion of the system can be detected once. The data obtained is then used afterwards to correct points and coordinates.

Recognition of objects in contact with each other

Very closely spaced or touching objects can result in being recorded as a single object by image-based object recognition. This effect particularly from the filtering of the input graphic data in the pre-processing step and from the methods used for polygon extraction. VisCam is able to recognize potential "contact points" to efficiently recognize and divide unknown objects (as a composition of several individual objects) into the original objects.

Treatment of partially recognized objects

The treatment of partially recognized objects can be configured in VisCam. If an object is at the edge of the image capture area, then it may result in being partially seized. VisCam can either discard the object or perform the template matching but with only the partially detected object part. Here a special mathematical gauge measures the plausibility of a match.

Modularity

VisCam is designed as a multilevel pipeline of modular processing levels. Owing to the completely object-oriented architecture based on defined interfaces, individual parts can be modified easily and efficiently.

PC-Version

The complexity of the entire system can be reduced if the VisCam Server is implemented directly on the smart camera as then an additional unit for image processing and interpretation becomes unnecessary. In addition, however, it is also possible to use the modern methods of image processing of VisCam on a standard PC. This allows a fast, easy and very versatile use of VisCam.

Zum SeitenanfangSeitenanfang


Even in complex scenes (many objects, high number of possible intersections. etc.) short computation times and high frame rates can be achieved thanks to numerous optimizations. A scene with eight touching objects requires approximately 35ms for all analysis, computing and comparison operations. This corresponds to a frame rate of approximately 28 frames per second.

Optimizations

Compared with classical PC-based solutions, where a powerful CPU has comparatively unlimited resource to execute image processing algorithms, smart cameras on the other hand make heavy demands on the algorithms used because of their limited resources.

VisCam achieves performance gains by the following optimizations:

  • Memory- and time-efficient implementation of complex mathematical data types (including decimal numbers, complex numbers, vectors, matrices, etc.).
  • Efficient implementation of data-type specific mathematical operations.
  • Efficient implementation of basic mathematical operations taking into account specific (hardware) characteristics of the target architecture.
  • Efficient implementation of complex mathematical procedures (including Fourier transforms, geometric calculations, etc) by using optimized data types and basic mathematical operations.

Zum SeitenanfangSeitenanfang

 
Robotics Equipment Corporation GmbH ·