Conception et développement d'un logiciel de Vision par ordinateur

Dimension: px
Commencer à balayer dès la page:

Download "Conception et développement d'un logiciel de Vision par ordinateur"

Transcription

1 Florent Perrocheau Licence d'informatique Université de Franche-Comté Stage de troisième année Du 15/03/2010 au 15/08/2010 Conception et développement d'un logiciel de Vision par ordinateur Maitre de stage : Laurent Lebocq Responsable de stage : Jean-marc Nicod

2 2

3 Remerciements Je tiens à remercier : Laurent Lebocq et David Hériban pour m'avoir permis de réaliser ce stage et m'avoir accompagné dans différentes tâches de la réalisation du projet. Jean-Marc Nicod pour s'être déplacé et m'avoir apporté des conseils. toute l'équipe de l'as2m pour leur accueil. 3

4 4

5 Table des matières 1.Introduction Contexte du stage Percipio-Robotics Micro-manipulation Vision par ordinateur Le système de micro-assemblage Présentation du stage Sujet Définition des besoins Déroulement du stage Planning Outils utilisés...14 Framework Qt...14 Multi-Threading...15 Plugin...16 Librairie de traitement d'images : OpenCv Conception Les demandes de traitements...17 Protocole de communication Architecture Diagramme de classe Les chaînes de traitements Les plugins L'interface utilisateur...23 Version de développement...23 Version finale Résultats Perspectives Bilan...27 Bibiliographie et netographie...28 Glossaire...29 Annexe...30 I.Protocole de communication...30 II.Exemple de traitement de vision...32 III. Interface du logiciel

6 1.Introduction La licence informatique nous offre l'opportunité de réaliser un stage en entreprise afin de concrétiser la première partie de notre formation et de mettre en pratique nos connaissance dans un cadre professionnel. Avec comme objectif d'élargir mes connaissances en programmation orienté objet, j'ai décider d'effectuer mon stage au sein de Percipio-Robotics, entreprise en devenir lié au monde de la recherche, où j'ai en charge la conception et le développement en C++ d'un logiciel de vision par ordinateur. J'exposerais dans ce rapport la première partie de mon expérience qui se déroule jusqu'au 15 aout Tout d'abord je présenterais rapidement le contexte de ce stage, l'entreprise et son domaine d'activité. Puis j'aborderais le projet qui m'est confié et les moyen mis en œuvre afin de mener à bien sa réalisation. Enfin je conclurais par un bilan technique et humain de cette expérience. 6

7 2.Contexte du stage 1)Percipio-Robotics Mon stage prends place au sein de Percipio-Robotics, projet d'entreprise innovante qui a pour ambition la valorisation de travaux de recherches réalisés à l'institut FEMTO-ST. Elle a pour secteur d activité la manipulation et l assemblage robotisé de micro-composants. Elle conçoit des systèmes robotisés de micro-assemblage permettant de manipuler des composants microtechniques de tailles caractéristiques comprises entre 10 micromètres et quelques millimètres, grâce à des inovations comme une micropince à actionnement piézoélectrique lauréat de deux microns d or au salon international des microtechniques MICRONORA 2002 et 2008 et brevetée depuis Le projet Percipio-Robotics est entré à l Incubateur d Entreprises Innovantes de Franche- Comté (IEI.FC) en août Cette structure associative, créée par les établissements d enseignement supérieur de la région Franche-Comté, a pour mission de favoriser la création d entreprises innovantes valorisant les résultats de la recherche publique. La création de Percipio- Robotics est prévue pour le second semestre Son effectif se compose actuellement de trois personnes : le porteur de projet David HERIBAN qui développe le système de micro-manipulation au cœur du projet, le co-porteur de projet et ingénieur étude UFC Laurent LEBOCQ, ingénieur en vision par ordinateur sur le projet, qui sera mon encadrant durant mon stage, ainsi que Michaël GAUTHIER, futur associé, chargé de recherche CNRS. Cette structure est pour le moment située au département AS2M (Automatisme et Système Micro-Mécatronique), laboratoire situé à l'ensmm (École Nationale Supérieure de Mécanique et de Microtechniques de Besançon), où furent menés les travaux de recherche à l'origine du système de micro-manipulation mis au point par Percipio-Robotics. 2)Micro-manipulation À l heure actuelle, encore beaucoup de tâches de micro-manipulation sont réalisées à la main par des opérateurs humains. Cela pose un vrai problème pour l industrie. C est un travail pénible, et de ce fait ces opérateurs ne peuvent travailler que très peu dans une journée. De plus, les tâches qu ils peuvent accomplir sont limitées. C est pourquoi la micro-manipulation est un domaine de recherche très important qui répond à un besoin des industriels. La première solution pour améliorer un travail de micro-manipulation consiste à remplacer la pince de l opérateur par une station de micro-manipulation télé-opérée. Celle-ci prend la forme d'un robot commandé par un opérateur via un joystick. Les stations de télémanipulation constituent déjà des technologies maitrisées et représentent un réel gain pour la manufacture. La prochaine étape est l'automatisation des tâches de micro-manipulation. Pour cela, les capteurs visuels, tels que les caméras, sont préconisées. En effet les informations visuelles sont 7

8 riches, moins soumises aux bruits et beaucoup plus faciles à mettre en œuvre que des capteurs de force ou de position dans le contexte du micro-monde. Il s'agit en général de récupérer la position des objets à manipuler en utilisant des algorithmes comme la détection de contours afin que le robot puisse opérer de façon automatique. 3)Vision par ordinateur La vision par ordinateur (aussi appelée "vision artificielle") est une branche de l'informatique dont le but est de rendre un ordinateur capable de lire et d'analyser une scène donnée, en se basant sur des informations visuelles telles qu'une image ou un flux vidéo. On pourrait citer plusieurs domaines d'application comme la reconnaissance de caractères, utilisée par exemple pour le tri du courrier, le contrôle visuel d'une chaîne de fabrication, l'asservissement visuel d'un robot ou la détection de formes que l'on peut trouver sur les appareils photographiques proposant une option de détection de sourires ou les projets du domaine vidéoludique proposant de s'affranchir de toute interface avec la machine en interagissant directement avec les mouvement du corps. 8

9 4)Le système de micro-assemblage Illustration 1: système de micro-manipulation Le système mis au point par Percipio-Robotics a pour but la manipulation et l'assemblage de micro-objets. Il est composé d'une station de micro-assemblage robotisée et de deux ordinateurs. La partie informatique est séparée sur deux postes différents afin que chaque partie dispose de ressources matérielles dédiées. Le premier ordinateur héberge le logiciel de commande qui pilote la station. Le second ordinateur embarque un logiciel de vision qui peut être assimilé à un capteur. Il a pour but de répondre à des demandes de traitement de vision par ordinateur envoyées par le logiciel de commande afin de rendre celui-ci autonome et d'automatiser les manipulations. 9

10 3.Présentation du stage 1)Sujet Le projet de ce stage a pour objectif la re-conception et le développement d'un logiciel de vision par ordinateur prenant place dans le système de micro-manipulation mis en place par Percipio-Robotics. Ce logiciel a pour fonction de répondre à des demandes de traitement sur images envoyées par le PC de commande. Il devra donc gérer les demandes, effectuer des traitements de vision par ordinateur sur des images provenant d'une (ou plusieurs) caméra(s) et communiquer les résultats via Ethernet avec un autre logiciel. Une première version de ce logiciel existe déjà mais pose plusieurs soucis pour une utilisation industrielle du système. Tout d'abord, celui-ci, ayant été développé rapidement pour répondre à un besoin dans le cadre de travaux de recherche, manque de stabilité et d'optimisation. Il est également incomplet pour l'utilisation finale désirée, sa conception n'autorisant que la gestion des traitements simples. De plus, comme le logiciel de commande, il fut développé avec l'environnement de programmation Borland qui requiert une licence, ne peut assurer la portabilité des applications développées, et n'est plus mis à jour. Il fut donc décidé de repartir sur des bases solides pour ce qui est des «softs» intégrant le système. La première étape choisie fut la réécriture du logiciel de vision, tâche qui m'est attribuée au cours de ce stage. J'ai donc pour mission de concevoir une nouvelle architecture qui permette la gestion plus complète des tâches à réaliser et ensuite de développer ce logiciel en C++ avec le frameworks Qt. 10

11 2)Définition des besoins portabilité L'application doit être compatible sous les systèmes d'exploitation Windows et Linux. modularité Une grande modularité est demandée afin de pouvoir modeler le logiciel au gré des besoins, pour pouvoir fournir à chaque client un système adapté à son utilisation. Précision et rapidité Le futur robot devant être capable de déplacements rapides (environ un mètre par seconde pour manipuler des pièces mesurant quelques dizaines de microns), la précision des captures et la rapidité des traitements sont primordiales. L'acquisition doit être précise à la milliseconde et les traitements ne peuvent excéder quelques dizaines de millisecondes. Techniquement abouti Afin de tirer parti de machines véloces, dans le but d'optimiser les temps de calculs, les différentes tâches exécutées devront être parallélisées grâce à l'utilisation du multi-threading. Il est aussi question d'éventuelles évolutions pour utiliser le calcul GPU. Prise en charges de flux multiples La station de micro-assemblage peut nécessiter plusieurs caméras. Il faut donc pouvoir gérer, en simultané, plusieurs flux vidéos. De plus, ceux-ci peuvent provenir de différents types de caméras possédant des protocoles variés : USB, firewire ou giga-éthernet. Le logiciel devra s'adapter au différents formats de caméras professionnelles utilisés couramment en industrie. gestion de demandes de traitements complexes Le logiciel doit être capable de gérer des demandes de traitements complexes. Il doit pouvoir effectuer des chaînes de traitements susceptibles d'être sérialisées et parallélisées. communication avec le logiciel de commande La communication avec le logiciel de commande nécessite de définir un protocole de communication entre les deux logiciels. Un module de communication sera nécessaire pour gérer la communication par liaison Ethernet via TCP/IP. 11

12 interface de test Pour de faciliter la mise en place et le développement du système final, une interface permettant de tester directement les traitements de vision, avec un retour complet des résultats et des informations de l'exécution de ceux-ci, est nécessaire. 12

13 4.Déroulement du stage Pour la réalisation du logiciel j'ai du mettre en œuvre, approfondir et élargir mes connaissances de façon significative. Pour cela j'ai effectué un travail important d'auto-formation, ce qui m'a permis d'acquérir des notions de programmation jusqu'alors non abordées lors de ma formation initiale ou de mes travaux personnels. J'ai ensuite réalisé un travail de conception en concertation avec les membres du projet et de l'équipe afin de définir les besoins de l'application et d'apporter une solution pour la réalisation de celle-ci. Puis j'ai pu commencer le développement, étape en cours de réalisation à l'heure actuelle. 3)Planning Afin d'organiser mon temps de travail durant mon stage, j'ai réalisé un planning prévisionnel prenant en compte les différentes étapes nécessaires pour réaliser la tâche qui m'est confiée. Celui-ci à été respecté jusqu'à aujourd'hui. Illustration 2: planning prévisionnel 13

14 4)Outils utilisés La réalisation de ce projet m'a demandé d'acquérir des connaissances afin de pouvoir utiliser certaines techniques de programmation telles que le multi-threading, la gestion des plugins, la programmation d'interfaces graphiques et l'utilisation avancée du C++ et la programmation orientée objet. Pour cela j'ai engagé un travail d'apprentissage en amont. Une fois l'offre de stage agréée, pour mettre un maximum de chances de mon coté, j'ai orienté mon travail personnel afin de me former au mieux et être apte à satisfaire au travail proposé. J'ai tout d'abord porté et continué mon projet «tutoré» de licence, un moteur de jeu sur Nintendo DS initialement prévu en C, vers le C++, dans le but de compléter et approfondir l'étude de ce langage et la programmation orientée objet. Par la suite, j'ai profité du projet de MOP pour m'initier au développement de GUI. J'ai donc développé une interface graphique pour la puissance 4 demandée. Grâce à cela, j'ai pu prendre connaissance avec le framework Qt avant le début de mon stage. Cela ma permis de mieux appréhender des sujets plus complexes dès le début du stage. Durant le premier mois, j'ai approfondi mon apprentissage de Qt à travers des notions plus complexes comme l'utilisation du multi-threading ou les plugins. J'ai aussi découvert la vision par ordinateur à travers la librairie OpenCv. Au cours de cet apprentissage j'ai pu développer quelques outils qui me furent utiles pour le développement du projet. Framework Qt Qt est un framework de développement C++, comprenant un ensemble de bibliothèques et d'outils qui permettent de faciliter le développement d'applications multi-plateformes. Il fut développé initialement par la société Trolltech, puis a été racheté par Nokia. Son développement a commencé en 1991 avec comme objectif de proposer une bibliothèque permetant de gérer une interface graphique. Depuis, il a énormément évolué et regroupe maintenant de nombreux modules qui en font un outil très complet. Il permet entre autre : la création d'interface graphiques le chargement de fenêtres 3D gérées par OpenGL le dessin en 2D la gestion du multi-threading la communication en réseau le support du javascript un accès SQL aux bases de données la manipulation et la génération de fichiers XML l'affichage de pages web avec le moteur WebKit En plus de proposer ses outils haut niveau, il implémente toutes les fonctions nécessaires au développement de logiciels comme la gestion des chaînes de caractères ou les conteneurs. Il est donc possible de créer une application complète en utilisant seulement Qt. 14

15 Point intéressant, il offre une entière compatibilité des applications développées avec les systèmes d'exploitation Linux, Windows et Mac OS. Depuis la version 4.5, Qt est proposé sous une licence LGPL v2.1. Cette nouvelle licence permet ainsi le développement de logiciels propriétaires sans nécessiter l'achat d'une licence commerciale, ce qui est un avantage intéressant pour une start-up comme Percipio-Robotics. Qt signifie "Cute", ou "Mignonne" en français, parce que les développeurs trouvaient que la lettre Q était jolie dans leur éditeur de texte Emacs. On peut noter qu'il est utilisé par de grands noms de l'informatique. En effet, plusieurs projets comme KDE (l'un des environnements de bureau les plus utilisés dans le monde de Linux), VLC (lecteur multimédia très populaire), SKYPE (solution de téléphonie par internet), ou Adobe Photoshop (logiciel de retouche d'image et de dessin assisté par ordinateur), sont basés sur son utilisation. Multi-Threading Le multi-threading est une technique de programmation permettant de paralléliser l'exécution d'un logiciel. Un thread, ou fil d'exécution, est un ensemble d'instructions s'exécutant de manière séquentielle. L'exécution en parallèle de plusieurs threads permet à un programme de travailler sur plusieurs fronts, simultanément. Très utilisé pour la gestion de GUI, ce procédé permet de conserver la réactivité de l'interface graphique même lors de l'exécution de calculs coûteux. Cela permet également de tirer profit des ressources de machines bénéficiant d'une plateforme qui possèdent un processeur multi-cœurs en multipliant le nombre d'exécutions simultanées, ce qui, ainsi, a pour intérêt de réduire les temps de calculs. Les contraintes de rapidité de traitement de l'application font du multi-threading une priorité dans la conception de celle-ci, la première version fut d'ailleurs nommé VisionThread. L'utilisation du multi-threading est grandement facilitée par la bibliothèque Qt. En effet elle offre un outil puissant qui gère de façon transparente l'implémentation de ceux-ci. Qt propose comme technique d'étendre la classe visée en la faisant hériter de Qthread. Dans ce cas, la classe devra redéfinir une méthode run(). Son implémentation implique un éventuel partage des ressources en mémoires. Afin de garantir l'intégrité de celles-ci, il est indispensable de contrôler leurs accès. Pour cela, l'utilisation des mutexs, primitives de synchronisation, permettent de superviser la lecture et l'écriture des données. 15

16 Plugin Un plugin est un module qui complète un logiciel pour lui apporter de nouvelles fonctionnalités. Il peut être à la base d'une architecture modulaire où différentes parties d'un programme sont déportées dans des plugins. Qt fournit également des outils permettant leurs implémentation. Librairie de traitement d'images : OpenCv OpenCV est une librairie open source de vision par ordinateur. Elle regroupe un grand nombre de fonctions permettant d'effectuer des tâches comme par exemple l'application de filtre sur une image ou la détection d'objet. 16

17 5)Conception La réflexion autour de la conception de l'application s'est déroulée sur une durée d'un mois environ, en parallèle avec l'apprentissage des outils et le début du développement. Les réunions menées avec les porteurs du projet m'ont permis de définir de façon précise et formelle les besoins de la nouvelle version de l'application, ceux-ci étant encore relativement vagues à mon arrivé. j'ai ensuite mené des travaux de recherche afin de proposer les solutions adéquates aux nouveaux besoins du «soft». Il a d'abord fallu redéfinir un point important conditionnant la nouvelle architecture du logiciel : les demandes de traitements que celui-ci pourra accepter. Il en a résulté un travail d'analyse syntaxique pour définir et formaliser le protocoles de communication des demandes. Puis l'architecture a été totalement repensée afin de permettre une gestion plus complexe des traitements à effectuer et d'apporter une plus grande modularité. 1) Les demandes de traitements Une des fonctions importantes du logiciel est la communication avec le PC de commande. En effet, son rôle dans le système est de répondre à des demandes de traitements de vision. Afin d'optimiser l'exécution des traitements et de modulariser ceux-ci, une réflexion de re-conception autour de ce point majeur fut mise en œuvre. Dans la première version du logiciel, chaque demande envoyée ne pouvait comprendre qu'un seul traitement. Les traitements correspondaient à un besoin spécifique faisant usage d'une composition plus simple. Cela impliquait plusieurs contraintes et une certaine faiblesse au niveau de l'exécution des traitements. Pour illustrer ce fait, voici les demandes qu'il était nécessaire d'envoyer afin de pouvoir définir la distance entre l'objet à manipuler et la pince. Pour cela il est nécessaire de connaître la position de l'objet et des deux doigts de la pince du robot. Illustration 3: envoi de demande ancienne version Premièrement, pour une requête précise, trois demandes sont alors envoyées, ce qui aura pour conséquence de multiplier le flux de communication, donc le nombre de demandes et de résultats à analyser. 17

18 De plus, SPEEDLABEL qui détecte le centre de gravité des objets disponibles sur l'image, DETECT_SIFIT1 et DETECT_SIFIT2 qui permettent de détecter les doigts de la pince, nécessitent un traitement commun sur l'image, un seuillage (binarisation de l'image). Dans ce cas, cette opération sera exécutée trois fois (ce qui engendre un gaspillage des ressources). Enfin, imaginons qu'après plusieurs tests on se rende compte que l'application d'un filtre sur l'image permette d'améliorer les résultats pour détecter le bon objet à manipuler. Alors, même si les fonctions permettant d'appliquer ce filtre sont déjà définies, il faudra créer une nouvelle fonction correspondant à la combinaison de ce filtre et de la détection d'objet et donc modifier et recompiler le code source. Cette analyse nous montre plusieurs points importants nécessitant une évolution. L'utilisation des ressources, point crucial pour garantir des temps de traitement acceptables, doit être optimisée. Dans ce but deux notions furent mises en avant : - Premièrement, la redondance des traitements doit être évitée. Si les résultats d'un traitement doivent être utilisés par plusieurs autres traitements, celui-ci ne doit être effectué qu'une seule fois. - Deuxièmement, il serait intéressant de paralléliser l'exécution des traitements indépendants pour tirer profit des ressources matérielles des processeurs multi-cœurs. Pour répondre à ces critères une demande doit donc pouvoir spécifier n traitements pouvant être sérialisés et parallélisés afin que son résultat soit calculé de façon efficace. Cela permettra également de gagner en modularité et de fournir un outil puissant. Les combinaisons de traitement de base permettront de définir des tâches plus complexes de façon totalement paramétrable. Il fut aussi profitable d'ajouter aux demandes plusieurs paramètres, afin de satisfaire les nouveaux besoins de l'application ou d'apporter des améliorations intéressantes. Pour que le logiciel de commande puisse identifier les résultats d'une demande à travers le flux des réponses reçues, il a donc été judicieux d'inclure une clé ID. La première version ne gérant pas encore le multi-caméra, il fut aussi utile de pouvoir préciser le numéro de la caméra à utiliser pour la capture. La dernière information ajoutée fut une option permettant de spécifier un nombre d'exécution à la chaîne de traitements en spécifiant le délai entre deux cycles ainsi que le nombre de cycles. Pour reprendre l'exemple précédent, la requête se réduirait à : Illustration 4: envoi de demande nouvelle version La chaîne spécifie les même tâches que précédemment à la différence que leur ordre d'exécution est précisé de façon à optimiser les traitements. On retrouve également quelques paramètres supplémentaires comme la clé ID, le numéro de caméra et le nombre d'exécutions. 18

19 Protocole de communication Afin de pouvoir communiquer des demandes de traitements complexes, il fut nécessaire de définir un protocole de communication entre le logiciel de commande et le logiciel de vision. J'ai pour cela mis à profit les connaissances acquises lors du module d'as de la licence informatique. La recherche d'un langage fut axé autour de deux points importants : le respect des contraintes permettant de définir un langage analysable et la simplicité, ou le confort d'utilisation. Pour formaliser le langage, j'ai utilisé la syntaxe utilisée lors du projet de TP d'as. J'ai donc défini les règles syntaxiques en ayant préalablement annoncé les tokens utilisés. Le protocole est disponible en annexe 19

20 2) Architecture J'ai pris la liberté de ne pas tout inscrire sur le diagramme, notamment les fonctions et les attributs de chaque classe, afin d'alléger celui-ci et de rendre sa compréhension plus aisée. J'expliquerai ensuite quelques points importants de l'architecture. 1) Diagramme de classe Illustration 5: diagramme de classe 20

21 2) Les chaînes de traitements Dans une chaîne de traitements, l'image ou les résultats résultant d'un traitement doivent pouvoir être utilisés par plusieurs autre traitements. Et plusieurs traitements indépendants doivent s'exécuter en parallèle. Pour répondre à ce problème, la solution choisie a été de modéliser la chaîne de traitement sous la forme d'un arbre binaire. L'arbre est composé de deux types de nœuds, les nœuds associés aux traitements, et le nœud de tête. Le nœud de tête est créé à la réception d'une demande de traitements. Il récupère et conserve l'id, indispensable à l'identification de la réponse associée. Il demande la capture de l'image au module d'acquisition en fonction des informations relatives à la demande. La partie de la demande correspondant aux traitements est analysée afin de créer les nœuds fils, ce récursivement, afin de générer la chaîne de traitements. Chaque nœud s'exécute dans un thread indépendant dans le but de paralléliser les traitements. Illustration 6: exemple d'arbre généré à partir d'une demande 21

22 3) Les plugins Afin de satisfaire le besoin de modularité du programme, celui ci est séparé en trois parties : le cœur ou le moteur qui gère et traite les demandes, les plugins de traitements sur images et les plugins d'acquisition spécifiques à un type de caméras. Cela permettra de développer indépendamment ces modules. Ils pourront être compilés séparément et être testés directement sur le logiciel ce qui apportera un gain de temps et de productivité. L'application finale prenant place dans le système de micro-manipulation adapté aux besoins d'une utilisation spécifique, il sera donc aisé, de configurer le soft pour les caméras du système et les besoins en terme de traitements en chargeant les plugins correspondants. Les plugins de traitement sur images regroupent un ensemble de fonctions de vision par ordinateur. Chacune de ces fonctions pouvant être exécutée plusieurs fois simultanément pour pouvoir paralléliser l'exécution des traitements, il n'était donc pas envisageable, une fois le plugin chargé, d'appeler les fonctions directement. Pour résoudre ce problème, les plugins sont donc conçus sur le modèle du factory pattern, c'est à dire qu'ils comprennent une fonction qui permet de créer des objets correspondant aux fonctions de traitements. Pour pouvoir gérer plusieurs plugins, ceux-ci sont pilotés par un superviseur qui se charge de trouver la fonction demandée dans le bon plugin. Illustration 7: diagramme de classe des plugins de traitements Ainsi, pour récupérer la fonction de traitement (Process) désirée, l'élément de la chaîne de traitement (TaskNode) appelle la fonction de création de Process du superviseur. Celui-ci va déterminer dans quel plugin trouver la bonne fonction et appeler celle-ci. Il retournera ensuite le Process créé qui sera attribué à l'élément de la chaîne. Les plugins qui gèrent les caméras sont réalisés sur le même principe car il doit être possible de gérer, simultanément, plusieurs caméras du même type. 22

23 6)L'interface utilisateur Le soft sera utilisé en définitive par deux types d'utilisateurs. Selon le type d'utilisateur, son interface différera. Version de développement Le premier type d'utilisateurs regroupe les développeurs de Percipio-Robotics qui auront pour tâche le développement de modules de traitements d'image et de capture. La version sur laquelle ils travailleront disposera d'une interface qui fournira de nombreux outils qui permettent de faciliter leur travail. Cette version permettra de charger et décharger les plugins de façon dynamique. Les demandes pourront être entrées en lignes de commande en local. La vérification de l'exécution d'une chaîne de traitements, de façon précise, sera rendue possible par un mode pas à pas pour le retour visuel, et par un rendu détaillé des résultats du traitement. Version finale Le deuxième type d'utilisateurs concerne les opérateurs des entreprises dans lesquelles sera installé le système complet. Pour son utilisation l'interface sera réduite au minimum. Elle donnera accès à des fonctions simples comme démarrer et arrêter le système, visualiser les flux des caméras et à quelques liens comme le support technique de Percipio-robotics, éventuellement une aide en ligne ou hors ligne et les informations sur le soft. 23

24 7)Résultats Le développement de l'application a débuté il y a un mois. Aujourd'hui le logiciel remplit quelques-unes des fonctions principales. Il permet de charger les différents types de plugins et de traiter des chaînes de traitements demandées en local via l'interface de test. Sur les premiers tests, on peut remarquer des gains de performance significatifs par rapport à l'ancienne version. A noter qu'il sont en partie dûs aux outils utilisés, notamment une nouvelle version de la bibliothèque de vision. Ancienne version Nouvelle version Seuillage 7ms 1ms Détection de contours 9ms 2ms 24

25 5.Perspectives Mon stage étant actuellement au milieu de son déroulement, il reste encore beaucoup de chose à développer. Le module de communication Le module de communication n'a pas encore été conçu, deux possibilités sont envisageables quand à son implémentation : utiliser les fonctions C natives ou utiliser les méthode fournies par Qt. Une étude comparative des performances des deux solutions serait intéressante afin de réaliser le meilleur choix. Il est aussi question de concevoir un module, prenant place entre le module de communication et le module de traitement, qui permette de traduire dans le langage défini des demandes formulées avec un nouveau langage plus simple et de plus haut niveau. Les demandes reçues pourraient de plus être très modulaires et très simples. Ce nouveau langage permettra de spécifier des chaînes de traitements relativement courantes de façon simplifiée en s'affranchissant de la complexité de composition de la chaîne. Par exemple : Illustration 8: schéma de fonctionnement du module de traduction Test Une méthode de test devra être utilisée afin de garantir la robustesse du logiciel. 25

26 Interface utilisateur Une fois les fonctionnalités définies implémentées, je pourrai soumettre des idées pour améliorer l'expérience utilisateur. Fichier de configuration L'utilisation d'un fichier de configuration externe au programme pourrait être intéressante. Celui-ci pourra servir à définir, notamment, les plugins à utiliser et les paramètres d'initialisation des caméras pour l'utilisation du système intégré chez le client. De cette façon, si un besoin d'évolution se fait sentir, cela permettra de mettre à jour facilement et à distance l'installation du client. Documentation Je devrai également fournir une documentation complète du logiciel afin de faciliter sa compréhension, chose importante du fait que le soft sera utilisé par d'autres développeurs qui réaliseront les plugins nécessaires à la mise en place de nouveaux systèmes. 26

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Présentation du projet:

Présentation du projet: : Le but du projet est de réaliser le fonctionnement d'un jeu d échec valide. Plus spécifiquement, il consiste à implémenter l'organisation générale du jeu, et le suivi des règles du mouvement des pièces.

Plus en détail

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC! PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC! MAGIX PC Check & Tuning 2010 est la solution logicielle complète pour l'analyse, la maintenance et l'accélération

Plus en détail

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours 0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage 3- Organisation du cours Le présent cours constitue une introduction pour situer le langage C++, beaucoup des concepts

Plus en détail

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova I. Introduction Dans une période où la plasticité peut aider à réduire les coûts de développement de projets comme des applications mobile,

Plus en détail

Maîtrisez Qt 5 Guide de développement d'applications professionnelles

Maîtrisez Qt 5 Guide de développement d'applications professionnelles Introduction 1. Objectifs et méthode 15 2. Glossaire 16 3. Qt, qu'est-ce? 18 3.1 Histoire 19 3.2 Compatibilité 20 3.3 Notoriété 21 3.4 Bibliothèque ou framework? 21 3.5 Documentation 21 3.6 Que peut-on

Plus en détail

PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille

PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille Résumé de PFE PROJET DE FIN D ÉTUDES Asservissement visuel d un robot parallèle à câbles pour la réalisation d une fresque verticale de grande taille Introduction Dans le domaine de la robotique, la robotique

Plus en détail

Programme de la licence informatique, université de Caen http://www.info.unicaen.fr

Programme de la licence informatique, université de Caen http://www.info.unicaen.fr Programme de la licence informatique, université de Caen http://www.info.unicaen.fr Unité Systèmes d'information CM : 45h - TD : 60h - TP : 12h - Coeff 2 Systèmes de Gestion de Bases de Données Modéliser

Plus en détail

Hyper File 7 en mode réseau sur un serveur Windows NT4 / Windows 2000 / Windows 2003 : Optimisation de la vitesse I. Préambule

Hyper File 7 en mode réseau sur un serveur Windows NT4 / Windows 2000 / Windows 2003 : Optimisation de la vitesse I. Préambule en mode réseau sur un serveur Windows NT4 / Windows 2000 / Windows 2003 : Optimisation de la vitesse I. Préambule Ce document est fourni à titre purement informatif et n'est pas contractuel. Ces informations

Plus en détail

Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet

Cahier de charges (Source : Java EE - Guide de développement d'applications web en Java par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module Site Web dynamique JSP / Servlet Sujet : betaboutique Soutenance le 04 / 01 /2013 &

Plus en détail

Compte-Rendu SDL. «Reprise de l application de gestion de listes de présences des alternants»

Compte-Rendu SDL. «Reprise de l application de gestion de listes de présences des alternants» Compte-Rendu SDL Auteurs : BOUTROUILLE Alexis BAILLEUL Pierre Tuteur : Ioan Marius Bilasco «Reprise de l application de gestion de listes de présences des alternants» Master MIAGE 1 Année 2012/2013 1 Remerciements

Plus en détail

la réalisation d'un site d'inscriptions

la réalisation d'un site d'inscriptions Rapport du projet la réalisation d'un site d'inscriptions Réaliser par : Fatimaezzahra Yazough Année :2014 /2015 1/9 Yazough INTRODUCTION Le but de ce projet et de réaliser une maquette de site web pour

Plus en détail

Logiciel EV3 LEGO MINDSTORMS Education

Logiciel EV3 LEGO MINDSTORMS Education Robot éducateur : LEGO Education a le plaisir de vous présenter Robot éducateur, une sélection d'activités pédagogiques vous permettant de prendre en main votre EV3 LEGO MINDSTORMS Education de façon structurée

Plus en détail

Projet Master 1ere année Sujet n 13 :

Projet Master 1ere année Sujet n 13 : BANON Daniel CAPON François CARRERE Jean-Charles IUP Avignon Master 1 TAIM Projet Master 1ere année Sujet n 13 : Interactions audio sur le site web du LIA A l attention de messieurs Nocéra, Favre et Larcher

Plus en détail

Fonctionnalités de développement

Fonctionnalités de développement 163 Chapitre 5 Fonctionnalités de développement 1. Optimisation des applications ASP.NET Fonctionnalités de développement 1.1 Présentation de ASP.NET ASP.NET est un ensemble de technologies créé par Microsoft

Plus en détail

Ateliers Pyduino par X. HINAULT www.mon-club-elec.fr

Ateliers Pyduino par X. HINAULT www.mon-club-elec.fr Pour comprendre : comparatif Arduino+shields / Pyduino + mini-pc Ateliers Pyduino par X. HINAULT www.mon-club-elec.fr Tous droits réservés 2013. Dans ce document, afin de vous permettre de prendre conscience

Plus en détail

F1 - Utilisez le Bureau Virtuel pour l'enseignement et le Travail Collaboratif p.5

F1 - Utilisez le Bureau Virtuel pour l'enseignement et le Travail Collaboratif p.5 Année 2013-2014 F1 - Utilisez le Bureau Virtuel pour l'enseignement et le Travail Collaboratif p.5 F2 - Utilisez l'environnement Numérique de Travail pour vos Enseignements p.6 F3 - Préparez une image

Plus en détail

Mieux développer avec. Qt Designer. Présenté par. KDevelop. Yassine CHAOUCHE

Mieux développer avec. Qt Designer. Présenté par. KDevelop. Yassine CHAOUCHE Mieux développer avec Qt Designer Présenté par Yassine CHAOUCHE & Tarik ALLA & KDevelop Sommaire K'est ce que c'est? (intro) Tour d'horizon (démo) Signaux et récépteurs Première application (démo) Conclusion

Plus en détail

Programme de formation

Programme de formation INSCRIVEZ VOUS Formations sélectionnées et financées par le FAFIEC Programme de formation mardi 16 septembre 2014 Les Métiers du Test Module 5.2 - Automatisation des tests fonctionnels : HP Unified Functional

Plus en détail

Typologie du logiciel. Typologie du logiciel. Ordinateur? ORDINATEUR. Computer = Hardware + Software. Ordinateur = Matériel + Logiciel

Typologie du logiciel. Typologie du logiciel. Ordinateur? ORDINATEUR. Computer = Hardware + Software. Ordinateur = Matériel + Logiciel Architecture Logicielle des Systèmes d Information (ALSI) Ordinateur? ORDINATEUR MATERIEL Computer = Hardware + Software Septembre 2010 Sources: GJL, Wikipédia,, Internet Ordinateur = Matériel + Logiciel

Plus en détail

Leica Application Suite

Leica Application Suite Leica Application Suite Macro Editor et Macro Runner (Éditeur de macros et Exécuteur de macros) Personnalisées et automatisées 2 Les instructions peuvent être momentanément suspendues» de manière optionnelle

Plus en détail

Le client/serveur repose sur une communication d égal à égal entre les applications.

Le client/serveur repose sur une communication d égal à égal entre les applications. Table des matières LES PRINCIPES DE BASE... 1 Présentation distribuée-revamping...2 Présentation distante...3 Traitements distribués...3 données distantes-rd...4 données distribuées-rda distribué...4 L'ARCHITECTURE

Plus en détail

Projet informatique UML-Cpp avec QT4

Projet informatique UML-Cpp avec QT4 Haute école spécialisée bernoise Haute école technique et informatique, HTI Section Electricité et système de communication Laboratoire de l informatique technique Projet informatique UML-Cpp avec QT4

Plus en détail

Conduite et Gestion de Projet Professionnel Cahier des charges Projet: Robot

Conduite et Gestion de Projet Professionnel Cahier des charges Projet: Robot Conduite et Gestion de Projet Professionnel Cahier des charges Projet: Robot Makhlouf OUBACHA Salima OUZZMAN Stevens RABEHAJA Armelle HOUNDJO Mercredi 04 février 2015 1 Table des matières 1 But du projet

Plus en détail

Catalogue Augmenté. Projet : Interfaces Multimodales

Catalogue Augmenté. Projet : Interfaces Multimodales Catalogue Augmenté Projet : Interfaces Multimodales Réalisé par Nicolas Martenet Patrick Terreaux Timothée Maret Semestre d'été 2006 Table des matières 1 Introduction... 3 2 Principe...3 2.1 Principe Global...

Plus en détail

Windows 8 Installation et configuration

Windows 8 Installation et configuration Editions ENI Windows 8 Installation et configuration Collection Ressources Informatiques Extrait 112 Windows 8 Installation et configuration Pour terminer l'application de l'image, nous devons configurer

Plus en détail

Guide d'installation de Citrix EdgeSight pour test de charge. Citrix EdgeSight pour test de charge 3.8

Guide d'installation de Citrix EdgeSight pour test de charge. Citrix EdgeSight pour test de charge 3.8 Guide d'installation de Citrix EdgeSight pour test de charge Citrix EdgeSight pour test de charge 3.8 Copyright L'utilisation du produit documenté dans ce guide est soumise à l'acceptation préalable du

Plus en détail

Conservation des documents numériques

Conservation des documents numériques Conservation des documents numériques Qu'est ce qu'un document numérique? Matthieu GIOUX matthieu.gioux@bnf.fr Contexte de la préservation des documents numériques Une croissance en expansion Développement

Plus en détail

Architecture Logicielle

Architecture Logicielle Architecture Logicielle Chapitre 3: UML pour la description et la documentation d une architecture logicielle Année universitaire 2013/2014 Semestre 1 Rappel L architecture d un programme ou d un système

Plus en détail

Systèmes d exploitation

Systèmes d exploitation Systèmes d exploitation Un système d exploitation (SE, en anglais Operating System ou OS) est un ensemble de programmes responsables de la liaison entre les ressources matérielles d un ordinateur et les

Plus en détail

1. INFORMATIQUE DANS LES DISCIPLINES, INFORMATIQUE DISCIPLINE

1. INFORMATIQUE DANS LES DISCIPLINES, INFORMATIQUE DISCIPLINE 29 UN PLAN DE FORMATION À L'INFORMATIQUE DE TOUS LES ÉLÈVES, DE L'ÉCOLE PRIMAIRE AU LYCÉE Note n 8 du groupe technique disciplinaire informatique - décembre 1991 - (principaux extraits) 1. INFORMATIQUE

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

Cours 7 : Les logiciels (Software)

Cours 7 : Les logiciels (Software) Cours 7 : Les logiciels (Software) Abdelkrim Zehioua 2éme année Licence Gestion Faculté des sciences Économiques et sciences de Gestion Université Constantine 2 Plan du cours Les logiciels Système d'exploitation

Plus en détail

Gestion d une flotte de robots Configuration et ordre de missions

Gestion d une flotte de robots Configuration et ordre de missions Document Rapport Version Version 1.0 Date 25/03/2008 Auteur Ahmed RADOUA M1 SET Gestion d une flotte de robots Configuration et ordre de missions INSSET UPJV 1 ième année de MASTER Spécialité : (Année

Plus en détail

FICHE DESCRIPTIVE LPIC-1 (LPI 101 et LPI 102)

FICHE DESCRIPTIVE LPIC-1 (LPI 101 et LPI 102) Prérequis : FICHE DESCRIPTIVE LPIC-1 (LPI 101 et LPI 102) Avoir les connaissances de base du fonctionnement de Linux et les systèmes d'exploitation Objectifs : Le premier niveau de certification Linux

Plus en détail

Environnement de programmation

Environnement de programmation Environnement de programmation 1.La programmation Les ordinateurs sont stupides! à un point dont on n'a pas idée. Ils ne réagissent ni ne répondent qu'à des situations ou à des données anticipées par le

Plus en détail

FICHE D ACTIVITE N 4 : APPLICATION SMARTPHONE DE GESTION DE FRAIS (ANDROID)

FICHE D ACTIVITE N 4 : APPLICATION SMARTPHONE DE GESTION DE FRAIS (ANDROID) FICHE D ACTIVITE N 4 : APPLICATION SMARTPHONE DE GESTION DE FRAIS (ANDROID) Table des matières I. Pôle de compétences concernées... 3 II. Circonstance et contexte... 3 III. Situation professionnelle et

Plus en détail

Chapitre 1. Notions de base

Chapitre 1. Notions de base The GIMP est un logiciel libre et gratuit dédié à la création et la manipulation d images. Au départ, il est prévu pour fonctionner sous des systèmes compatibles UNIX (Linux, par exemple).the GIMP a été

Plus en détail

Informatique pour Tous

Informatique pour Tous Informatique pour Tous Introduction et plan d'un cours en 15 chapitres François Guiberteau Introduction Analogie L'apprentissage de notions nouvelles, souvent abstraites, est complexe. L'informatique fait

Plus en détail

Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre. Partie I : Introduction Informatique industrielle A7-19571 Systèmes temps-réel J.F.Peyre Partie I : Introduction Plan de la première partie Quelques définitions Caractéristiques communes des applications temps-réel Exemples d

Plus en détail

FileMaker Pro 14. Utilisation d'une Connexion Bureau à distance avec FileMaker Pro 14

FileMaker Pro 14. Utilisation d'une Connexion Bureau à distance avec FileMaker Pro 14 FileMaker Pro 14 Utilisation d'une Connexion Bureau à distance avec FileMaker Pro 14 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054

Plus en détail

Guide de démarrage rapide

Guide de démarrage rapide Guide de démarrage rapide 1. À propos de ce guide Ce guide vous aide à installer et à commencer à utiliser BitDefender Security for Mail Servers. Pour des instructions détaillées, veuillez vous référer

Plus en détail

FORMATION «PLANNER» Le 10 Avril 2015

FORMATION «PLANNER» Le 10 Avril 2015 FORMATION «PLANNER» Le 10 Avril 2015 DROITS D'AUTEURS Licence Ce document est sous licence GNU Free documentation 1.3, hormis les dessins, ceci n'étant pas la production de Nâga. L'objet de cette Licence

Plus en détail

INTRODUCTION A LA PROGRAMMATION

INTRODUCTION A LA PROGRAMMATION INTRODUCTION A LA PROGRAMMATION Baccalauréat S - Spécialité Informatique et Sciences du Numérique 4.3 : Langages et programmation Objectifs A la fin de cette séquence l'élève est capable : d'expliquer

Plus en détail

Microsoft Application Center Test

Microsoft Application Center Test Microsoft Application Center Test L'outil de Test de performance des Sites Web Avec Visual Studio.NET, il est fourni une petite application qui permet de valider la performance de son site Internet ou

Plus en détail

NOTICE DE EOBD-FACILE

NOTICE DE EOBD-FACILE NOTICE DE EOBD-FACILE POUR ios (iphone/ipad) EOBD-Facile iphone/ipad 1 Outils OBD Facile copyright 1. Paramétrer le réseau WiFi pour l'interface ELM327 Depuis le menu Réglages puis WiFi, faites la configuration

Plus en détail

La mesure des écarts en Sciences de l'ingénieur

La mesure des écarts en Sciences de l'ingénieur 1 sur 6 24/05/2015 18:44 La mesure des écarts en Sciences de l'ingénieur Gil Sause, Dominique Laporte La problématique L'enseignement des sciences de l'ingénieur (SI) au lycée s'inscrit dans une continuité

Plus en détail

Projet de groupe B2 Développement - Rampart

Projet de groupe B2 Développement - Rampart Projet de groupe B2 Table des matières 1. FICHE SIGNALETIQUE DU GROUPE DE PROJET... 4 1.1. MEMBRES DU GROUPE... 4 2. RAPPORT DE PROJET... 5 2.1. REPARTITION DES TACHES... 5 2.1.1. Travail réalisé par Gautier

Plus en détail

Guide d'installation. Release Management pour Visual Studio 2013

Guide d'installation. Release Management pour Visual Studio 2013 1 Guide d'installation Release Management pour Visual Studio 2013 Le contenu de ce document est fourni «en l'état». Les informations et les points de vue contenus dans ce document, y compris les URL et

Plus en détail

Morgan Beau Nicolas Courazier

Morgan Beau Nicolas Courazier EPSI - 2010 Rapport projet IA Conception et mise en œuvre d un générateur de systèmes experts Morgan Beau Sommaire Cahier des charges 3 Présentation générale 4 Analyse et modélisation 6 Le moteur d inférence

Plus en détail

Instructions de mise à jour du micrologiciel des lecteurs SSD clients Crucial

Instructions de mise à jour du micrologiciel des lecteurs SSD clients Crucial Instructions de mise à jour du micrologiciel des lecteurs SSD clients Crucial Présentation Au moyen de ce guide, un utilisateur peut effectuer une mise à jour du micrologiciel sur les SSD Crucial Client

Plus en détail

Les nouveautés de la suite Windows Live Essentials 2011 (màj)

Les nouveautés de la suite Windows Live Essentials 2011 (màj) Les nouveautés de la suite Windows Live Essentials 2011 (màj) Mise à jour : nos confrères de MessLive.net ont publié un dossier consacré aux nouveautés de la suite Live. Les intéressés pourront notamment

Plus en détail

DESCRIPTION DE L APPLICATION GEOANALYSTE

DESCRIPTION DE L APPLICATION GEOANALYSTE CRENAM Centre de REcherches sur l'environnement et l'aménagement CNRS UMR5600 / Université Jean Monnet Saint Etienne Renaud.Mayoud (Renaud.Mayoud@univ-st-etienne.fr) Thierry.Joliveau (Thierry.Joliveau@univ-st-etienne.fr)

Plus en détail

Rapport de stage. Simulation d'algorithmes auto-stabilisants

Rapport de stage. Simulation d'algorithmes auto-stabilisants Université Joseph Fourier Département Licence Sciences & Technologies Rapport de stage Simulation d'algorithmes auto-stabilisants DIAKITE Moussa Laboratoire d'accueil : Verimag Directeur du laboratoire

Plus en détail

Travail collaboratif. Glossaire

Travail collaboratif. Glossaire Glossaire Ajax Traduction anglaise : Ajax (Asynchronous JavaScript And XML) AJAX est un combiné de différents langages de développement Web comme XHTML, JavaScript ou XML, il est fréquemment utilisé pour

Plus en détail

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Livre blanc Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Présentation Ce document examine la prise en charge de la programmabilité sur l'infrastructure axée

Plus en détail

Cahier de Charge. Master I Informatique parcours Ingénierie Logiciels. E-Service Système d information web «Gestion des services ensignants

Cahier de Charge. Master I Informatique parcours Ingénierie Logiciels. E-Service Système d information web «Gestion des services ensignants Master I Informatique parcours Ingénierie Logiciels Projet : E-Service Gestions des Enseignements Groupe 06 Cahier de Charge E-Service Système d information web «Gestion des services ensignants 2011-2012

Plus en détail

IFT630 Processus concurrents et parallélisme. Projet final Rapport. Présenté à Gabriel Girard

IFT630 Processus concurrents et parallélisme. Projet final Rapport. Présenté à Gabriel Girard IFT630 Processus concurrents et parallélisme Projet final Rapport Présenté à Gabriel Girard par Alexandre Tremblay (06 805 200) Pierre-François Laquerre (05 729 544) 15 avril 2008 Introduction Après plusieurs

Plus en détail

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique DUT Informatique, orientation Imagerie Numérique Domaine : Sciences, Technologies, Santé Mention : Informatique Organisation : Institut Universitaire de Technologie Lieu de formation : Le Puy en Velay

Plus en détail

AUTOMATISATION DES TESTS FONCTIONNELS - HP UNIFIED FONCTIONAL TESTING (UFT)

AUTOMATISATION DES TESTS FONCTIONNELS - HP UNIFIED FONCTIONAL TESTING (UFT) AUTOMATISATION DES TESTS FONCTIONNELS - HP UNIFIED FONCTIONAL TESTING (UFT) REF : CQL08 DURÉE : 5 JOURS OBJECTIFS Maîtriser la démarche d automatisation des tests Savoir automatiser les tests fonctionnels

Plus en détail

Fonctionnement du serveur Z39.50

Fonctionnement du serveur Z39.50 Fonctionnement du serveur Z39.50 Table des matières 1 Configuration du serveur...2 1.1 Comportement du serveur...2 1.2 Configuration de la traduction z39.50 -> base de données...2 1.3 Configuration du

Plus en détail

JXDVDTek - UNE DVDTHEQUE EN JAVA ET XML

JXDVDTek - UNE DVDTHEQUE EN JAVA ET XML BALLOTE Nadia FRIULI Valerio GILARDI Mathieu IUT de Nice Licence Professionnelle des Métiers de l Informatique RAPPORT DU PROJET : JXDVDTek - UNE DVDTHEQUE EN JAVA ET XML Encadré par : M. CRESCENZO Pierre

Plus en détail

201-8F4-ST Mathématiques appliquées à l informatique

201-8F4-ST Mathématiques appliquées à l informatique DESCRIPTION DES COURS DE FORMATION SPÉCIFIQUE TECHNIQUES DE L INFORMATIQUE (420.A0) 201-8F4-ST Mathématiques appliquées à l informatique Préalable : Mathématique TS ou SN 5 e ou équivalent Ce cours a pour

Plus en détail

Introduction. 1. Pourquoi utiliser un outil multiplateforme pour la programmation mobile?

Introduction. 1. Pourquoi utiliser un outil multiplateforme pour la programmation mobile? Introduction 1. Pourquoi utiliser un outil multiplateforme pour la programmation mobile? Depuis la sortie de l iphone, les smartphones sont devenus des ordinateurs à part entière. Et même si avant leur

Plus en détail

Exemple de projet. «Gestion de contacts»

Exemple de projet. «Gestion de contacts» Université Paul Valéry Montpellier 3 Antenne universitaire de Béziers L3 AES parcours MISASHS ECUE «Logiciels spécialisés» Exemple de projet «Gestion de contacts» G. Richomme Table des matières 1. Introduction...

Plus en détail

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

Plus en détail

Guide méthodique pour la formation pratique des apprentis concepteur / trice en multimédia

Guide méthodique pour la formation pratique des apprentis concepteur / trice en multimédia Guide méthodique pour la formation pratique des apprentis concepteur / trice en multimédia Version 1.0 31 mars 2003 Selon le règlement provisoire d apprentissage et d examen de fin d apprentissage du 20

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Programmation Avancée pour le Web

Programmation Avancée pour le Web L3 Informatique Option : ISIL Programmation Avancée pour le Web RAMDANI Med U Bouira 1 Contenu du module Introduction aux applications Web Rappels sur les sites Web Conception d une application Web Notion

Plus en détail

Bénéficiez d'un large choix d'applications novatrices et éprouvées basées sur les systèmes d'exploitation i5/os, Linux, AIX 5L et Microsoft Windows.

Bénéficiez d'un large choix d'applications novatrices et éprouvées basées sur les systèmes d'exploitation i5/os, Linux, AIX 5L et Microsoft Windows. 1. Le nouveau eserver i5 en bref Gérez plusieurs systèmes d'exploitation et environnements d'applications sur un seul serveur pour simplifier votre infrastructure et réduire les frais de gestion Simplifiez

Plus en détail

CONDUITE & GESTION DE PROJET

CONDUITE & GESTION DE PROJET LES THEMES DU PROGRAMME PEDAGOGIQUE CONDUITE & GESTION DE PROJET Techniques de gestion de projets Connaître le rôle d un chef de projet dans la conduite de projet. Les méthodes, les techniques et les outils

Plus en détail

Livre Blanc La Gestion des Actifs Informatiques. 2015 Landpark SAS. Tous droits réservés

Livre Blanc La Gestion des Actifs Informatiques. 2015 Landpark SAS. Tous droits réservés Livre Blanc La Gestion des Actifs Informatiques Table des matières Synthèse... 3 Connaître rapidement vos objectifs et l'analyse de vos besoins... 4 Connaître votre parc informatique et d'équipements avant

Plus en détail

GANTTPROJECT. Julien TENDERO

GANTTPROJECT. Julien TENDERO GANTTPROJECT Julien TENDERO SOMMAIRE : 1 -Introduction : 2 -Installation et utilisation : 3-Édition, compilation et exécution dans Eclipse : 4-Améliorations apportées : 5-Conclusion: 1 -Introduction :

Plus en détail

RAPPORT DE STAGE Calcul parallèle sur GPU

RAPPORT DE STAGE Calcul parallèle sur GPU Université Joseph Fourier Département Licence Sciences & Technologie RAPPORT DE STAGE Calcul parallèle sur GPU D Aguanno Carlotta Laboratoire d accueil : INRIA Directeur du laboratoire : GROS Patrick Responsable

Plus en détail

Introduction à l'algorithmique et à la programmation avec Python

Introduction à l'algorithmique et à la programmation avec Python Introduction à l'algorithmique et à la programmation a... http://tiprof.fr/algprog-python/index.php?etat=voir Introduction à l'algorithmique et à la programmation avec Python Ce cours est une initiation

Plus en détail

trigonométrie équations mécanique homographie vision pas ordinateur

trigonométrie équations mécanique homographie vision pas ordinateur robotique algorithmes simulation modélisation vecteurs géométrie analytique informatique cinématique inverse produit scalaire Rapport de stage trigonométrie équations mécanique Laboratoire Informatique

Plus en détail

Unité de formation 1 : Structurer une application. Durée : 3 semaines

Unité de formation 1 : Structurer une application. Durée : 3 semaines PROGRAMME «DEVELOPPEUR LOGICIEL» Titre professionnel : «Développeur Logiciel» Inscrit au RNCP de niveau III (Bac+2) (JO du 23 Octobre 2007) (32 semaines) Unité de formation 1 : Structurer une application

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Plan. Le multimédia embarqué: Généralités (1/2) Les systèmes embarqués. Systèmes embarqués. Android. Programmer sous Android

Plan. Le multimédia embarqué: Généralités (1/2) Les systèmes embarqués. Systèmes embarqués. Android. Programmer sous Android Le multimédia embarqué: Laurent Bonnet Fabien Devos Manuel Garnier Pierre Viau SFFS -2 décembre 2008 Encadrant : Marie-Jo Pedrono Systèmes embarqués Généralités Plan L embarquémultimédia Les smartphones

Plus en détail

Illustrator Initiation

Illustrator Initiation Illustrator Initiation PAO - Logiciel de Dessin Apprendre à utiliser les fonctionnalités d'illustrator pour concevoir des illustrations de très haute qualité. Maitriser les notions de formats de fichiers

Plus en détail

APPLICATIONS JAVA. 1. Android. Android Partie I. Développement d'activités Java sous Android

APPLICATIONS JAVA. 1. Android. Android Partie I. Développement d'activités Java sous Android APPLICATIONS JAVA Android Partie I Ivan MADJAROV - 2014 Applications Java sous Android IvMad, 2011-2014 2 1. Android Développement d'activités Java sous Android L'objectif principal de ce cours est de

Plus en détail

PFE Télécommunications. Pré-rapport à l'issue des 6 premières semaines de stage. Page 1 sur 5 1 %

PFE Télécommunications. Pré-rapport à l'issue des 6 premières semaines de stage. Page 1 sur 5 1 % PFE Télécommunications Pré-rapport à l'issue des 6 premières semaines de stage!"!"#$%&' ()*()!")+")# (#),()-,)*)"-./0 1 ()*()!")+-)# % 23 &0 )14) 56 7$8797%77:7' '72 Page 1 sur 5 Contexte Les centres de

Plus en détail

Préface. Table des matières

Préface. Table des matières Table des matières Qu'est Ce Que l'edi NetBeans?... 1 Ce Qui Rend l'edi NetBeans Spécial... 2 Ce Qui Vient Avec l'edi NetBeans... 3 Ce Que Ce Livre Vous Apportera... 3 Comment Utiliser Ce Livre... 4 NetBeans

Plus en détail

Les logiciels indispensables à installer sur votre ordinateur

Les logiciels indispensables à installer sur votre ordinateur Vous avez réinstallé Windows, vous venez d acquérir un nouvelle ordinateur, vous voilà donc avec un beau Windows tout propre, tout neuf et surtout tout vide. Il faut reconnaître que Windows fraîchement

Plus en détail

Qlik Sense Desktop. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés.

Qlik Sense Desktop. Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik Sense Desktop Qlik Sense 2.0.2 Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Copyright 1993-2015 QlikTech International AB. Tous droits réservés. Qlik, QlikTech, Qlik Sense,

Plus en détail

SOMMAIRE. I. Introduction 02. II. Glossaire 03 a. Glossaire technique 03 b. Glossaire fonctionnel 04

SOMMAIRE. I. Introduction 02. II. Glossaire 03 a. Glossaire technique 03 b. Glossaire fonctionnel 04 SOMMAIRE I. Introduction 02 II. Glossaire 03 a. Glossaire technique 03 b. Glossaire fonctionnel 04 III. Présentation de l'association 05 a. Présentation juridique et géographique 05 b. Présentation de

Plus en détail

MANUEL D' UTILISATION

MANUEL D' UTILISATION MANUEL D' UTILISATION Table des matières Présentation...2 Introduction...2 Matériel nécessaire...2 Logiciel nécessaire...3 Partie A : Installation et Mise en oeuvre du matériel et logiciel...4 Partie B

Plus en détail

Analyseur syntaxique C# pour PADL

Analyseur syntaxique C# pour PADL Université de Montréal Projet Ift3150 Analyseur syntaxique C# pour PADL Projet ift3150 Analyseur syntaxique C# pour PADL Page 0 sur 15 Table des matières Introduction I. Énoncé A. Bénéfices attendus B.

Plus en détail

Retrouver de vieux programmes et jouer sur VirtualBox

Retrouver de vieux programmes et jouer sur VirtualBox CHAPITRE 3 Retrouver de vieux programmes et jouer sur VirtualBox Ce chapitre présente des notions avancées de VirtualBox. Elles permettront de réaliser des configurations spécifiques pour évaluer des systèmes

Plus en détail

Une interface graphique de modélisation basée sur le formalisme de Forrester

Une interface graphique de modélisation basée sur le formalisme de Forrester Une interface graphique de modélisation basée sur le formalisme de Forrester un plugin de modélisation GVLE Patrick Chabrier INRA (Institut National de la Recherche Agronomique) (INRA) Stage Forrester

Plus en détail

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12 GTK+ GLADE Page 1 sur 12 SOMMAIRE INTRO 3 Présentation de GTK+ 3 Présentation de GLADE 3 GTK+ 4 Installation 4 Les Widgets 4 Le système de hiérarchie 5 Les signaux 6 GLADE 7 Installation 7 L interface

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

modélisation solide et dessin technique

modélisation solide et dessin technique CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir

Plus en détail

CONTENU PEDAGOGIQUE LPIC-1 (LPI 101 et LPI 102)

CONTENU PEDAGOGIQUE LPIC-1 (LPI 101 et LPI 102) CONTENU PEDAGOGIQUE LPIC-1 (LPI 101 et LPI 102) Prérequis : Avoir les connaissances de base du fonctionnement de Linux et les systèmes d'exploitation Objectifs : Le premier niveau de certification Linux

Plus en détail

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality Intervenants Thomas d'erceville Project Manager Christian NGUYEN Practice Manager IT Quality 2 14/04/2015 De l'assurance qualité à l'ingénierie des tests logiciels 1. Contexte général des tests mobiles

Plus en détail

Analyse et conception des Systèmes d Information. La démarche Merise : La Production Logicielle

Analyse et conception des Systèmes d Information. La démarche Merise : La Production Logicielle Analyse et conception des Systèmes d Information La démarche Merise : La Production Logicielle La production du logiciel Place, objectifs et principes directeurs Christophe.Nicolle@u-bourgogne.fr Introduction

Plus en détail

Contribution à la mise en service d'une ferme de serveurs connectée à une grille de calcul pour la physique des hautes énergies

Contribution à la mise en service d'une ferme de serveurs connectée à une grille de calcul pour la physique des hautes énergies Contribution à la mise en service d'une ferme de serveurs connectée à une grille de calcul pour la physique des hautes énergies Charlier Fabrice 2è licence en informatique Année Académique 2005-2006 Plan

Plus en détail