Image Processing and Pattern Recognition / High-performance image processing

The development of efficient algorithms—whether in terms of execution speed, memory footprint, or ease of use—is at the core of the team’s work. This focus is reflected in several recent projects, particularly in the field of image processing.

Our contributions in high-performance image processing

The team actively contributes to the development of open-source libraries that provide reusable and efficient image processing tools. We recently addressed the following challenges:

  • Developing high-performance mathematical morphology algorithms that exploit massively parallel architectures (e.g. GPUs). We focus on the porting of some tree-based image representations widely used in mathematical morphology (the max-tree, the tree of shapes and the α-tree). Our algorithms achieve the state-of-the-art performance in this field [2].

  • Providing a mathematical morphology-related Modern C++ library that conciliates ease-of-use, performance and genericity. Pylene aims at providing mostly Mathematical Morphology building blocs for image processing pipelines [1][3][4]. It features the following characteristics:
    • Simplicity it has both python bindings and simple C++ syntax
    • Efficiency with algorithms written in a simpler language that run as if they were written in C. We follow one guideline: zero-cost abstraction.
    • Genericity with the abaility to write algorithms once that run on many kind of images with zero-cost abstraction.
    • Interopability with algorithms that run on image coming from external libraries (even on your own image type).

A single code algorithm for many types A watershed on 2D images meshes and 3D volumes

A single code (algorithm) for many types. A watershed on 2D images, meshes and 3D volumes.

Related Publications

[1]

Roland Levillain • Thierry Géraud • Laurent Najman • Edwin Carlinet. "Practical Genericity: Writing Image Processing Algorithms Both Reusable and Efficient". Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications -- Proceedings of the 19th Iberoamerican Congress on Pattern Recognition (CIARP). 2014. https://doi.org/10.1007/978-3-319-12568-8_9.

[2]

Nicolas Blin • Edwin Carlinet • Florian Lemaitre • Lionel Lacassagne • Thierry Géraud. "Max-Tree Computation on GPUs". IEEE Transactions on Parallel and Distributed Systems. 2022. https://doi.org/10.1109/TPDS.2022.3158488.

[3]

Baptiste EstebanEdwin Carlinet • Guillaume Tochon and Didier Verna. "The Cost of Dynamism in Static Languages for Image Processing". Proceedings of the 21st International Conference on Generative Programming: Concepts & Experiences (GPCE 2022). 2022. https://doi.org/10.1145/3564719.3568693.

[4]

Michaël Roynard • Edwin CarlinetThierry Géraud. "A Modern C++ Point of *View* of Programming in Image Processing". Proceedings of the 21st International Conference on Generative Programming: Concepts & Experiences (GPCE 2022). 2022. https://doi.org/10.1145/3564719.3568692.