|Robotics Equipment Corporation||DeutschEnglish|
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 Pipeline
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.
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.
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.
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.
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.
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.
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.
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.
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: