Special

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.

Search by property

A list of values that have the property "Talk abstract" assigned.

Showing below up to 50 results starting with #1.

View (previous 50 | next 50) (20 | 50 | 100 | 250 | 500)


    

List of results

  • (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.  +
  • Address & Thread sanitizer sont des ouAddress & Thread sanitizer sont des outils destinés à détecter les</br>erreurs d'accès à la mémoire ainsi que les erreurs d'accès concurrents</br>en environnement multi-threads.</br></br>Ces outils sont constitués de deux parties logiques distinctes: une</br>partie instrumentant le code généré de manière statique, et un</br>environnement d'exécution.</br></br>Cet exposé présente l'implémentation de Address & Thread Sanitizer dans</br>GCC, les principes de fonctionnement de l'environnement d'exécution de</br>ces deux outils ainsi que les futures directions du projet.outils ainsi que les futures directions du projet.  +
  • Afin d'exploiter le potentiel des puces muAfin d'exploiter le potentiel des puces multi-cœurs pour une performance</br>évolutive et à haut rendement énergétique, le projet Apple-CORE a</br>co-conçu un modèle général d'architecture matérielle et une interface de</br>contrôle de parallélisme. Cette interface, appelée SVP, est réalisée par</br>du matériel sur puce dédié à la gestion de la concurrence de programmes</br>parallèles exécutés sur plusieurs cœurs. SVP se base sur les principes</br>de synchronisation de flux de données («data flow»), de programmation</br>impérative et d'exécution efficace du parallélisme en termes de budget</br>temps et énergie. Les composants matériels correspondants peuvent</br>coordonner plusieurs cœurs RISC équipés de multi-threading matériel,</br>organisés en clusters de calcul sur puce, dits «Microgrids».</br></br>Comparés à l'approche traditionnelle «accélérateurs», les Microgrids sont</br>destinés à être utilisés comme composants dans les systèmes distribués sur</br>puce contenant à la fois des grappes de petits cœurs et optionnellement de</br>gros cœurs –optimisés pour l'exécution séquentielle– disponibles en tant que</br>«services» pour les applications. Les principaux aspects de cette</br>architecture sont l'asynchronisme, c'est-à-dire la capacité à tolérer les</br>opérations irrégulières avec des temps de latence longs, un modèle de</br>programmation à échelle invariante, une vision distribuée de la puce, et une</br>mise à l'échelle transparente de la performance d'un seul code binaire à</br>plusieurs tailles de grappes de cœurs.</br></br>Cette présentation décrit le modèle d'exécution, la micro-architecture des</br>cœurs, sa réalisation au sein d'une plateforme et son environnement</br>logiciel. plateforme et son environnement logiciel.  +
  • Au printemps 2014, j'ai animé un MOOC d'inAu printemps 2014, j'ai animé un MOOC d'initiation à l'informatique, centré</br>sur la programmation récursive. Bien que loin d'être massif, ce MOOC a</br>permis d'expérimenter ce nouveau medium ainsi que de mettre à l'épreuve une</br>infrastructure de correction automatisée. L'exposé portera sur ces deux</br>aspects et présentera également les nouveautés prévues pour la prochaine</br>édition de ce MOOC.vues pour la prochaine édition de ce MOOC.  +
  • Avec l'avènement du Web et des applicationAvec l'avènement du Web et des applications réparties, les machines</br>virtuelles applicatives sont devenues le support d'exécution de choix</br>pour la plupart des applications. Développer et optimiser une machine</br>virtuelle est un travail long et difficile qui requiert plusieurs</br>années. Il s'avère que la plupart des machines virtuelles possèdent</br>des composants communs: compilateur à la volée, ramasse-miettes,</br>vérifieur de type, gestionnaire de threads, gestionnaire</br>d'entrées/sorties, éditeur de liens paresseux, chargeur dynamique de</br>code.</br></br>AutoVM est une machine virtuelle générique qui factorise ces</br>composants communs et facilite le développement de nouvelles machines</br>virtuelles, ou l'amélioration de machines virtuelles existantes.</br></br>Dans cet exposé, je présenterai l'architecture logicielle de notre</br>prototype AutoVM et montrerai sa généricité et son extensibilité.trerai sa généricité et son extensibilité.  +
  • Avec l'avènement du Web et du besoin de prAvec l'avènement du Web et du besoin de protéger les utilisateurs contre des</br>logiciels malicieux, les machines virtuelles langages, comme les machines</br>virtuelles Java et .Net, sont devenues la norme pour exécuter des</br>programmes. Dans cet exposé, je vais présenter les travaux que j'ai menés</br>ces dernières années et qui se sont concentrés sur trois aspects des</br>machines virtuelles: leur design, leur sûreté de fonctionnement, et leur</br>performance sur les architectures multi-cœurs.</br></br>Ma première contribution est VMKit, une bibliothèque qui facilite le</br>développement de nouvelles machines virtuelles performantes en cachant leur</br>complexité dans un ensemble de composants réutilisables. Ma seconde</br>contribution est I-JVM, une machine virtuelle Java qui élimine les huit</br>vulnérabilités connues qu'un composant de la plateforme OSGi pouvait</br>exploiter. Ma troisième contribution vise à améliorer les performances des</br>machines virtuelles sur les architectures multi-cœurs en se focalisant sur</br>les verrous et les ramasse-miettes: avec un mécanisme de verrouillage qui</br>surpasse tous les autres mécanismes connus lorsque le nombre de cœurs</br>augmente, et avec avec une étude des goulets d'étranglement des</br>ramasse-miettes sur les architectures multi-cœurs.miettes sur les architectures multi-cœurs.  +
  • CLAIRE est un langage créé il y a une vingCLAIRE est un langage créé il y a une vingtaine d'années pour développer,</br>partager et enseigner des algorithmes pour la recherche</br>opérationnelle. Notre ambition première était de créer un pseudo-code</br>exécutable, qui permette à la fois de décrire simplement des algorithmes</br>complexes et de les exécuter facilement, grâce à un interprète, et</br>rapidement, grâce à un compilateur.</br></br>Après avoir brièvement rappelé l'histoire et les motivations de ce projet,</br>la deuxième partie de l'exposé donnera des exemples de fragments de code,</br>ainsi que quelques exemples d'applications réussies qui donnent un peu de</br>crédit à cette ambition.</br></br>La troisième partie fera un zoom sur certaines propriétés originales de</br>CLAIRE, qui font que ce langage de programmation conserve un certain intérêt</br>dans le paysage de 2014. En particulier, CLAIRE permet de décrire des</br>algorithmes d'exploration arborescents avec des mécanismes natifs de</br>raisonnement hypothétique. Un autre intérêt de ce langage est le haut niveau</br>de polymorphisme paramétrique, qui permet de traiter des fragments de code</br>comme des structures de données. CLAIRE a été utilisé pour développer</br>différents outils d'aide à la décision, de la résolution de problèmes</br>d'optimisation combinatoire à la simulation, en particulier dans le cadre de</br>GTES (simulation par jeux et apprentissage).</br></br>La dernière partie de cet exposé fera la liste des ressources disponibles</br>pour répondre à la question: pourquoi s'intéresser à un langage désuet ``20</br>ans après'' ? Le code de CLAIRE - méta-description, interprète et</br>plate-forme de compilation - est disponible. Une partie des fragments de</br>code disponibles peuvent soit servir de source d'inspiration (lorsqu'il</br>s'agit de fonctionnalités qui restent originales) soit de code réutilisable.ent originales) soit de code réutilisable.  +
  • CPC est une extension concurrente du langaCPC est une extension concurrente du langage C. Le code CPC, en style à</br>threads, est traduit par le compilateur CPC en un code à style à événements;</br>ce code peut ensuite être exécuté, au choix du programmeur, par des threads</br>natifs « lourds » ou par un ordonnanceur à événements manipulant des</br>structures de données extrêmement légères. Cette technique d'implémentation</br>induit un style de programmation original, où les threads sont « gratuits ».</br>Cependant, le programmeur peut choisir d'utiliser des threads natifs</br>« lourds » lorsque c'est nécessaire, par exemple pour exploiter le</br>parallélisme du matériel ou utiliser des bibliothèques bloquantes.</br></br>La technique de compilation de CPC est basée sur des techniques formalisées</br>et bien connues de la communauté de la programmation fonctionnelle, telles</br>que la conversion en style à passage de continuations (CPS), le</br>lambda-lifting, ou l'introduction de fonctions terminales. La correction de</br>ces techniques a été prouvée formellement.</br></br>Dans cet exposé, je donnerai quelques exemples du style typique de</br>programmation en CPC tirées de Hekate, un seeder BitTorrent écrit en CPC.</br>Je décrirai ensuite la transformation en style à passage de continuations et</br>je décrirai la technique de traduction utilisée par le compilateur CPC.raduction utilisée par le compilateur CPC.  +
  • Ce séminaire porte sur certains de mes traCe 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.  +
  • Ces dernières années ont vu exploser le noCes dernières années ont vu exploser le nombre de vidéos disponibles</br>sur internet. Pour permettre leur exploitation, il est nécessaire de</br>mettre en place des systèmes analysant automatiquement ces données</br>multimédia. De tels systèmes permettent notamment d'indexer</br>automatiquement des vidéos en fonction de leurs contenus. Durant</br>cette présentation, je m'intéresserai aux récentes avancées effectuées</br>dans ce domaine. Je présenterai des descripteurs vidéos, développés</br>dans le cadre de ma thèse, qui capturent le mouvement et l'apparence</br>d'une vidéo pour les résumer dans une courte signature. Ces</br>signatures peuvent être utilisées a posteriori pour détecter</br>différents évènements ou concepts dans les vidéos.ts évènements ou concepts dans les vidéos.  +
  • Comment Javascript, un langage dynamique, Comment Javascript, un langage dynamique, interprété et non typé,</br>parvient à être aussi rapide ? Quelles sont les avancées qu'il reste</br>à faire pour obtenir des performances identiques au langage C ?</br></br>Pour illustrer cette présentation, on s’intéressera à l’évolution du</br>navigateur Mozilla Firefox et aux différentes approches pour résoudre</br>ce problème.entes approches pour résoudre ce problème.  +
  • Component trees are essential tools in sevComponent trees are essential tools in several morphological processing</br>methods, such as attribute filtering, or visualization, or the computation</br>of topological watersheds. Algorithms for computation of these trees fall</br>into two main categories: (i) Flood-filling algorithms, exemplified by the</br>algorithms of Salembier et al (1998), Hesselink (2003), and Wilkinson</br>(2011), and (ii) Union-find methods, such as Najman and Couprie (2006),</br>and Berger et al (2007). As images become larger, and parallel computers</br>become commonplace, there is an increased need for concurrent algorithms to</br>compute these trees. The first such algorithm was published by Wilkinson et</br>al in 2008, and was based on the divide-and-conquer principle. It splits up</br>the data spatially, computes local component trees using any arbitrary</br>algorithm which yields a union-find type representation of each node, and</br>glues these together hierarchically. The main drawback of this method is</br>that it does not work well on high-dynamic-range images, because the</br>complexity of the glueing phase scales linearly with the number of grey</br>levels.</br></br>In the current work, carried out by Moschini, Meijster, and Wilkinson within</br>the HyperGAMMA project, we develop a new algorithm for floating point or</br>high-dynamic-range integer images. It works in a two-tier process, in which</br>we first compute a pilot component tree at low dynamic range in parallel,</br>with one grey level per processor using dynamic quantization, and</br>Salembier's flood-filling method to build the local trees, and the previous</br>parallellization scheme. After this, a refinement stage is performed. This</br>refinement stage is based on the algorithm of Berger et al. As such, the new</br>algorithm combines the two main types of algorithm in a single framework.</br></br>Timings on images of up to 3.9 GPixel indicate a speed-up of up to 22 on 64</br>cores. The algorithm is more than 14x faster than the fastest sequential</br>algorithm on the same machine. We will apply the new algorithm to</br>astronomical data sets, including improvements to the SExtractor tool for</br>object detection. The importance of the new algorithm extends beyond</br>computation of component trees because it allows development of a fast</br>alpha-tree algorithm suitable for any pixel-difference metric in case of</br>vector images (i.e. not just $L_\infty$-based metrics on low dynamic range</br>colour images).trics on low dynamic range colour images).  +
  • Concilier généricité et performance des syConcilier généricité et performance des systèmes de vision a toujours</br>été au cœur des préoccupations scientifiques du laboratoire</br>d'Électronique et Informatique d'ENSTA-ParisTech. Nous y avons abordé</br>ce problème sous différents points de vue: électronique,</br>algorithmique, et logiciel. Depuis nos travaux sur les rétines</br>programmables et leur algorithmique exotique, nous avons</br>progressivement intégré la multiplicité des modèles et structures de</br>données, ainsi que l'emprise des architectures sur étagères, pour</br>appréhender l'hétérogénéité des systèmes multi-plateformes.</br></br>Dans cette présentation à deux voix, on abordera le problème sous deux</br>angles complémentaires, l'un touchant au modèle et aux algorithmes,</br>l'autre au logiciel et aux plateformes de calcul.</br></br>Ce premier exposé présente un modèle générique de traitement et de</br>représentation des images fondé sur les espaces de caractéristiques</br>"local jets" (LJ, ou dérivées partielles multi-échelles), comme</br>exemple de cadre algorithmique unifié. Grâce à un espace où la</br>métrique naturelle est directement liée à la similarité visuelle, ce</br>cadre permet d'aborder un grand nombre d'opérateurs de traitement</br>d'images de bas niveau, qui correspondent généralement à la</br>rétro-projection dans l'espace image de points de l'espace des</br>caractéristiques transformé. Il permet aussi d'aborder des</br>représentations visuelles de plus haut niveau (modèles d'objet par</br>exemple) à partir de statistiques globales extraites de l'espace des</br>caractéristiques. On justifiera cette représentation et on</br>l'illustrera par diverses applications : Moyennes non locales</br>(NL-Means) par Convolution dans l'espace LJ pour le débruitage de</br>vidéos, Calcul du flux optique par recherche du plus proche voisin</br>dans l'espace LJ, Modélisation de fond statique par échantillonnage de</br>l'espace LJ, Détection d'objets par transformée de Hough dense...d'objets par transformée de Hough dense...  +
  • Context-oriented Programming allows one toContext-oriented Programming allows one to modularize a software</br>system using partial class and method definitions organized into</br>layers. Layers are composed into or out of the system depending on the</br>context apparent during program execution. The basic concept of layers</br>as partial program definitions has been suggested before, but with our</br>approach we extend this idea by the notion of dynamically scoped layer</br>activation, resulting in a viable approach for expressing</br>context-dependent behavior. We will discuss the basic language</br>constructs for Context-oriented Programming, the development of</br>non-trivial examples, implementation issues, especially with regard to</br>retaining efficient method dispatch, integration with the CLOS</br>Metaobject Protocol, and if time permits, advanced topics like</br>ContextL's reflective facilities for controlling layer activation and</br>deactivation.rolling layer activation and deactivation.  +
  • Conçus à l'origine pour le rendu 2D et 3D,Conçus à l'origine pour le rendu 2D et 3D, les processeurs graphiques</br>(GPU) peuvent aujourd'hui être considérés comme des processeurs</br>génériques massivement parallèles. Mais ce parallélisme impose des</br>contraintes sur les algorithmes implantés et les types de données</br>utilisés. D'autre part, le bus de communication entre le processeur</br>central (CPU) et le GPU peut être un goulot d'étranglement.</br></br>Ce séminaire débutera par un aperçu des avantages et inconvénients de</br>la programmation GPU, puis je présenterai l'implantation d'un</br>algorithme temps réel de suivi de points dans une vidéo. Je terminerai</br>par l’introduction de deux petites boîtes à outils : Cuimg et Dige.</br>Cuimg utilise C++ pour simplifier l'écriture d'algorithmes de</br>traitement d'images avec CUDA, tandis que Dige, basée sur le framework</br>Qt, permet le prototypage rapide d'interfaces graphiques.rototypage rapide d'interfaces graphiques.  +
  • Dans ce second exposé, Matthieu Garrigues Dans ce second exposé, Matthieu Garrigues parlera de ses travaux sur</br>l'analyse des mouvements apparents dans un flux vidéo. La primitive de</br>base, présentée dans un séminaire précédent, permet le suivi temps</br>réel (supérieur à 30 images par seconde) de plusieurs milliers de</br>particules. Ces travaux nous ont permis de développer un cadre</br>générique facilitant l'analyse de scènes dynamiques prises de caméras</br>fixes ou mobiles. Nous montrerons comment cette brique logicielle a</br>été utilisée dans deux exemples d'applications : l'extraction des</br>plans principaux et l'estimation de la profondeur dans un système</br>mono-caméra. Le suivi de particules a été implémenté sur processeurs</br>graphiques avec le framework CUDA, et sur CPU-multicœurs avec</br>OpenMP. Nous expliquerons comment C++ a été utilisé pour factoriser un</br>maximum de code entre ces deux implémentations.um de code entre ces deux implémentations.  +
  • Dans ce séminaire je présenterai un algoriDans ce séminaire je présenterai un algorithme de résolution approchée</br>pour le problème du Compressive Sensing basé sur la programmation convexe.</br>Cet algorithme a la particularité d'avoir été pensé dès sa conception pour</br>tirer partie des architectures matérielles modernes, ce qui permet une</br>implémentation efficace et rapide sur celles-ci. Bien qu'une résolution</br>approchée soit en pratique suffisante pour obtenir rapidement une solution</br>de très bonne qualité, une variante exacte très rapide sera aussi</br>présentée. Cette dernière n'est toutefois utilisable que sous certaines</br>conditions. Trois types d'architectures parallèles sont ici envisagées :</br>des processeurs multi-cœurs avec unités de calcul vectoriel, des</br>processeurs graphiques (GPU) et le processeur Cell.rs graphiques (GPU) et le processeur Cell.  +
  • Dans ce séminaire, nous parlerons d'une teDans ce séminaire, nous parlerons d'une technologie émergente qu'est l'informatique quantique, exploitant les phénomènes quantiques de l'infiniment petit. Nous verrons que, quand dans le monde de l'informatique classique, les données sont représentées par des bits valant chacun 0 ou 1 exclusivement, alors que l'informatique quantique est déroutante dans le sens où les qubits (bits quantiques) peuvent valoir simultanément 0 et 1. Afin de pouvoir appréhender cette technologie, nous rappellerons ce que sont la dualité onde/corpuscule, la superposition d'états, ainsi que intrication quantique. Nous verrons aussi comment IBM a créé le premier processeur quantique (ou QPU) quelques dizaines d'années après l'idée révolutionnaire du père de l'informatique quantique, Richard Feynman, et quels sont les défis technologiques qui en découlent. Nous verrons que l’informatique quantique offre de nouvelles perspectives dans les domaines comme la cryptographie et l'intelligence artificielle pour ne citer qu'eux. Une étude des complexités des différents algorithmes vus durant le séminaire sera évoqué. Durant cette plénière interactive, une démonstration sera réalisée via l’environnement de développement Qiskit avec accès à distance à une machine quantique IBM. Merci donc d'apporter votre ordinateur portable !onc d'apporter votre ordinateur portable !  +
  • Dans ce travail en collaboration avec AxelDans ce travail en collaboration avec Axel Davy, Mauricio Delbracio et</br>Thibaud Ehret, je passerai en revue les classes d'algorithmes dont le</br>but est de détecter des anomalies dans les images digitales. Ces</br>détecteurs répondent au difficile problème de trouver automatiquement</br>des exceptions dans des images de fond, qui peuvent être aussi</br>diverses qu'un tissu ou une mammographie. Des méthodes de détection</br>ont été proposées par milliers car chaque problème nécessite un modèle</br>de fond différent. En analysant les approches existantes, nous</br>montrerons que le problème peut être réduit à la détection d'anomalies</br>dans les images résiduelles (extraites de l'image cible) dans</br>lesquelles prédominent le bruit et les anomalies. Ainsi, le problème</br>général et impossible de la modélisation d'un fond arbitraire est</br>remplacé par celui de modèliser un bruit. Or un modèle de bruit permet</br>le calcul de seuils de détection rigoureux. L'approche au problème</br>peut donc être non supervisée et fonctionner sur des images</br>arbitraires. Nous illustrerons l'usage de la théorie de détection dite</br>a contrario, qui évite la sur-détection en fixant des seuils de</br>détection prenant en compte la multiplicité des tests.enant en compte la multiplicité des tests.  +
  • Dans cet exposé je présenterai la bibliothDans cet exposé je présenterai la bibliothèque d'algorithmes</br>géometriques CGAL. Cette bibliothèque C++ fournit des algorithmes</br>comme le calcul d'enveloppes convexes, de triangulations, en 2D,</br>3D... J'illustrerai surtout les problèmes de robustesse numériques que</br>l'on y rencontre, puis je détaillerai les solutions que l'on utilise</br>pour les résoudre de manière efficace. Elles sont basées sur plusieurs</br>types d'arithmétique: arithmétique d'intervalles et</br>multiprécision. Ces différentes techniques sont combinées dans</br>l'implementation grâce à la généricité du code (template C++), ce qui</br>produit à la fois un code efficace, compact, et proche des concepts</br>mathématiques, donc plus facilement prouvable.ématiques, donc plus facilement prouvable.  +
  • Dans cet exposé je présenterai le modèle bDans cet exposé je présenterai le modèle bulk-synchronous parallelism (BSP)</br>des algorithmes et architectures parallèles, ainsi qu'un tour d'horizon des</br>domaines d'application du parallélisme. BSP propose une vue unifiée des</br>principaux paramètres de la performance des algorithmes parallèles et de</br>leur adéquation sur les architectures multi-processeur, multi-coeur et leurs</br>réseaux de communication interne. Il permet une analyse portable et</br>extensible des performances ce qui permet d'éviter les principaux pièges de</br>l'informatique parallèle: mauvaise granularité, réseau mal adapté,</br>déséquilibres.ularité, réseau mal adapté, déséquilibres.  +
  • Dans cet exposé je présenterai un outil, aDans cet exposé je présenterai un outil, appelé Tom, qui permet de</br>simplifier la programmation d'outils de manipulation et de</br>transformation de structures arborescentes, telles que les AST</br>(Abstract Syntax Trees) ou les documents XML par exemple.</br>Tom est un langage de programmation qui ajoute à Java des</br>constructions inspirées du calcul de réécriture et des langages à</br>base de règles. On peut, de manière approximative, voir Tom comme une</br>intégration d'un sous-ensemble de Caml dans Java.</br></br>Le langage repose sur trois notions fondamentales :</br></br>(i) les termes, qui sont un modèle universel permettant de</br>décrire des structures arborescentes, et en particulier les notions de</br>programmes et de preuves.</br></br>(ii) les règles, qui permettent de décrire de manière expressive des</br>transformations.</br></br>(iii) les stratégies, qui permettent de contrôler l'application des</br>règles.</br></br>La séparation transformation-contrôle est un point essentiel</br>permettant de rendre les règles indépendantes de leur contexte</br>d'utilisation, facilitant ainsi leur écriture, leur réutilisation et</br>l'établissement de propriétés.</br></br>Le Langage Tom est parfaitement adapté à la réalisation d'outils de</br>transformation et de prouveurs. Son intégration dans Java rend son</br>utilisation facile, aussi bien dans le milieu académique que dans le</br>milieu industriel. académique que dans le milieu industriel.  +
  • Dans cet exposé nous verrons l'ensemble deDans cet exposé nous verrons l'ensemble des outils de la plate-forme</br>Qgar, avec une attention particulière pour la généricité et les</br>performances du code de la bibliothèque QgarLib. Nous verrons</br>également les autres composants du logiciel, quelques standards de</br>développement Qgar, ainsi que les défis pour l'évolution de la</br>plate-forme. défis pour l'évolution de la plate-forme.  +
  • Dans cet exposé, nous présenterons Yayi, uDans cet exposé, nous présenterons Yayi, une bibliothèque générique de</br>traitement morphologique d'image. Cette base logicielle, écrite en C++</br>et interfacée avec Python, fournit un nombre croissant de fonctions en</br>traitement d'image et en morphologie mathématique (distance,</br>segmentation, etc.). Nous discuterons de la mise en oeuvre générale,</br>des concepts génériques utilisés dans la bibliothèque, et de leurs</br>utilisations dans l'élaboration de nouveaux algorithmes. Enfin, nous</br>présenterons quelques pistes actuellement en développement dans Yayi</br>pour adresser certains des problèmes levés par la programmation</br>générique.èmes levés par la programmation générique.  +
  • Dans cet exposé, nous présenterons la biblDans cet exposé, nous présenterons la bibliothèque d'algorithmes de</br>morphologie mathématique Morph-M. Cette bibliothèque C++ fournit un</br>grand nombre de fonctions en traitement d'image (arithmétiques,</br>colorimétrique...) et en morphologie mathématique (filtrage,</br>segmentation, graphes etc.). Nous discuterons principalement des</br>concepts proposés par la bibliothèque, et leurs utilisations dans la</br>mise en oeuvre de nouveaux algorithmes. Nous illustrerons les</br>potentialités par quelques algorithmes actuellement implémentés dans</br>cette bibliothèque. Enfin nous discuterons des inconvénients de</br>l'approche générique.des inconvénients de l'approche générique.  +
  • Dans de nombreux domaines on cherche à améDans de nombreux domaines on cherche à améliorer les performances des</br>programmes en faisant appel au « GPGPU »: un ensemble d’outils et de</br>techniques permettant d’utiliser le GPU d’une machine afin de lui déléguer</br>d'autres calculs que les traditionnelles routines de dessins. Cependant,</br>écrire un programme qui exploite à la fois le GPU et le CPU n’est pas une</br>tâche facile. Même lorsque les algorithmes se prêtent bien à la</br>programmation GPU il arrive que le gain en performance soit décevant. L’un</br>des principaux problèmes reste la gestion de la mémoire et surtout du</br>transfert de données entre le GPU et le CPU. En effet l'optimisation des</br>temps de transfert est délicate et peut nécessiter plusieurs jours d’analyse</br>et de réécriture pour obtenir de bonnes performances.</br></br>CUDA offre de nouveaux outils pour résoudre ce problème. Des outils de</br>profilage de code permettent de voir où se situent les problèmes de</br>transfert. UVM (Unified Virtual Memory), le nouveau modèle de gestion de la</br>mémoire, permet de tirer pleinement parti de CUDA bien plus facilement que</br>par le passé.</br></br>C’est à l’utilisation de ces nouvelles techniques que nous nous intéressons</br>dans cette présentation. nous intéressons dans cette présentation.  +
  • Dans la recherche multimédia basée contenuDans la recherche multimédia basée contenu, on distingue trois champs d'applications différents : la recherche de cible dans laquelle on désire retrouver un document particulier ; la recherche interactive, dans laquelle l'utilisateur définit l'objet de la requête au fil de son interaction avec le système ; et la catégorisation, où il s'agit d'étiqueter les données en un certain nombre de classes prédéfinies. </br></br>Cette présentation fera le tour d'horizon de mes travaux de recherche dans deux de ces domaines. Une première partie concernera la recherche de cible, où je présenterai le cas particulier de la recherche de quasi-copies dans de très grands volumes de données, et en particulier une application à la recherche de scènes urbaines identiques dans le cadre du projet iTowns. </br></br>Dans la deuxième partie, je développerai mes travaux récents sur la classification d'images. L'accent y sera mis sur la fusion de descripteurs multimédias et les techniques d'apprentissage statistique permettant d'apprendre conjointement l'opération de fusion avec la fonction de classification.fusion avec la fonction de classification.  +
  • Dans un intergiciel schizophrène, une reprDans 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.  +
  • Depuis 2000, on assiste à un regain d'intéDepuis 2000, on assiste à un regain d'intérêt pour les langages typés dynamiquement</br>regroupés sous la bannière "langage de script". Pour les langages de script les plus</br>populaires, comme PHP, Python ou Ruby, il existe, en plus des implantations</br>écrites en C, des implantations plus récentes utilisant des environnements</br>comme la machine virtuelle Java (JVM) ou la plateforme .Net.</br>Ces implantations sont souvent plus efficaces que les implantations historiques,</br>pourtant, ces environnements d'exécution utilisent des langages intermédiaires</br>typés statiquement qui sont peu propices à l'implantation de langage typé dynamiquement.</br>Partant de ce constat, le Java Community Process a créé la JSR 292 intitulée</br>"Supporting Dynamically Typed Languages on the JavaTM Platform" dont le but</br>est de proposer une API facilitant l'implantation et les performances des</br>langages de script sur une machine virtuelle Java.</br></br>Mon exposé se compose de deux parties.</br></br>Dans un premier temps, en tant que membre du groupe d'experts, j'essaierai de restituer</br>de façon didactique les concepts introduits par la JSR 292 en expliquant les tenants et les aboutissants.</br></br>La seconde partie, plus personnelle, montrera comment développer l'environnement</br>d'exécution d'un langage de script en utilisant les outils fournis par la JSR 292.</br>Je m'appuierai pour cela sur un prototype de langage que j'ai développé et nommé</br>PHP.reboot.ge que j'ai développé et nommé PHP.reboot.  +
  • Despite its NP-completeness, propositionalDespite its NP-completeness, propositional Boolean satisfiability (SAT) covers a broad spectrum of applications. Nowadays, it is an active research area finding its applications in many contexts like planning decision, cryptology, computational biology, hardware and software analysis. Hence, the development of approaches allowing to handle increasingly challenging SAT problems has become a major focus: during the past eight years, SAT solving has been the main subject of my research work. This talk presents some of the main results we obtained in the field.the main results we obtained in the field.  +
  • En morphologie mathématique, la représentaEn morphologie mathématique, la représentation d'une image par l'arbre</br>des formes n'est en fait pas vraiment auto-duale: elle se heurte à la</br>dualité entre séparation et connexité (c4 vs. c8 en 2D) et au final</br>des aberrations apparaissent. À la recherche d'un algorithme original</br>pour le calcul de l'arbre des formes, une nouvelle représentation</br>discrète d'images 2D est apparue. Définie sur la grille de Khalimsky</br>avec la topologie d'Alexandroff et s'appuyant sur l'analyse</br>multivoque, cette représentation a la particularité de satisfaire à de</br>nombreuses propriétés du continu et de s'affranchir des problèmes</br>topologiques classiques.hir des problèmes topologiques classiques.  +
  • Formal verification (aka Symbolic Model ChFormal verification (aka Symbolic Model Checking) is becoming a</br>mainstream technology in system on a chip (SoC)/intellectual property</br>design and verification methodologies. In the past, the usage of</br>formal verification was limited to a small range of applications; it</br>was mainly used to verify complex protocols or intrinsic logic</br>functionality by formal verification experts. In recent years, we saw</br>a rapid adoption of formal verification technology and many new</br>application areas, such as checking of configuration and status</br>register accesses, SoC connectivity verification, low power design</br>verification, security applications, and many more. In this talk, we</br>give an overview of the JasperGold Formal Verification Platform. The</br>platform provides a wide range of formal apps, which ease adoption of</br>formal verification by offering property generation and other targeted</br>capabilities for specific design and verification tasks. In addition,</br>JasperGold offers a unique interactive debug environment (called</br>Visualize) that allows the user to easily analyze the verification</br>results. We present JasperGold from a user’s point of view, showcase</br>selected apps, and discuss features that were essential for their wide</br>adoption.at were essential for their wide adoption.  +
  • Frama-C est une plateforme d'analyse de coFrama-C est une plateforme d'analyse de code C visant à vérifier des programmes</br>C de taille industrielle. Elle fournit à ses utilisateurs une collection de</br>greffons effectuant notamment des analyses statiques par interprétation</br>abstraite et des méthodes déductives ou encore permettant des vérifications à</br>l'exécution. La plateforme permet également de faire coopérer les analyses grâce</br>au partage d'un noyau et d'un langage de spécification communs.</br></br>Cet exposé présente une vue générale de la plateforme, de ses principaux</br>analyseurs et de quelques applications industrielles. Il se concentre sur le</br>langage de spécification ACSL et sur différentes façons de vérifier des</br>spécifications ACSL avec des analyses statiques ou dynamiques.avec des analyses statiques ou dynamiques.  +
  • Generic Tools, Specific Languages is an apGeneric Tools, Specific Languages is an approach for developing tools and</br>applications in a way that supports easier and more meaningful adaptation to</br>specific domains. To achieve this goal, GTSL generalizes programming</br>language IDEs to domains traditionally not addressed by languages and</br>IDEs.</br></br>At its core, GTSL represents applications as documents / programs / models</br>expressed with suitable languages. Application functionality is provided</br>through an IDE that is aware of the languages and their semantics. The IDE</br>provides editing support, and also directly integrates domain-specific</br>analyses and execution services. Applications and their languages can be</br>adapted to increasingly specific domains using language engineering; this</br>includes developing incremental extensions to existing languages or creating</br>additional, tightly integrated languages. Language workbenches act as the</br>foundation on which such applications are built.tion on which such applications are built.  +
  • Hierarchical image representations have beHierarchical image representations have become increasingly popular in</br>image processing and computer vision over the past decades. Indeed,</br>they allow a modeling of image contents at different (and</br>complementary) levels of scales, resolutions and semantics. Methods</br>based on such image representations have been able to tackle various</br>complex challenges such as multi-scale image segmentation, image</br>filtering, object detection, recognition, and more recently image</br>characterization and understanding. In this talk, we will focus on the</br>binary partition tree (BPT), which is a well-known hierarchical</br>data-structure, frequently involved in the design of image</br>segmentation strategies. In a first part, we will focus on the</br>construction of such trees by providing a generalization of the BPT</br>construction framework to allow one to embed multiple features, which</br>enables handling many metrics and/or many images. In a second part,</br>we will discuss how it may be possible to evaluate the quality of such</br>a structure and its ability to reconstruct regions of the image</br>corresponding to segments of reference given by a user. Finally, we</br>will see some examples of image analysis and recognition processes</br>involving these hierarchical structures. The main thematic application</br>is remote sensing and satellite image analysis.mote sensing and satellite image analysis.  +
  • Il existe de nombreux langages informatiquIl existe de nombreux langages informatiques, et les débats concernant leurs</br>avantages et inconvénients respectifs sont nombreux, mais peu considèrent la</br>question du développement d'applications sécurisées, c'est-à-dire robustes</br>contre les actions d'agents malveillants. C'est l'optique abordée dans cette</br>présentation, qui rebondit sur de nombreuses illustrations dans différents</br>langages afin de pouvoir cerner ce que seraient les bonnes propriétés d'un</br>langage vis-à-vis de la sécurité, mais aussi des recommandations de codage</br>pertinentes ou encore des outils pertinents pour le développement et</br>l'évaluation d'applications de sécurité.t l'évaluation d'applications de sécurité.  +
  • Il y a un intérêt grandissant pour le déveIl y a un intérêt grandissant pour le développement d’outils de</br>traitements adaptés aux images multimodales (plusieurs images de la</br>même scène acquises avec différentes caractéristiques). Permettant une</br>représentation plus complète de la scène en question, ces images</br>multimodales ont de l'intérêt dans plusieurs domaines du traitement</br>d'images. Les exploiter et les manipuler de manière optimale soulève</br>cependant plusieurs questions.</br></br>Dans cet exposé, nous étendrons les représentations hiérarchiques,</br>outil puissant pour le traitement et l’analyse d’images classiques,</br>aux images multimodales afin de mieux exploiter l’information</br>additionnelle apportée par la multimodalité et améliorer les</br>techniques classiques de traitement d’images. En particulier, nous</br>nous concentrerons principalement sur deux modalités différentes,</br>fréquemment rencontrées dans le domaine de la télédétection:</br></br>- La modalité spectrale-spatiale, propre aux images hyperspectrales</br>(images à très haute résolution spectrale - plusieurs centaines de</br>canaux). Une intégration adaptée de cette information</br>spectrale-spatiale lors de l'étape de construction de la</br>représentation hiérarchique (en l’occurrence, un arbre de partition</br>binaire) nous permettra par la suite, via un processus de</br>minimisation énergétique, de proposer une carte de segmentation de</br>l'image optimale vis-à-vis de l'opération de démélange spectral.</br></br>- La modalité sensorielle, c'est-à-dire les images acquises par des</br>capteurs de différentes natures. Ces images "multisources",</br>porteuses d'informations à la fois redondantes et complémentaires,</br>sont particulièrement intéressantes pour des applications de</br>segmentation. Nous proposerons une méthode se basant sur le très</br>récent concept de tresses de partitions (extensions des hiérarchies</br>de partitions classiques) afin de réaliser l'analyse hiérarchique de</br>ces images multisources, et en obtiendrons une segmentation (là</br>encore) via un processus de minimisation énergétique.</br></br>- Enfin, nous décrirons très brièvement une méthode d'analyse d'images</br>multitemporelles permettant d'effectuer du suivi d'objet, en se</br>basant également sur les représentations hiérarchiques des</br>différentes images de la séquence.ues des différentes images de la séquence.  +
  • In a partially observable system, diagnosiIn a partially observable system, diagnosis is the task of detecting certain events, for instance fault occurrences. In the presence of hostile observers, on the other hand, one is interested in rendering a system opaque, i.e. making it impossible to detect certain "secret" events. The talk will present some decidability and complexity results for these two problems</br>when the system is represented as a finite automaton or a Petri net. We then also consider the problem of active diagnosis, where the observer has some control over the system. In this context, we study problems such as the computational complexity of the synthesis problem, the memory required for the controller, and the delay between a fault occurrence and its detection by the diagnoser. The talk is based on joint work with B. Bérard, S. Haar, S. Haddad, T. Melliti, and S. Schmitz.ar, S. Haddad, T. Melliti, and S. Schmitz.  +
  • Je présenterai sur la base d'une démo une Je présenterai sur la base d'une démo une application des extensions</br>de langages, à savoir une extension Java pour l'optimisation. Cet</br>exemple montre la mise en oeuvre concrète dans Eclipse, les gains de</br>productivité et de qualité obtenus par rapport aux approches</br>classiques Java+DSL, la différence entre cette approche et un</br>générateur de code ou un préprocesseur. Il montre également une</br>utilisation originale d'un compilateur: la génération automatique</br>d'interface graphique.</br></br>Je parlerai aussi des futurs projets d'Ateji dans le domaine des</br>extensions de langage.dans le domaine des extensions de langage.  +
  • Je présenterai un outil en ligne dont l'obJe présenterai un outil en ligne dont l'objectif est de manipuler et</br>tester des propriétés algébriques pour des automates. Une courte</br>présentation de la théorie algébrique des automates sera donnée à la</br>volée. Les seuls concepts nécessaires à la compréhension de l'exposé</br>sont les expressions régulières, ainsi que la minimisation et la</br>déterminisation d'automates finis.n et la déterminisation d'automates finis.  +
  • JoCaml est une extension d'Objective Caml JoCaml est une extension d'Objective Caml pour la programmation</br>concurrente et distribuée, inspirée par le join-calcul. Nous avons</br>récemment publié une nouvelle version de JoCaml, dont la compatibilité</br>avec OCaml est meilleure que celle de la version initiale de F. Le</br>Fessant. La nouvelle version pourra facilement être mise à jour au</br>rythme d'OCaml et est binaire-compatible avec OCaml.</br></br>L'exposé s'attachera plus au langage JoCaml qu'au système JoCaml. Il</br>montrera comment, à partir d'un programme potentiellement</br>parallélisable écrit en OCaml (le ray tracer du concours ICFP 2001),</br>on peut facilement produire un programme distribué, dans le cas</br>abordé, très efficace. Ce sera l'occasion d'aborder la programmation</br>en JoCaml de la coordination de multiples agents coopérants, d'une</br>manière simple et concise dans l'esprit de la programmation</br>fonctionnelle.</br></br>JoCaml est disponible en http://jocaml.inria.fr/.est disponible en http://jocaml.inria.fr/.  +
  • Julia est un langage de programmation relaJulia est un langage de programmation relativement jeune, développé au</br>MIT, et vendu comme langage dynamique à haute performance pour le</br>calcul scientifique numérique. L'un des co-auteurs du langage a une</br>connaissance de Scheme, et Julia s'inspire en effet largement de Scheme,</br>Common Lisp et Dylan, au point qu'il pourrait presque revendiquer un</br>lien de parenté avec Lisp. Tout ceci est déjà suffisant pour capter</br>notre attention, mais il y a plus: Julia semble également tirer parti de</br>techniques modernes d'optimisation pour les langages dynamiques, en</br>particulier grâce à son compilateur « Just-in-Time » basé sur LLVM.</br></br>Dans cette présentation, nous ferons un tour des aspects les plus</br>saillants du langage, avec une légère emphase sur ce qui en fait (ou</br>pas) un Lisp, quelques fois même (pas toujours) un meilleur Lisp que</br>Lisp lui-même.jours) un meilleur Lisp que Lisp lui-même.  +
  • L'Imagerie par Résonance Magnétique fonctiL'Imagerie par Résonance Magnétique fonctionnelle (IRMf) est une source</br>prometteuse de biomarqueurs permettant le diagnostic de troubles</br>neuropsychiatriques sur des sujets non coopératifs.</br>L'IRMf s'étudie en établissant un atlas de régions cérébrales représentatif</br>de l'organisation fonctionnelle, puis en étudiant la corrélation entre leurs</br>signaux.</br>Pour les extraire, nous proposons une approche d'apprentissage de</br>dictionnaire multi-sujets intégrant une pénalité imposant compacité spatiale et</br>parcimonie.</br>Nous sélectionnons les unités de base des réseaux fonctionnels</br>extraits à l'aide de techniques de segmentation inspirées du domaine de la</br>vision. Nous montons à l'échelle sur de gros jeux de données en utilisant</br>une stratégie d'optimisation stochastique.</br>A défaut de vérité terrain, nous proposons d'évaluer les modèles générés</br>à l'aide de métriques de stabilité et de fidélité.</br>Nous intégrons ensuite notre méthode de définition de régions dans un</br>pipeline entièrement automatisé, afin de réaliser une tâche de diagnostic des troubles</br>autistiques à travers différents sites d'acquisition et sur des</br>sous-ensembles d'homogénéité variable. Nous montrons que nos modèles ont une meilleure</br>performance, à la fois relativement aux métriques d'évaluation mais également sur nos</br>résultats expérimentaux.</br>Enfin, par une analyse post-hoc des résultats, nous montrons que la</br>définition de région est l'étape la plus importante du pipeline et que l'approche que</br>nous proposons obtient les meilleurs résultats. Nous fournissons également</br>des recommandations sur les méthodes les plus performantes pour les autres</br>étapes du pipeline.mantes pour les autres étapes du pipeline.  +
  • L'algorithmique constructive permet, partaL'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.  +
  • L'apprentissage automatique, ou "pattern rL'apprentissage automatique, ou "pattern recognition" multivarié, peut</br>identifier des motifs complexes, associés à une variable d'intérêt, et</br>ce, dans des données de grandes dimensions. Une fois l'apprentissage</br>effectué par l'algorithme, il est appliqué à un nouvel individu afin</br>de prédire l'évolution future de ce dernier. L'imagerie par résonance</br>magnétique (IRM) fournit une approche efficace et non invasive pour</br>étudier les changements structurels et fonctionnels du cerveau,</br>associés aux conditions cliniques des patients. En combinant</br>apprentissage automatique et imagerie cérébrale, il est possible de</br>considérer l'émergence d'une médecine personnalisée, où les</br>algorithmes ont appris du passé à prédire la réponse probable et</br>future d'un patient donné à un traitement spécifique. Ces nouvelles</br>informations guideront le clinicien dans ses choix thérapeutiques.</br>Nous présenterons la complexité des données IRM manipulées, les</br>algorithmes d'apprentissage et leurs applications aux maladies</br>cérébrales.eurs applications aux maladies cérébrales.  +
  • L'arrivée des GPU (Graphics Processing UniL'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é.  +
  • 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.  +
  • L'industrie des effets spéciaux produit unL'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.  +
  • L'informatique graphique 3D, qu'il s'agissL'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.  +
  • 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++.  +