Difference between revisions of "Jobs/M2 2017 TG Modern Generic C ++ programming"

From LRDE

(Created page with "{{Job |Reference id=M2 2017 TG Modern Generic C ++ programming |Title=Programmation générique en C++ moderne pour le traitement d'images |Dates=5 - 6 mois en 2017 |Research ...")
 
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
 
|Reference id=M2 2017 TG Modern Generic C ++ programming
 
|Reference id=M2 2017 TG Modern Generic C ++ programming
 
|Title=Programmation générique en C++ moderne pour le traitement d'images
 
|Title=Programmation générique en C++ moderne pour le traitement d'images
|Dates=5 - 6 mois en 2017
+
|Dates=5 - 6 mois en 2018
 
|Research field=Traitement d'Images
 
|Research field=Traitement d'Images
 
|Related project=Olena
 
|Related project=Olena
Line 19: Line 19:
 
2) Le sujet a une forte composante implémentatoire en C++ donc un prérequis attendu est une bonne connaissance de C++ (avoir lu Scott Meyers et
 
2) Le sujet a une forte composante implémentatoire en C++ donc un prérequis attendu est une bonne connaissance de C++ (avoir lu Scott Meyers et
 
savoir déjà ce que sont SFINAE, RVO, et autres joyeusetés est un très bon signe).
 
savoir déjà ce que sont SFINAE, RVO, et autres joyeusetés est un très bon signe).
 
 
 
|Objectives=Dans le cadre du calcul scientifique, on a besoin d'outils performants sachant que l'on dispose souvent de gros volumes de données. Les algorithmes qui traitent les données manipulent généralement des abstractions du domaine. En effet, derrière les notions de matrice, de graphe, d'image, etc. se cachent plusieurs implémentations de ces structures. On souhaite pouvoir conserver la forme intrinsèquement abstraite des algorithmes, tout en garantissant que cela n'induit pas
 
|Objectives=Dans le cadre du calcul scientifique, on a besoin d'outils performants sachant que l'on dispose souvent de gros volumes de données. Les algorithmes qui traitent les données manipulent généralement des abstractions du domaine. En effet, derrière les notions de matrice, de graphe, d'image, etc. se cachent plusieurs implémentations de ces structures. On souhaite pouvoir conserver la forme intrinsèquement abstraite des algorithmes, tout en garantissant que cela n'induit pas
 
de surcoût à l'exécution. Dit autrement, on veut que les algorithmes soient les plus rapides possibles, bien qu'ils aient à traiter des données de types différents. Pour cela, la programmation générique est une solution.
 
de surcoût à l'exécution. Dit autrement, on veut que les algorithmes soient les plus rapides possibles, bien qu'ils aient à traiter des données de types différents. Pour cela, la programmation générique est une solution.
Line 47: Line 45:
 
|Future work opportunities=Poursuite en thèse
 
|Future work opportunities=Poursuite en thèse
 
|Type=Master Internship
 
|Type=Master Internship
|Language=fr
+
|Language=en
 
|Published=Yes
 
|Published=Yes
 
}}
 
}}

Latest revision as of 16:02, 12 April 2018

Programmation générique en C++ moderne pour le traitement d'images
Reference id

M2 2017 TG Modern Generic C ++ programming

Dates

5 - 6 mois en 2018

Research field

Traitement d'Images

Related project

Olena

Advisor

Thierry Geraud

General presentation of the field

Mots-clefs :

  • polymorphisme paramétrique
  • programmation générique
  • C++
  • structures de données et interfaces
  • génie logiciel
  • traitement d'images.
Prerequisites

Avant-propos important :

1) Ce stage de master est destiné à un étudiant qui souhaiterait poursuivre en thèse sur ce sujet.

2) Le sujet a une forte composante implémentatoire en C++ donc un prérequis attendu est une bonne connaissance de C++ (avoir lu Scott Meyers et savoir déjà ce que sont SFINAE, RVO, et autres joyeusetés est un très bon signe).

Objectives

Dans le cadre du calcul scientifique, on a besoin d'outils performants sachant que l'on dispose souvent de gros volumes de données. Les algorithmes qui traitent les données manipulent généralement des abstractions du domaine. En effet, derrière les notions de matrice, de graphe, d'image, etc. se cachent plusieurs implémentations de ces structures. On souhaite pouvoir conserver la forme intrinsèquement abstraite des algorithmes, tout en garantissant que cela n'induit pas de surcoût à l'exécution. Dit autrement, on veut que les algorithmes soient les plus rapides possibles, bien qu'ils aient à traiter des données de types différents. Pour cela, la programmation générique est une solution.


Le but de ce stage est de montrer comment les fonctionnalités offertes par les dernières normes du C++ permettent de faciliter l'écriture d'outils génériques. Le domaine d'application sera une bibliothèque de traitement d'images.

Benefit for the candidate

La définition de structures de données (types d'images) et d'algorithmes génériques (traitements d'images) nécessite au préalable d'effectuer une taxonomie des entités de ce domaine. Cette tâche est en soi un défi car elle est véritablement inédite.

Un second défi concerne la mise en oeuvre de modifications génériques de types, les "morpheurs" (par exemple, une image restreinte à un sous-domaine ou l'image de la composante rouge d'une image couleur). Ces modifications génériques de types augmentent l'expressivité (et la concision) des développements et décuplent les fonctionnalités offertes aux utilisateurs. En revanche, leur mise en oeuvre est un véritable challenge car elle est délicate par la combinatoire qu'ils entraînent.

References

- M. Garrigues and A. Manzanera, "Video++, a modern image and video processing C++ framework," In Proc. of the Conference on Design & Architectures for Signal & Image Processing (DASIP), 2014. https://hal.inria.fr/hal-01118322/document


- T. Geraud, "Outil logiciel pour le traitement d'images: Bibliothèque, paradigmes, types et algorithmes," HDR report, Univ. Paris-Est, 2012. https://www.lrde.epita.fr/~theo/slides/geraud.2012.hdr_slides.pdf


- R. Levillain, T. Geraud, and L. Najman, "Why and how to design a generic and efficient image processing framework: The case of the milena library," In Proceedings of the IEEE International Conference on Image Processing (ICIP), pages 1941–1944, Hong Kong, September 2010. https://www.lrde.epita.fr/~theo/papers/geraud.2010.icip.pdf

Place LRDE: How to get to us
Compensation

1000 euros bruts / mois

Future work opportunities

Poursuite en thèse

Contact

<thierry . geraud at lrde . epita . fr> <thierry . geraud at lrde . epita . fr>