IPipeline: a development framework for image processing pipelines
Résumé
Developing an image processing or computer vision application typically involves the sequencing of a number of elementary operations on images. Some operations can be simple image processing, other operations will be arithmetic and others will be more advanced function. In most cases, a tool like OpenCV (http://www.opencv.org) provide optimized and efficient implementations, but in some cases, specialized functions also need to be implemented.
During the development phases, it can sometimes be useful to visualize all the intermediary output and input, or even to create some debugging visualizations that require creating temporary images. An additional requirement of the development phase is to design modules that can very clearly check if their input correspond to their expectations in terms of size, color depth, pixel format.
In the optimization phase, the processing tree contains multiple parallelizable path, a deployment of the image processing operations into multiple threads is often desirable. Independently of multi-threading, profiling the timing required for every elementary operation is often very useful in targetting the optimization requirements of a particular application.
The IPipeline framework is a tool that has been developed with all the above goals in mind since 2004. The first version was aimed at the joint processing of 5 individual fish-eye cameras for 3D reconstruction. Later version have been extended with more and more operations, and integrated with various middlewares, DDX, Yarp, and finally ROS. The current version builds upon OpenCV.
Origine | Fichiers produits par l'(les) auteur(s) |
---|