INSTITUT D'ÉLECTRONIQUE FONDAMENTALE Centre scientifique d'Orsay - Bât. 220 - F 91405 ORSAY cedex UMR 8622 CNRS Université Paris XI Sujet de Stage Extraction de ligne de niveaux adéquation algorithme-architecture Contexte Ce stage s'inscrit dans le projet SystemD qui regroupe trois laboratoires et dont la thématique est l'optimisation automatique de code pour cible hétérogènes (processeur embarqué, extension multimédia et System On Chip). Dans ce contexte, le but de ce stage sera d'étudier la transformation d'algorithmes de traitement d'images, dits de moyen niveau (car leur complexité est fonction du contenu de l'image) et de leur optimisation pour les processeurs RISC actuels en vu de leur embarquement dans des robots autonomes. Problématique L'optimisation des algorithmes bas niveau est un sujet ancien et efficacement traité pour que de tels algorithmes puisse être embarqués dans des processeurs faibles consommation ou sur des circuits spécialisés type FPGA. L'optimisation des algorithmes moyen niveau est bien moins explorée et bien plus difficile. Le fait que leur complexité soit dépendant du contenu de l'image revient à dire que l'algorithme contient un grand nombre de calcul conditionné à des critères locaux ou globaux (valeur seuil d'un pixel, valeur moyenne d'une région, …) donc de tests ("if-then-else", ou while(condition)) limitant la vitesse d'exécution de l'algorithme sur les processeurs actuels, qui basent sur leur performances sur une bonne utilisation du pipeline d'instructions et des mémoires caches. Une classe d'algorithme qui a peu ou pas été ré-étudiés pour être portés sur les processeurs RISC actuels sont les algorithmes à base de classes d'équivalences et assimilés : étiquetage en composantes connexes, codage de contours, ligne de niveau. ces algorithmes sont un passage obligé entre le bas niveau – pré-traitement régulier – et le haut niveau – interprétation, reconnaissance, prise de décision. Leur optimisation est donc nécessaire pour intégrer une chaîne complète de traitement sur un processeur embarqué. Des travaux récent ont mis en évidence que la complexité algorithmique classique ne pouvait plus être facilement reliée au temps d'exécution d'un algorithme sur une architecture donnée. Ainsi un algorithme d'étiquetage en composantes connexes, dont la complexité est plus du double des algorithmes classiques a un temps d'exécution 2 à 3 fois plus court que les versions ne prenant pas en compte l'architecture des ordinateurs. Travail à effectuer : transformation d'algorithme de ligne de niveaux. Le but de ce stage est le développement d'un algorithme rapide d'extraction de ligne de niveaux devant être intégré à des robots autonomes terrestres ou aériens. En se basant sur des travaux existants, l'étudiant développera dans un premier temps un algorithme binaire correspondant à l'algorithme classique de suivi de contours et codage de Freeman pour valider la démarche et obtenir une première estimation de l'accélération du temps de calcul. Dans un second temps l'algorithme sera étendu au cas multi niveaux que sont les algorithmes d'extraction de lignes de niveaux. Ces algorithmes seront intégrés dans les outils développés par l'équipe APV (Architecture Parallèle de Vision) de l'IEF et couplés soit à un processus de vote pour le recalage robuste en temps réel d'images, soit intégré dans une chaîne de compression transmission vidéo d'un robot autonome. Profil recherché traitement d'images avec un bon niveau en langage C (des connaissances en architecture des ordinateurs serait un plus). Lieu du stage: IEF Orsay, www.u-psud.fr/ief durée : 4 à 6 mois, fonction des conventions de stages écoles d'ingénieurs, master recherche (ex DEA). poursuite en thèse: possible Personne à contacter : Lionel Lacassagne ([email protected])