Search by property
This page provides a simple browsing interface for finding entities described by a property and a named value. Other available search interfaces include the page property search, and the ask query builder.
List of results
- Seminar/2012-06-20 + (L'arrivée des GPU (Graphics Processing Uni … L'arrivée des GPU (Graphics Processing Unit) a profondément changé la</br>manière de concevoir la notion de coprocesseur. A moins de 500€, il est</br>désormais possible d'avoir à sa disposition une puissance de calcul qui</br>n'était réservée jusqu'à un passé récent qu'aux grands centres de calcul. La</br>société Nvidia, en mettant au point l'environnement CUDA, a fourni à la</br>communauté des développeurs des moyens simples et efficaces pour rendre</br>cette puissance de calcul accessible au plus grand nombre. Depuis, sous</br>l'impulsion de la société Apple, le standard OpenCL est venu ouvrir la voie</br>d'une véritable parallélisation des applications sur l'ensemble des</br>ressources processeur offertes aux développeurs.</br></br>Cet exposé décrira les différentes technologies permettant la programmation</br>parallèle des GPU en mettant l'accent sur les contraintes actuelles et les</br>progrès à venir des futures architectures comme le processeur Kepler. Des</br>démonstrations ainsi que des exemples de code viendront compléter cet</br>exposé.es de code viendront compléter cet exposé.)
- Seminar/2010-11-10 + (L'idée d'une fonction est que la quantité … L'idée d'une fonction est que la quantité d'entrée détermine complètement la quantité de sortie. En informatique, la quantité est une structure de données qui peut être simple, booléenne, entière, ou complexe, image, graphe, arbre. Dans ce domaine, un champ de recherche est de construire un ensemble de fonctions élémentaires, puis par composition d'en créer des plus compliquées. Pour cette dernière, une solution pratique est le langage Caméléon conçu par V. Tariel et O. Cugnon de Sevricourt, qui est un langage de flux de données génériques dont la sortie est prévue en janvier 2011. Générique signifie que tous les types de données peuvent être intégrés dans le langage. Pour cette première, ce séminaire couvrira quelques définitions de fonctions primaires reliées à l'image, incorporées à la bibliothèque standard de Caméléon. A la manière de l'implémentation de la bibliothèque standard du C++, il y aura l'utilisation d'un côté de l'algorithme générique for\_each en typage statique et de l'autre des opérateurs et des itérateurs organisés en programmation orientée objet. L'itérateur localise l'action suivant différents paradigmes : ensemble fini et dénombrable, voisinage, convolution, zone d'influence. L'opérateur agit suivant différents paradigmes : arithmétique, croissance de régions.mes : arithmétique, croissance de régions.)
- Seminar/2012-03-14 + (L'industrie des effets spéciaux produit un … L'industrie des effets spéciaux produit une grande quantité d'images</br>qu'il faut traiter et afficher. Dans le cadre de ses développements</br>internes, Mikros Image a développé et mis en Open Source un player</br>d'images temps réel : duke. Dans cet exposé je décrirai quels sont</br>les enjeux techniques d'un tel logiciel (allocation mémoire, accès</br>disque, multiplicité des formats, affichage, traitement...) puis</br>j'expliquerai plus en détails les étapes de la conception d'un</br>composant essentiel permettant de lire et décoder le plus rapidement</br>possible les images à afficher. Ce composant ayant pour but d'être</br>intégré dans d'autres outils, il doit être réutilisable.'autres outils, il doit être réutilisable.)
- Seminar/2014-06-11 + (L'informatique graphique 3D, qu'il s'agiss … L'informatique graphique 3D, qu'il s'agisse de modélisation de formes,</br>d'analyse d'animation ou de synthèse d'images, exploite intensivement divers</br>types de structures spatiales telles que les hiérarchies volumes englobant,</br>les cages de déformation, les squelettes d'animation ou bien encore les</br>structures médianes.</br></br>Dans cette présentation, je reviendrai sur quelques uns de nos travaux</br>récents sur ce sujet. Je détaillerai notamment une nouvelle forme de</br>représentation d'objets 3D, les Sphere-Meshes, bien adaptés à</br>l'approximation extrême de forme et à l'auto-rigging pour la déformation</br>interaction. Je discuterai ensuite plusieurs projets liés à l'analyse de</br>formes, dont le système CageR pour l'ingénierie inverse de modèles issus</br>de performance capture. J'aborderai enfin le rendu temps-réel et le calcul</br>GPU dans le cadre l'éclairage global, qui s'appuie lui aussi sur la gestion</br>efficace d'une structure particulière : un arbre de radiance.</br></br>À chaque étape, je donnerai des éléments sur l'implémentation pratique de</br>ces approches et sur les nombreux défis qu'il reste à relever. les nombreux défis qu'il reste à relever.)
- Seminar/2010-03-31 + (Ce séminaire porte sur certains de mes tra … Ce séminaire porte sur certains de mes travaux en matière de</br>généricité et réutilisation en traitement d'images. Ces travaux sont</br>présentés à une échelle algorithmique, bas-niveau, et à une échelle</br>logicielle, plutôt haut-niveau. À l'échelle de l'algorithme, nous</br>présentons une technique permettant d'étendre la généricité des</br>algorithmes de traitement d'images par rapport à la région d'intérêt</br>traitée, en complément de la généricité par rapport aux données</br>(1D, 2D, 3D, scalaires, couleurs, multi-spectrales, séquences,</br>etc.) Cette méthode repose sur une adaptation du patron de</br>conception « Iterator » et sur le polymorphisme de compilation en</br>C++. Au niveau logiciel, l'objectif de la généricité et de</br>réutilisation est de faciliter le couplage des algorithmes « purs »</br>avec des fonctionnalités supplémentaires telles que la visualisation,</br>l'interface homme-machine, les entrées-sorties... Dans ce cas, je</br>présente les principes d'une architecture flexible et évolutive</br>implémentée en C++, combinant la notion de (programmation par) rôle et</br>la notion de (programmation par) composants réutilisables. Ces travaux</br>sont illustrés par des applications dans le domaine médical. des applications dans le domaine médical.)
- Seminar/2009-05-27 + (La Low-Level Virtual Machine (LLVM) est un … La Low-Level Virtual Machine (LLVM) est un ensemble de bibliothèques</br>et d'outils qui facilitent le développement et l'optimisation de</br>compilateurs, de générateurs de code et de machines virtuelles. Clang</br>et VMKit utilisent LLVM pour leur générateur de code à différents</br>niveaux: l'un pour la compilation statique de langages de la famille C</br>(C/C++/ObjectiveC), et l'autre pour la compilation dynamique</br>d'applications Java ou .Net.</br></br>Dans cet exposé, je présenterai ces trois projets, et rentrerai dans</br>les détails de VMKit, que j'ai développée dans le cadre de ma</br>thèse. Je finirai par montrer les exemples de recherche auxquels</br>nous nous adressons avec l'aide de VMKit, au sein de l'équipe de</br>recherche INRIA/Regal.sein de l'équipe de recherche INRIA/Regal.)
- Seminar/2016-01-27 + (La cryptographie joue un rôle clé dans la … La cryptographie joue un rôle clé dans la sécurité des infrastructures</br>de communication. Il est donc d'une importance capitale de construire</br>des système cryptographiques apportant de fortes garanties de</br>sécurité. C'est dans ce but que les constructions cryptographiques</br>sont étudiées scrupuleusement et viennent avec une preuve de sécurité</br>bornant la probabilité qu'un adversaire casse le crypto-système.</br></br>La majorité des preuves de sécurité sont réductionnistes: elles</br>construisent, à partir d'un adversaire PPT (Probabilistic</br>Polynomial-Time) violant avec une probabilité écrasante la sécurité de</br>la construction cryptographique, un second adversaire PPT cassant une</br>hypothèse de sécurité. Cette approche, connue sous le nom de</br>"sécurité formelle", permet sur le principe de fournir des preuves</br>mathématiques rigoureuses et détaillées de sécurité.</br></br>Les récentes constructions cryptographiques (et donc leur analyse de</br>sécurité) sont de plus en plus complexes, et il n'est pas rare</br>qu'elles incluent maintenant la preuve sécurité de l'implémentation du</br>crypto-système, ou de sa résistance aux canaux cachés. En conséquence,</br>les preuves de sécurité de ces algorithmes présentent un niveau de</br>complexité tel qu'un grand nombre d'entre elles sont fausses -</br>prouvant la sécurité d'une construction qui ne l'est pas.</br></br>Une solution prometteuse pour pallier ce problème est de développer</br>des outils formels d'aide à la construction et vérification de</br>crypto-systèmes. Bien que de nombreux outils existent pour la</br>cryptographie symbolique, peu d'effort a été fait pour la</br>cryptographie calculatoire - pourtant utilisée largement parmi les</br>cryptographes.</br></br>Après avoir introduit le domaine de la preuve formelle et de la</br>sécurité formelle, je présenterai EasyCrypt, un outil d'aide à la</br>preuve des constructions cryptographiques dans le modèle</br>calculatoire. EasyCrypt adopte une approche reposant sur la</br>formalisation de constructions cryptographiques à partir de code</br>concret, dans laquelle la sécurité et les hypothèses de sécurité sont</br>modélisées à partir de programmes probabilistes et où les adversaires</br>sont représentés par du code non spécifié. Une telle approche permet</br>l'utilisation d'outils existants pour la vérification de programmes.</br></br>EasyCrypt est développé conjointement entre l'IMDEA Software</br>Institute et Inria.entre l'IMDEA Software Institute et Inria.)
- Seminar/2017-11-08 + (La lecture des lignes de la main est une a … La lecture des lignes de la main est une activité ancestrale sans</br>fondement scientifique, même si certains motifs sont associés à des</br>malformations congénitales comme la trisomie 21. Cette conférence</br>décrira l’émergence d’une véritable science de la lecture des « lignes</br>du cerveau humain », qu’il s’agisse des plissements de son cortex ou</br>de la trajectoire des faisceaux de fibres qui constituent son câblage</br>à longue distance. Des formes inhabituelles de ces plissements ou de</br>ces faisceaux sont parfois la trace d’anomalies développementales</br>susceptibles d’augmenter le risque de développer certaines</br>pathologies.isque de développer certaines pathologies.)
- Seminar/2008-11-26 + (L'outil BTL++ (Benchmark Template Library … L'outil BTL++ (Benchmark Template Library in C++) développé à EDF R&D se</br>fonde sur la programmation générique et permet de mesurer les performances</br>de noyaux de calcul intensif. Il s'agit d'une bibliothèque générique dont</br>la conception vise à faciliter l'extensibilité par l'utilisateur.</br>Récemment, le lien entre les mesures de performance et la génération</br>automatique de bibliothèques optimales à été étudié pour le domaine de</br>l'algèbre linéaire dense. Quelques mesures de performance de noyaux de</br>calcul à base d'"Expression Template" permettront d'illustrer l'usage de</br>l'outil BTL++.mettront d'illustrer l'usage de l'outil BTL++.)
- Seminar/2011-03-16 + (La plupart des bibliothèques génériques en … La plupart des bibliothèques génériques en traitement d’images mettent l’accent sur la généricité, la mise en pipeline d’opérations basiques, mais peu mettent l’accent sur la sélection d’un sous-ensemble de pixels concerné par un algorithme. En pratique de nombreux algorithmes ne s’appliquent que sur un sous-ensemble simple (rectangle) ou complexe (forme contiguë quelconque) de pixels qui ne sont qu’une petite fraction d’une image. La création d’un masque précisant les pixels concernés ne semble pas une solution optimale (contrainte mémoire et calculatoire). Dans le cadre de développement d’algorithmes en traitement d’images et vidéos, le laboratoire Canon Research Centre France (localisé à Rennes) développe une bibliothèque générique de traitement d’images qui ajoute la notion de forme à toute manipulation basique ou complexe d’une image. Une « arithmétique » des formes permet une sélection précise de pixels et une exécution efficace d’algorithme complexe. Les motivations, la mise en œuvre de cette bibliothèque, les outils template utilisés seront présentés et illustrés d’exemples concrets.résentés et illustrés d’exemples concrets.)
- Seminar/2010-04-28 + (La plupart des frameworks de traitement d' … La plupart des frameworks de traitement d'images ne sont pas assez</br>génériques pour garantir une réutilisabilité effective des structures</br>de données et des algorithmes, tout en préservant performances et</br>facilité d'utilisation, et en restant proche de la théorie. Dans</br>cette présentation, nous proposons un cadre logiciel pour le</br>traitement d'images centré sur le paradigme de programmation</br>générique, cherchant à répondre tant aux besoins pratiques que</br>théoriques des scientifiques et des développeurs : la mise au point de</br>méthodes rapides et réutilisables, un niveau de généricité progressif,</br>la possibilité de traiter des ensembles de données volumineux, une</br>gestion de la mémoire automatique et efficace, la vérification</br>statique des types, l'orthogonalité des structures de données et des</br>algorithmes, etc. Cette approche permet aux utilisateurs de concevoir</br>et d'implémenter de nouvelles méthodes délivrées des contraintes</br>habituellement imposées pas les outils logiciels, de pratiquer des</br>expériences inter-domaines, de généraliser certains résultats et de</br>transformer facilement des prototypes en de vraies applications. des prototypes en de vraies applications.)
- Seminar/2016-12-07 + (La ville est un système complexe façonné p … La ville est un système complexe façonné par des dynamiques opérant à des</br>échelles différentes.</br>En tant que chercheur en sciences de l'information géographique travaillant</br>dans l'interdisciplinarité, je travaille en collaboration avec des</br>spécialistes du transport, des géographes, des urbanistes, des historiens,</br>des démographes, et des physiciens, afin de proposer de meilleurs outils,</br>modèles et données pour l'étude multi-échelle des dynamiques urbaines.</br></br>Je présente mes contributions dans un ordre correspondant à l'échelle</br>spatiale, de la plus large à la plus fine : la très grande échelle pour les</br>questions liées à la mobilité, la grande échelle pour celles liées à</br>l'urbanisme et la petite échelle pour les questions liées à l'évolution du</br>territoire sur le long terme.</br></br>Pour chaque partie, je vais m'attacher à proposer un cheminement commun :</br>tout d'abord la question des sources d'information, des connaissances</br>manipulées, leur représentation, leur stockage ; ensuite, la question de</br>l'analyse de ces données, de leur enrichissement, de leur croisement ;</br>enfin, l'interaction avec ces données, leur visualisation, leur</br>interprétation, leur validation, leur correction par des utilisateurs.ion, leur correction par des utilisateurs.)
- Seminar/2017-01-18 + (La visualisation scientifique est un domai … La visualisation scientifique est un domaine qui vise à aider les utilisateurs </br>à (i) représenter, (ii) explorer et (iii) analyser des données géométriques </br>acquises ou simulées, à des fins d'interprétation, de validation ou de </br>communication. Parmi les techniques existantes, les algorithmes inspirés par </br>la théorie de Morse ont démontré leur utilité dans ce contexte pour </br>l'extraction efficace et robuste de structures d'intérêts, et ce, à plusieurs </br>échelles d'importance.</br></br>Dans cette présentation, je donnerai un bref tutoriel sur l'analyse </br>topologique de champs scalaires, en introduisant quelques concepts clés comme </br>celui de graphe de Reeb, de complexe de Morse-Smale ou de diagramme de </br>persistance. Par ailleurs, j'illustrerai ces notions par des cas </br>d'applications concrets en astrophysique, chimie moléculaire ou </br>encore en combustion.</br>Ensuite, je discuterai certaines problématiques pratiques ayant récemment </br>émergé avec le développement des ressources de calcul haute-performance. Ces </br>problématiques induisent non seulement des jeux de données d'une taille </br>inédite, mais également des types nouveaux de données, comme les champs </br>scalaires multivariés ou incertains. Ces difficultés ne sont pas uniquement </br>intéressantes pour la communauté de recherche à cause de leur forte importance </br>pratique, mais aussi parce qu'elles nécessitent un redémarrage complet de </br>l'effort de recherche entrepris dans ce domaine ces vingt dernières années. En </br>particulier, je présenterai de nouvelles directions de recherche, étayées par </br>des résultats préliminaires récents concernant l'analyse topologique dans un </br>contexte de calcul haute-performance, ainsi que l'analyse topologique de </br>champs scalaires incertains ou bivariés. champs scalaires incertains ou bivariés.)
- Seminar/2013-04-24 + (Large distributed systems on the Internet … Large distributed systems on the Internet are subject to hostile</br>environmental conditions such as node failures, erratic communications, and</br>partitioning, and global problems such as hotspots, attacks, multicast</br>storms, chaotic behavior, and cascading failures. How can we build these</br>systems to function in predictable fashion in such situations as well as</br>being easy to understand and maintain? In our work on building</br>self-managing systems in the SELFMAN project, we have discovered a useful</br>design pattern for building complex systems, namely as a set of Weakly</br>Interacting Feedback Structures (WIFS). A feedback structure consists of a</br>graph of interacting feedback loops that together maintain one global system</br>property. We give examples of biological and computing systems that use</br>WIFS, such as the human respiratory system and the TCP family of network</br>protocols. We then show the usefulness of the design pattern by applying it</br>to the Scalaris key/value store from SELFMAN. Scalaris is based on a</br>structured peer-to-peer network with extensions for data replication and</br>transactions. Scalaris achieves high performance: from 4000 to 14000</br>read-modify-write transactions per second on a cluster with 1 to 15 nodes</br>each containing two dual-core Intel Xeon processors at 2.66 GHz. Scalaris</br>is a self-managing system that consists of five WIFS, for connectivity,</br>routing, load balancing, replication, and transactions. We conclude by</br>explaining why WIFS are an important design pattern for building complex</br>systems and we outline how to extend the WIFS approach to allow proving</br>global properties of these systems.roving global properties of these systems.)
- Seminar/2015-05-13 + (Le C++ est très impopulaire dans la commun … Le C++ est très impopulaire dans la communauté des développeurs web et ce</br>n'est pas sans raison. Le langage n'offre aucune introspection, ce qui</br>complique la sérialisation automatique de messages. De plus, l'injection de</br>dépendances, un design pattern très utile dans les frameworks web issus</br>d'autres langages, est complexe voire quasi impossible à implémenter en</br>C++98.</br></br>Nous verrons comment l'introspection statique et l'injection de dépendance</br>ont été implémentés en C++14 grâce à un concept innovant: les symboles de la</br>bibliothèque IOD (1). Nous verrons ensuite comment Silicon (2), un jeune</br>framework web, tire parti de ces abstractions et aide les développeurs à</br>construire des APIs web aussi simplement qu'ils le feraient en Go ou</br>JavaScript.nt qu'ils le feraient en Go ou JavaScript.)
- Seminar/2014-02-05 + (Le Web a subi en quelques années une évolu … Le Web a subi en quelques années une évolution radicale, passant d'une</br>plateforme de données à une plateforme d'applications. Mais la plupart des</br>outils de programmation n'ont pas été conçus pour cette nouvelle vision du</br>Web.</br></br>Le projet Ocsigen a pour but d'inventer de nouvelles techniques de</br>programmation adaptées aux besoins des sites Web modernes et des</br>applications Web distribuées. Il permet de programmer les parties client et</br>serveur dans le même langage, et même, comme une seule et même</br>application. La puissance expressive du langage OCaml permet d'introduire</br>une abstraction des technologies sous-jacentes dans le but de simplifier la</br>programmation d'interactions Web complexes. Le système de types très avancé</br>du langage permet d'améliorer la fiabilité des programmes et le respect des</br>standards. Cela permet aussi de réduire beaucoup le temps de</br>développement.</br></br>Cet exposé donnera un aperçu global du projet et montrera comment écrire un</br>exemple d'application simple.nt écrire un exemple d'application simple.)
- Seminar/2014-03-12 + (Le Web a subi en quelques années une évolu … Le Web a subi en quelques années une évolution radicale, passant d'une</br>plateforme de données à une plateforme d'applications. Mais la plupart des</br>outils de programmation n'ont pas été conçus pour cette nouvelle vision du</br>Web.</br></br>Le projet Ocsigen a pour but d'inventer de nouvelles techniques de</br>programmation adaptées aux besoins des sites Web modernes et des</br>applications Web distribuées. Il permet de programmer les parties client et</br>serveur dans le même langage, et même, comme une seule et même</br>application. La puissance expressive du langage OCaml permet d'introduire</br>une abstraction des technologies sous-jacentes dans le but de simplifier la</br>programmation d'interactions Web complexes. Le système de types très avancé</br>du langage permet d'améliorer la fiabilité des programmes et le respect des</br>standards. Cela permet aussi de réduire beaucoup le temps de</br>développement.</br></br>Cet exposé donnera un aperçu global du projet et montrera comment écrire un</br>exemple d'application simple.nt écrire un exemple d'application simple.)
- Seminar/2016-02-17 + (Le cloud computing donne accès à des resso … Le cloud computing donne accès à des ressources de stockage et de</br>calcul quasiment illimitées, pour un coût toujours plus bas. Devant</br>l’explosion de la quantité des données générées et le besoin de réagir</br>toujours plus vite, il n’a jamais été aussi facile d’accéder aux</br>technologies de traitement massif.</br></br>Nous illustrerons de nombreux cas d’usage du cloud : Hadoop,</br>dataware-house de plusieurs Po, traitement temps réel de millions</br>d’événements par seconde, IOT, Machine Learning…</br></br>En particulier, l’utilisation d’algorithmes massivement parallèles</br>prend toute son importance et permet de tirer pleinement parti de</br>l’élasticité du cloud, par exemple: Monte-Carlo dans le domaine</br>financier, modélisation de protéines en 3D pour du screening, analyse</br>génomique, analyse de logs…ening, analyse génomique, analyse de logs…)
- Seminar/2013-05-22 + (Le compilateur GCC est extensible via des … Le compilateur GCC est extensible via des greffons (plugins) depuis</br>plusieurs années. Mais c'est un logiciel libre complexe (de 10MLOC) et</br>encore en évolution, dont on décrira grossièrement l'architecture. Écrire</br>des greffons en C est fastidieux.</br></br>Le language d'extension MELT (domain specific language) permet d'étendre</br>moins péniblement le compilateur GCC. Il offre une syntaxe régulière et</br>simple, inspirée de LISP. MELT est traduit en du code C (ou C++) adapté aux</br>internes de GCC et son implémentation (en logiciel libre) est</br>auto-amorcée. Il offre des traits permettant des styles de programmation de</br>haut niveau (styles fonctionnel, objet, réflexif).</br></br></br>On décrira un peu l'implémentation de MELT, sa syntaxe et ses traits</br>caractéristiques, et les exemples d'extensions.téristiques, et les exemples d'extensions.)
- Seminar/2008-11-05 + (Dans un intergiciel schizophrène, une repr … Dans un intergiciel schizophrène, une représentation intermédiaire</br>des interactions entre composants applicatifs est construite et</br>manipulée. Cette représentation est neutre vis-à-vis du choix d'une</br>personnalité application (interface entre les composants et</br>l'intergiciel) et d'une personnalité protocolaire (interface entre</br>intergiciels distants). Elle rend possible le découplage entre ces</br>deux aspects.</br></br>Cette représentation doit préserver la structure des données associées</br>aux interactions. Cependant, sa construction in extenso s'avère coûteuse</br>dans le cas de données composites complexes. Cette conversion peut être</br>économisée en remplaçant la réplication complète de la structure par la</br>définition d'un emballage « fantôme » autour de celle-ci (et de chacun</br>de ses composants) : il suffit que cet emballage fournisse les accesseurs</br>permettant de parcourir la structure et de construire un message la</br>représentant.</br></br>Après avoir présenté un exemple concret de représentation neutre</br>des données structurées, nous montrons comment cette optimisation</br>peut être mise en oeuvre pour réaliser de manière efficace la</br>fonction de représentation dans un intergiciel schirophrène. Nous</br>concluons cette discussion par une évaluation du gain de performance</br>ainsi obtenu.ation du gain de performance ainsi obtenu.)
- Seminar/2012-07-04 + ((Morphological Filtering in Shape Spaces: … (Morphological Filtering in Shape Spaces: Applications using Tree-Based Image</br>Representations)</br></br>Connected operators are filtering tools that act by merging elementary</br>regions of an image. A popular strategy is based on tree-based image</br>representations: for example, one can compute a shape-based attribute on</br>each node of the tree and keep only the nodes for which the attribute is</br>sufficiently strong. This operation can be seen as a thresholding of the</br>tree, seen as a graph whose nodes are weighted by the attribute. Rather than</br>being satisfied with a mere thresholding, we propose to expand on this idea,</br>and to apply connected filters on this latest graph. Consequently, the</br>filtering is done not in the image space, but in the space of shapes built</br>from the image. Such a processing is a generalization of the existing</br>tree-based connected operators. Indeed, the framework includes classical</br>existing connected operators by attributes. It also allows us to propose a</br>class of novel connected operators from the leveling family, based on shape</br>attributes. Finally, we also propose a novel class of self-dual connected</br>operators that we call morphological shapings.ators that we call morphological shapings.)
- Seminar/2009-12-02 + (Le processeur CELL BE développé par le con … Le processeur CELL BE développé par le consortium IBM, Sony et Toshiba</br>a eu un impact important dans le monde du calcul scientifique mais</br>aussi dans le monde du jeu. Il est le processeur de base de la</br>première machine à avoir atteint 1 Pflops et aussi celui de la Play</br>Station 3 de Sony. Pour arriver à ce niveau de performance, il intègre</br>9 coeurs hétérogènes interconnectés par un bus. Le coeur principal</br>(PPE) appartient à la famille des PowerPC. Les 8 autres coeurs (SPE)</br>sont spécialisés pour le calcul. Après une présentation détaillée de</br>l'architecture du processeur, nous développerons son mode de la</br>programmation : lancement de threads de calcul sur les SPE, échange de</br>données, programmation SIMD.E, échange de données, programmation SIMD.)
- Seminar/2010-06-02 + (Le traitement d'images est par nature un p … Le traitement d'images est par nature un procédé discret, au cours</br>duquel un signal continu est décomposé en un ensemble de pixels, ou de</br>voxels pour des images tri-dimensionnelles. Au niveau géométrique, cette</br>nature discrète pose peu de problèmes, car la plupart des opérations</br>géométriques sont indépendantes de la grille sous-jacente ; au niveau</br>topologique, le problème est tout autre. Deux des notions fondamentales</br>de la topologie, le voisinage et la connexité, sont radicalement</br>différentes entre un espace continu et un espace discret : il est entre</br>autres impossible de subdiviser un voisinage discret de façon infinie</br>comme c'est le cas dans un espace euclidien.</br></br>Bien que certaines bibliothèques de traitement d'images contiennent des</br>algorithmes topologiques, notamment de squelettisation, le type de</br>voisinage utilisé par ces algorithmes est généralement fixé par le code,</br>ce qui empêche une adaptation facile à un autre type de connexité ou à</br>un espace de dimension différente.</br></br>Ce séminaire présente une méthode générique pour intégrer les notions</br>discrètes de voisinage et de connexité à une bibliothèque de traitement</br>d'images programmée en C++. Je montrerai également comment obtenir de</br>façon simple un algorithme de squelettisation homotopique en utilisant</br>ces notions.tion homotopique en utilisant ces notions.)
- Seminar/2013-10-09 + (Le réductionnisme est une technique réalis … Le réductionnisme est une technique réaliste de conception et implantation</br>de vrais langages de programmation, et conduit à des solutions plus faciles</br>à étendre, expérimenter et analyser. Je vais décrire la conception et</br>l'implantation de GNU epsilon, un langage de programmation extensible, basé</br>sur un langage-noyau minimaliste impératif du premier ordre, équipé de</br>mécanismes d'abstraction forts et avec des possibilités de réflexion et</br>auto-modification. Le langage peut être étendu à des niveaux très hauts: en</br>utilisant des macros à la Lisp et des transformations de code à code</br>réécrivant les expressions étendues en expressions-noyau, on arrive à</br>ajouter les clôtures et les continuations de première classe au dessus du</br>noyau.</br></br>Les programmes qui ne s'auto-modifient pas peuvent être analysés</br>formellement, grâce à la simplicité de la sémantique. Je vais parler</br>rapidement d'une analyse statique dont j'ai prouvé une propriété de</br>«soundness» par rapport à la sémantique dynamique. Le langage se prête à une</br>implantation efficace: je vais montrer un prototype de compilateur natif</br>particulièrement simple.compilateur natif particulièrement simple.)
- Seminar/2010-06-02 + (Le traitement d'images est par nature un p … Le traitement d'images est par nature un procédé discret, au cours</br>duquel un signal continu est décomposé en un ensemble de pixels, ou de</br>voxels pour des images tri-dimensionnelles. Au niveau géométrique, cette</br>nature discrète pose peu de problèmes, car la plupart des opérations</br>géométriques sont indépendantes de la grille sous-jacente ; au niveau</br>topologique, le problème est tout autre. Deux des notions fondamentales</br>de la topologie, le voisinage et la connexité, sont radicalement</br>différentes entre un espace continu et un espace discret : il est entre</br>autres impossible de subdiviser un voisinage discret de façon infinie</br>comme c'est le cas dans un espace euclidien.</br></br>Bien que certaines bibliothèques de traitement d'images contiennent des</br>algorithmes topologiques, notamment de squelettisation, le type de</br>voisinage utilisé par ces algorithmes est généralement fixé par le code,</br>ce qui empêche une adaptation facile à un autre type de connexité ou à</br>un espace de dimension différente.</br></br>Ce séminaire présente une méthode générique pour intégrer les notions</br>discrètes de voisinage et de connexité à une bibliothèque de traitement</br>d'images programmée en C++. Je montrerai également comment obtenir de</br>façon simple un algorithme de squelettisation homotopique en utilisant</br>ces notions.tion homotopique en utilisant ces notions.)
- Seminar/2015-10-14 + (Le traitement géométrique 3D temps-réel a … Le traitement géométrique 3D temps-réel a progressivement atteint un niveau</br>de performance rendant un grand nombre de primitives inspirées du traitement</br>du signal compatible avec les applications interactives. Cela a souvent été</br>rendu possible grâce à la co-conception des opérateurs, des structures de</br>données et du support matériel d’exécution. Parmi les principales classes</br>d'opérateurs géométriques, le filtrage et le sur-échantillonnage (par</br>raffinement) ont été exprimés sous des contraintes temps-réel avec</br>succès. Cependant, l'opérateur de sous-échantillonnage - la simplification</br>adaptative - demeure un cas problématique pour les données non</br>triviales.</br></br>Dans ce contexte, nous proposons un nouvel algorithme de simplification</br>géométrique rapide basé sur un nouveau concept : les intégrales de</br>Morton. En sommant les quadriques d'erreurs associées aux échantillons</br>géométriques selon leur ordre de Morton, notre approche permet d'extraire de</br>manière concurrente les nœuds correspondants à une coupe adaptative dans la</br>hiérarchie implicite ainsi définie, et d'optimiser la position des sommets</br>du maillage simplifié en parallèle. Cette méthode est inspirée des images</br>intégrales et exploite les avancées récentes en construction et parcours</br>haute performance de hiérarchies spatiales.</br></br>L'implémentation GPU de notre approche peut simplifier des maillages</br>composés de plusieurs millions d'éléments à un taux de rafraîchissement</br>interactif, tout en fournissant une géométrie simplifiée de qualité</br>supérieure aux méthodes uniformes et en préservant notamment les structures</br>géométriques saillantes. Notre algorithme est compatible avec les maillages</br>indexés, les soupes polygonales et les nuages de points, et peut prendre en</br>compte des attributs de surfaces (normal ou couleur par exemple) et des</br>métriques d'erreurs alternatives.) et des métriques d'erreurs alternatives.)
- Seminar/2010-04-28 + (La plupart des frameworks de traitement d' … La plupart des frameworks de traitement d'images ne sont pas assez</br>génériques pour garantir une réutilisabilité effective des structures</br>de données et des algorithmes, tout en préservant performances et</br>facilité d'utilisation, et en restant proche de la théorie. Dans</br>cette présentation, nous proposons un cadre logiciel pour le</br>traitement d'images centré sur le paradigme de programmation</br>générique, cherchant à répondre tant aux besoins pratiques que</br>théoriques des scientifiques et des développeurs : la mise au point de</br>méthodes rapides et réutilisables, un niveau de généricité progressif,</br>la possibilité de traiter des ensembles de données volumineux, une</br>gestion de la mémoire automatique et efficace, la vérification</br>statique des types, l'orthogonalité des structures de données et des</br>algorithmes, etc. Cette approche permet aux utilisateurs de concevoir</br>et d'implémenter de nouvelles méthodes délivrées des contraintes</br>habituellement imposées pas les outils logiciels, de pratiquer des</br>expériences inter-domaines, de généraliser certains résultats et de</br>transformer facilement des prototypes en de vraies applications. des prototypes en de vraies applications.)
- Seminar/2017-03-08 + (Les algorithmes itératifs utilisés lors de … Les algorithmes itératifs utilisés lors de la résolution de problèmes inverses portant sur des gros volumes de données requièrent</br>une accélération significative pour être utilisés en pratique. Sur des exemples d'applications en tomographie X et</br>en déconvolution de signaux 1D (enregistrement sur plusieurs années de données spectrales de Mars) ou 2D (flux vidéo d'une webcam),</br>nous présenterons notre recherche de solutions permettant la parallélisation des calculs la plus efficace possible</br>sur les processeurs de type "many cores" que sont les GPUs. Nous exposerons ainsi la triple adéquation entre</br>l'architecture des processeurs GPUs (CUDA de Nvidia), la (re)formulation des algorithmes et la (re)structuration</br>des données que nous avons mises en oeuvre sur différents types d'opérateurs utilisés dans les algorithmes</br>itératifs (projecteur, rétroprojecteur, convolution nD). Par ailleurs, nous montrerons l'attention particulière</br>qui doit être apportée au goulot d'étranglement lié au temps de transfert entre le PC et les cartes GPUs.</br>Enfin, nous présenterons le découpage des données que nous avons effectué afin de bénéficier pleinement</br>d'un serveur multi-GPUs et apporterons quelques éléments de réponse sur l'utilisation des GPUs couplés à Matlab</br>et des bibliothèques déjà existantes (CUBLAS, NVPP...).thèques déjà existantes (CUBLAS, NVPP...).)
- Seminar/2014-02-12 + (Les automates acycliques sont utilisés dan … Les automates acycliques sont utilisés dans tous les logiciels de traitement</br>de la langue naturelle essentiellement pour la représentation des lexiques,</br>des dictionnaires et des interprétations morpho-syntaxiques des textes.</br></br>Nous présenterons des résultats sur les stratégies de construction, de</br>manipulation et de stockage de ces automates. En particulier un algorithme</br>de construction dynamique.r un algorithme de construction dynamique.)
- Seminar/2008-09-14 + (Les besoins croissants en puissance de cal … Les besoins croissants en puissance de calcul exprimés par de nombreux</br>domaines scientifiques exercent une pression très forte sur les</br>architectures émergentes, les rendant toujours plus performantes mais</br>toujours plus complexes à maîtriser. Dans ce cadre, le développement</br>d'outils tirant parti des spécificités de ces architectures (quadri-</br>et bientôt octo-coeurs, processeurs Cell ou GPU par exemple) devient</br>une gageure car allier expressivité et efficacité est une tâche</br>ardue. Les travaux exposés ici montrent comment l'utilisation de la</br>programmation générative, et en particulier de la méta-programmation</br>template, permet de répondre au problème de performances et</br>d'abstractions.</br></br>Nous montrerons comment ces techniques ont permis de développer Quaff,</br>un outil de placement automatique d'applications data-flow sur des</br>cibles variées comme les clusters, les multi-coeurs ou le processeur</br>Cell.s, les multi-coeurs ou le processeur Cell.)
- Seminar/2016-03-23 + (Les extensions multimédia (SSE, AVX, NEON) … Les extensions multimédia (SSE, AVX, NEON) sont une composante majeure des</br>processeurs d'aujourd'hui qui restent plus que sous-utilisées. Les</br>principales raisons de cette sous-utilisation sont la relative obscurité des</br>jeux d'instructions, leur variété entre et même au sein des différentes</br>familles de puces et surtout, une méconnaissance de la disponibilité des ces</br>unités de calculs.</br></br>Boost.SIMD est une bibliothèque permettant d'exploiter ces extensions de</br>manière efficace et expressive, facilitant l'utilisation, la diffusion et la</br>portabilité de tels codes, ouvrant la porte à des accélérations de l'ordre</br>de 4 à 10 sur un simple cœur.</br></br>Cet exposé présentera les fonctionnalités de Boost.SIMD, les challenges</br>posés par son implémentation, comment le C++ moderne répond à plusieurs de</br>ces problèmes et les éléments bloquants qu'il reste à résoudre.éléments bloquants qu'il reste à résoudre.)
- Seminar/2017-12-13 + (Les réseaux de neurones convolutifs connai … Les réseaux de neurones convolutifs connaissent depuis quelques années</br>un franc succès dans de nombreuses applications de reconnaissance</br>visuelle. Nous reviendrons sur les premiers travaux en la matière en</br>segmentation sémantique (étiquetage de chaque pixel des images par une</br>catégorie sémantique). Nous explorerons ensuite une piste</br>d'amélioration visant à réduire la quantité de données labelisées</br>utilisée, à base d'entraînement de réseaux adversaires.</br></br>Dans un second temps, nous nous intéresserons au problème de la</br>prédiction d'images suivantes dans les vidéos: s'il nous parait</br>simple d'anticiper ce qu'il va se passer dans un futur très proche,</br>c'est un problème difficile à modéliser mathématiquement étant données</br>les multiples sources d'incertitude. Nous présenterons nos travaux de</br>prédiction dans le domaine des images naturelles, puis dans l'espace</br>plus haut niveau des segmentations sémantiques, nous permettant de</br>prédire plus loin dans le futur.ettant de prédire plus loin dans le futur.)
- Seminar/2009-04-22 + (SmartEiffel, également connu sous le nom d … SmartEiffel, également connu sous le nom de GNU Eiffel, est à la fois</br>un langage et un ensemble d'outils de compilations, de documentation et</br>de validation.</br></br>Le langage SmartEiffel vise à favoriser la mise en pratique des</br>principales exigences liées au développement d'un gros logiciel par</br>une grande équipe. En plus d'exigences en terme de qualité, de</br>sécurité et de documentation, la définition de SmartEiffel est</br>également soucieuse de l'efficacité du programme à l'exécution. Ainsi,</br>le modèle des objets qui est à la base du langage intègre également</br>les types les plus élémentaires sans surcoût potentiel à l'exécution.</br>Pour sa part, le mécanisme de programmation par contrats qui est</br>essentiel en matière de documentation est également un bon moyen de</br>rechercher les meilleures performances à l'exécution.</br></br>Durant cet exposé, la visite guidée du langage présentera le modèle</br>d'objets, la programmation par contrats, la double forme d'héritage</br>multiple ainsi que le mécanisme des agents.ultiple ainsi que le mécanisme des agents.)
- Seminar/2015-02-18 + (L’accroissement exponentiel de la complexi … L’accroissement exponentiel de la complexité technique des logiciels métiers</br>a du mal à être compensée par les progrès du génie logiciel : les coûts et</br>les délais augmentent jusqu’à ce que l’intérêt de l’informatique soit</br>fondamentalement remis en cause dans certains cas, arguments rationnels et</br>légitimes à l’appui. Cette anomalie épistémologique s’explique pourtant par</br>des erreurs technologiques récurrentes dans l’histoire, des pièges et des</br>culs-de-sac ralentissant le progrès scientifique. Parmi ces freins : la</br>dette technique, l’utilisation de trop de technologies, trop élitistes pour</br>être correctement utilisées en général, et le niveau maximal de</br>compréhension et d’analyse de chaque humain, qui est fortement variable mais</br>toujours plafonné.</br></br>La technologie Faveod sert à éviter ces freins par la formalisation</br>structurée et factorisée des besoins métiers, applicatifs et techniques dans</br>un modèle générique et exhaustif. L’analyse continue des évolutions</br>collaboratives de ce modèle permet la production totalement automatisée et</br>instantanée de sa traduction technique : l’application cible en cohérence et</br>en qualité. La gestion de la complexité des facteurs influant sur la qualité</br>logicielle étant déléguée à la technologie, il devient possible d’augmenter</br>son niveau par accumulation linéaire sans dépendre des facteurs humains</br>limitants.s dépendre des facteurs humains limitants.)
- Seminar/2016-11-23 + (L’analyse du mouvement, ou l’analyse d’une … L’analyse du mouvement, ou l’analyse d’une séquence d’images, est</br>l’extension naturelle de l’analyse d’images à l’analyse de séries temporelles d’images.</br>De nombreuses méthodes d’analyse de mouvement ont été développées dans le</br>contexe de vision par ordinateur, comprenant le suivi de caractéristiques, le flot</br>optique, l’analyse de points-clefs, le recalage d’image, etc.</br></br>Dans cet exposé, nous présenterons les outils que nous avons</br>développés pour l'analyse de mouvement adaptés à l’analyse de séquences</br>biomédicales, et en particulier pour les cellules ciliées. Ces cellules,</br>couvertes de cils qui battent, sont présentes chez l’homme dans les zones</br>nécessitant des mouvements de fluide. Dans les poumons et les voies</br>respiratoires supérieures par exemple, les cils sont responsables de l’épuration</br>muco-ciliaire, qui permet d’évacuer des poumons la poussière et autres</br>impuretés inhalées. Les altérations de l’épuration muco-ciliaire peuvent</br>être liées à des maladies génétiques ou acquises. Ces maladies, touchant les cils,</br>sont potentiellement handicapantes. Elles peuvent cependant être</br>caractérisées par l’analyse du mouvement des cils sous un microscope, avec</br>une résolution temporelle importante. Nous avons développé plusieurs outils</br>et techniques pour réaliser ces analyses de manière automatique et avec</br>une haute précision.e automatique et avec une haute précision.)
- Seminar/2017-06-14 + (MAQAO (Modular Assembly Quality Analyzer a … MAQAO (Modular Assembly Quality Analyzer and Optimizer) est une suite d'outils d'analyse et d'optimisation des performances</br>à destination d'applications binaires. Le but principal de MAQAO est d'analyser des codes binaires puis de proposer aux</br>développeurs d'applications des rapports synthétiques les aidant à comprendre et optimiser les performances de leur application.</br>MAQAO combine des analyses statiques (évaluation de la qualité du code) et dynamiques (profiling) basées sur la capacité</br>à reconstruire des structures aussi bien bas niveau (basic blocks, instructions, etc.) que haut niveau (fonctions et boucles). </br>Un autre aspect important de MAQAO est son extensibilité. En effet les utilisateurs peuvent écrire leur propre plugin</br>grâce à un langage de script simple intégré (Lua).un langage de script simple intégré (Lua).)
- Seminar/2009-10-21 + (Malgré la grande variété des types de donn … Malgré la grande variété des types de données que l'on rencontre dans</br>le domaine du traitement d'images (1D,2D,3D, scalaires, couleurs,</br>multi-spectrales, séquences, etc...), nous sommes souvent amenés à</br>appliquer des algorithmes très classiques, ou des variations de ces</br>algorithmes, pour le pré-traitement, l'analyse ou la visualisation de</br>ces données images. Par conséquent, les logiciels et les bibliothèques</br>que nous utilisons dans notre recherche quotidienne, devraient</br>également être génériques, afin de s'adapter le mieux possible aux</br>données à traiter. Dans ce séminaire, je présenterai quelques outils</br>développés dans cette optique (au laboratoire GREYC, équipe IMAGE),</br>qui possèdent différents niveaux d'utilisations. Je commencerai tout</br>d'abord par présenter CImg, une bibliothèque C++ "template" (donc</br>générique par nature), qui a pour but de faciliter l'implémentation</br>d'algorithmes de traitements d'images personnalisés. Puis,</br>j'introduirais G'MIC, un langage de script reprenant la plupart des</br>éléments de CImg, qui est dédié au traitement et à l'analyse d'images</br>"de tous les jours". J'essaierai de montrer comment ces différents</br>outils indépendants sont organisés et comment ils cherchent à aider le</br>chercheur ou le programmeur en traitement d'images, autant d'un point</br>de vue programmation pure que d'un point de vue plus haut niveau.re que d'un point de vue plus haut niveau.)
- Seminar/2015-03-11 + (Motivé par de nombreuses applications, all … Motivé par de nombreuses applications, allant de la cryptographie au</br>calcul mathématique, le calcul formel s'est fortement développé ces</br>dernières années tant au niveau des algorithmes que des implantations</br>efficaces. L'efficacité des calculs repose sur celle de bibliothèques</br>dédiées, pour certaines opérations de base, comme l'algèbre linéaire</br>dans un corps fini ou avec des entiers multi-précision. Devant la</br>multiplicité des domaines de calcul et des variantes algorithmiques</br>disponibles, la conception de ces bibliothèques doit concilier une</br>forte généricité avec l'efficacité.</br></br>Nous allons présenter comment cette problématique est abordée dans les</br>bibliothèques d'algèbre linéaire exacte FFLAS-FFPACK (2) et LinBox</br>(3). Après une présentation générale de ces projets, nous focaliserons</br>la présentation sur trois aspects représentatifs:</br></br>- l'exploitation des diverses arithmétiques de base (entière,</br>flottante, booléenne), de routines numériques optimisées et leur</br>intégration au sein d'algorithmes génériques haut niveau ;</br></br>- l'approche boîte-noire de la bibliothèque LinBox, proposant un</br>modèle algorithmique spécifique, particulièrement performant pour les</br>matrices creuses ou structurées ;</br></br>- La parallélisation de code dans FFLAS-FFPACK, basée sur un langage</br>spécifique (DSL) permettant d'utiliser de façon interchangeable</br>différents langages et moteurs exécutifs, et de tirer parti du</br>parallélisme de tâche avec dépendance par flot de données.tâche avec dépendance par flot de données.)
- Seminar/2008-04-30 + (Mouldable programming is about looking at … Mouldable programming is about looking at programs as mouldable</br>fragments of code, not as the static, brittle syntax software often</br>turns out to be. Some simple examples follow. The notation for calling</br>a method "push" which adds an element "E" to a stack "S" can be OO or</br>static method style, it can modify "S" or return the new stack</br>etc. Can we simplify usage to just one form, and mould it to the</br>actual call? A function which breaks down for some input can signal</br>this using return flags, special return values, or exceptions, to name</br>some common ways. Can we abstract over this, and mould to the relevant</br>error handling technique? Often we need to do run-time checking of</br>arguments, e.g., array indexing bounds, forcing us to introduce lots</br>of code to deal with the unwanted cases. Can we use mouldable ideas to</br>simplify the code? In the presentation, we will elaborate on such</br>examples, discussing how we can free us from awkward syntactic</br>constraints.ree us from awkward syntactic constraints.)
- Seminar/2019-04-10 + (Neural networks have been producing impres … Neural networks have been producing impressive results in computer vision these last years, in image classification or</br>segmentation in particular. To be transferred to remote sensing, this tool needs adaptation to its specifics: large</br>images, many small objects per image, keeping high-resolution output, unreliable ground truth (usually</br>mis-registered). We will review the work done in our group for remote sensing semantic segmentation, explaining the</br>evolution of our neural net architecture design to face these challenges, and finally training a network to register</br>binary cadaster maps to RGB images while detecting new buildings if any, in a multi-scale approach. We will show in</br>particular that it is possible to train on noisy datasets, and to make predictions at an accuracy much better than the</br>variance of the original noise. To explain this phenomenon, we build theoretical tools to express input similarity from</br>the neural network point of view, and use them to quantify data redundancy and associated expected denoising effects.</br>If time permits, we might also present work on hurricane track forecast from reanalysis data (2-3D coverage of the</br>Earth's surface with temperature/pressure/etc. fields) using deep learning.pressure/etc. fields) using deep learning.)
- Seminar/2014-05-14 + (Nife est un langage de programmation ``For … Nife est un langage de programmation ``Forth-like'': basé sur les principes du</br>langage Forth, défini par Charles H. Moore dans les années 1960, il n'en</br>reprend pas la totalité des fonctionnalités. Son ambition est d'offrir</br>aux non-informaticiens qui ont besoin de faire des mesures, de contrôler des</br>appareils distants, de surveiller des processus industriels, de manipuler</br>des grandes collections de données, de faire des calculs, des filtrages, des</br>statistiques, de pouvoir le réaliser facilement, dans un environnement Linux</br>à faible coût.</br></br>Simple, n'importe qui peut comprendre le fonctionnement de ce langage en</br>quelques minutes, et le maîtriser totalement en quelques heures - une</br>semaine tout au plus. Il peut aussi être utilisé plus modestement comme une</br>super calculatrice, pour faire ses comptes ou des calculs d'inversion de</br>matrice. Le public concerné est donc très large.</br></br>Une extension de Nife pour les systèmes embarqués lui permet de pouvoir être</br>directement chargé sur de petites ou moyennes unités de calcul. Pour cela,</br>on lui associe un noyau ``bootable'' et il devient Knife : Kernelable Nife.</br>Dans ce cas, il devient un outil puissant pour coder dans des environnements</br>où la mémoire est denrée rare, et où le côté ``langage dynamique'' va</br>permettre de résoudre des problèmes là où d'autres langages vont échouer.èmes là où d'autres langages vont échouer.)
- Seminar/2009-09-30 + (Nous décrirons brièvement l'état de l'art … Nous décrirons brièvement l'état de l'art de l'utilisation des processeurs graphiques grand public (GPU) pour accélérer le traitement d'image, et nous en discuterons les limites. Puis, nous décrirons GpuCV, une bibliothèque logicielle libre et multi-plateforme pour accélérer par GPU les opérateurs de traitement d'image et de vision artificielle. GpuCV a été conçue pour être compatible avec la bibliothèque OpenCV et permettre d'intégrer facilement des opérateurs accélérés sur GPU dans des applications développées sur CPU. L'environnement GpuCV gère de façon transparente les caractéristiques du matériel, la synchronisation des données, l'activation à bas niveau des procédures GLSL ou CUDA, l'étalonnage et l'aiguillage vers la mise en oeuvre la plus performante et finalement offre un ensemble d'opérateurs de traiement accélérés par GPU.opérateurs de traiement accélérés par GPU.)
- Seminar/2017-05-03 + (Nous proposons une approche auto-supervisé … Nous proposons une approche auto-supervisée pour l’apprentissage de</br>représentations à partir de vidéos non supervisées, enregistrées à de</br>multiples points de vue. Cette approche est particulièrement pertinente en</br>robotique pour l’apprentissage par l’imitation, qui nécessite une</br>compréhension invariante par rapport au point de vue des relations</br>entre les humains et leur environnement (telles que les interactions</br>entre objets, les attributs et les poses corporelles). Nous entraînons</br>nos représentations à l’aide d’une stratégie de type triplet loss,</br>où les multiples points de vue simultanés de la même observation</br>sont attirés dans l’espace d’intégration, tout en étant repoussés</br>des voisins temporels qui sont souvent visuellement similaires mais</br>fonctionnellement différents. Ce signal encourage notre modèle à</br>découvrir des attributs invariants vis-à-vis du point de vue, mais</br>qui varient dans le temps, tout en ignorant les potentielles nuisances</br>telles que les occlusions, le flou de mouvement, l’éclairage et</br>l’arrière-plan. Nos expériences démontrent qu’une telle représentation</br>acquiert même un certain degré d’invariance vis-à-vis de l’instance</br>d’objet. Nous montrons que notre modèle peut correctement identifier</br>les étapes correspondantes dans les interactions complexes d’objets,</br>à travers différentes vidéos avec différentes instances. Nous montrons</br>également les premiers résultats, à notre connaissance, d’apprentissage</br>intégralement auto-supervisé pour l’imitation de mouvements humains</br>par un robot réel.n de mouvements humains par un robot réel.)
- Seminar/2008-05-28 + (L'algorithmique constructive permet, parta … L'algorithmique constructive permet, partant d'une spécification écrite</br>sous forme d'une combinaison non-efficace de fonctions, de dériver, sous</br>certaines conditions, des algorithmes parallèles efficaces. Cette dérivation</br>s'appuie sur des théorèmes d'équivalence de programmes et est formellement</br>correcte. Elle aide le programmeur à concevoir des programmes parallèles.</br>Toutefois les bibliothèques de squelettes proposées ne sont pas certifiées.</br>Dans le cadre d'une collaboration avec l'université de Tokyo, nous proposons</br>de cibler des squelettes algorithmiques développés en BSML et certifiés à</br>l'aide de l'assistant de preuve Coq.iés à l'aide de l'assistant de preuve Coq.)
- Seminar/2012-02-15 + («The effective exploitation of his powers … «The effective exploitation of his powers of abstraction must be</br>regarded as one of the most vital activities of a competent</br>programmer.» disait Dijsktra.</br></br>En effet, pour aborder la complexité d'un problème, l'explicitation</br>des concepts utiles à sa formalisation et à sa résolution est bien</br>souvent une étape clé. Lorsque que l'on étend ce processus à une</br>classe de problèmes qui partagent les mêmes concepts, il est naturel</br>de se doter d'un langage le plus approprié possible pour manipuler ces</br>abstractions spécifiques à un domaine (en anglais, «Domain Specific</br>Language»).</br></br>Comment implémenter ces DSLs? Une première approche classique reflète</br>les constructions du DSL sous la forme d'un jeu de fonctions de</br>bibliothèque. L'avantage de cette approche est d'utiliser directement</br>son langage généraliste préféré, et sa chaîne de compilation</br>optimisée, de façon à générer du code machine à moindre frais. Par</br>contre, dans ce cadre, l'écriture de passe d'optimisations spécifiques</br>au DSL - à moins d'utiliser des techniques pointues de</br>méta-programmation - est a priori impossible.</br></br>Une seconde approche, opposée, consiste à écrire un compilateur pour</br>le DSL à partir de zéro. Toute liberté est alors donnée à</br>l'implémenteur d'intégrer à son compilateur des passes d'optimisation</br>spécifiques… mais au prix d'une réimplémentation de passes de</br>compilation déjà présentes, et certainement plus abouties, dans le</br>compilateur de son langage généraliste favori.</br></br>Dans cet exposé, je présenterai les travaux de Martin Odersky et</br>son équipe sur la virtualisation de DSLs à l'intérieur du langage de</br>programmation Scala. La virtualisation de langage utilise</br>intensivement le polymorphisme et la composition mixin de Scala ainsi</br>que des techniques de génération de code à l'exécution pour embarquer</br>des langages spécifiques dans Scala dont la compilation peut</br>réutiliser des modules du compilateur mais aussi étendre ces derniers</br>par des optimisations spécifiques au domaine. des optimisations spécifiques au domaine.)
- Seminar/2011-02-09 + (Nous étudions la problématique du mélange … Nous étudions la problématique du mélange de paradigmes de programmation</br>variés plongés dans un environnement concurrent. Dans cette</br>perspective, nous poursuivons</br>un cheminement similaire à celui qui conduit du lambda-calcul aux</br>langages fonctionnels, mais</br>en prenant comme point de départ le π-calcul. Nous proposons la</br>machine abstraite des π-threads</br>dont la principale originalité est l’absence de pile d’exécution.</br>Cette caractéristique</br>permet de nous reposer dans nos implémentations sur des algorithmes</br>simples et naturellement</br>concurrents, notamment pour ce qui concerne l’ordonnancement et le</br>ramasse-miettes. Pour ce</br>dernier, nous proposons un algorithme permettant de récupérer très</br>simplement les cycles de</br>processus en interblocage et autres structures bloquantes.erblocage et autres structures bloquantes.)
- Seminar/2021-10-06 + (Optimal transport (OT) has recently gained … Optimal transport (OT) has recently gained a lot of interest in machine learning. It is a natural tool to compare in a geometrically faithful way probability distributions. It finds applications in both supervised learning (using geometric loss functions) and unsupervised learning (to perform generative model fitting). OT is however plagued by the curse of dimensionality, since it might require a number of samples which grows exponentially with the dimension. In this talk, I will review entropic regularization methods which define geometric loss functions approximating OT with a better sample complexity.mating OT with a better sample complexity.)
- Seminar/2011-05-18 + (Pour encoder de manière efficace une séque … Pour encoder de manière efficace une séquence vidéo, la redondance</br>temporelle est souvent utilisée. Pour cela, le mouvement entre l'image</br>considérée et une image de référence est estimé. Cela permet de</br>générer une prédiction à partir de l'image de référence et seule la</br>différence entre la prédiction et l'image réelle est enregistrée. Pour</br>estimer ce mouvement, les codecs se contentent souvent de suivre</br>l'évolution spatiale de blocs dans l'image. Ils associent, pour chaque</br>bloc de l'image considérée, un bloc similaire dans un voisinage proche</br>dans l'image de référence. Nous présentons ici une méthode originale</br>pour réaliser cette prédiction par compensation de mouvement. Notre</br>méthode utilise les distances tangentes. Cela permet non seulement</br>d'estimer l'évolution de la position des blocs de l'image mais en</br>partie aussi l'évolution du bloc lui-même. Nos prédictions sont donc</br>de meilleure qualité. Utilisée dans l'encodage de séquences, on peut</br>espérer un gain de compression non négligeable. Pour valider</br>l'efficacité de la méthode, nous intégrons cette méthode dans le codec</br>Theora et mesurons son efficacité en comparant les résultats obtenus</br>avec notre méthode et ceux obtenus par une stratégie classique (le</br>block-matching).e stratégie classique (le block-matching).)