Traitement de l image Détection de droite



Documents pareils
Un ordinateur, c est quoi?

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Installer des périphériques

AUTOPORTE III Notice de pose

Coffret Distributeur de DJ10: Distributeur de jetons (Avec PC embarqué Siemens et suite logicielle)

Leçon 1 : Les principaux composants d un ordinateur

Projet Robot Centaure

Procédure appropriée pour éditer les diagrammes avec ECM Titanium

livreblanc REALISATION D UN RESEAU INFORMATIQUE AVEC L OFFRE DE COMPOSANT FOLAN CLASSIC LAN

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

GUIDE D UTILISATION ADSL ASSISTANCE

Ecran programmable. Testez la différence grâce. à sa puissance, sa rapidité. et ses possibilités réseaux

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

COPY. Picture Style Editor Ver. 1.4 MODE D EMPLOI. Logiciel de création de fichiers de style d image. Contenu de ce mode d emploi

Manuel Utilisateur Chariot odys.sante-lorraine.fr

nom : Collège Ste Clotilde

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE. Bonne utilisation à toutes et tous! UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Vous allez changer d avis sur les ordinateurs

Chapitre 13 Numérisation de l information

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

EXCEL TUTORIEL 2012/2013

Découverte de l ordinateur. Partie matérielle

Utilisation du visualiseur Avermedia

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Quel PC pour quels usages? 1) PC de Bureau ou Portable? Les différents types de portables. - Les ultra-portables. - Les portables généralistes

Guide d installation & de démarrage Gamme Aqua PC Version AquaPro

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

INSTALLATION MODULE WEB

Troisième projet Scribus

Organiser le disque dur Dossiers Fichiers

Fascicule 1.

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

NOTRE OFFRE GLOBALE STAGES INTER-ENTREPRISES

Chapitre 18 : Transmettre et stocker de l information

CENTRALE DE SURVEILLANCE EMBARQUEE MULTIMEDIA

The Grid 2: Manuel d utilisation

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Projet en nouvelles technologies de l information et de la communication

Introduction à l informatique en BCPST

Mode d emploi pour lire des livres numériques

Cahier des Clauses Techniques Particulières

SYSTEME D ALARME CONNECTE. Guide d installation et d utilisation

Table des matières A. Introduction... 4 B. Principes généraux... 5 C. Exemple de formule (à réaliser) :... 7 D. Exercice pour réaliser une facture

Réalisation de cartes vectorielles avec Word

COUR D APPEL DE LYON PROCEDURE INFORMATIQUE IMPRIMANTES. Imprimantes SAR de Lyon / Novembre 2007 Page 1 sur 14

Premiers Pas avec OneNote 2013

Créer un premier document avec Pages

Prise en main. Prise en main - 0

Association UNIFORES 23, Rue du Cercler LIMOGES

Portier Vidéo Surveillance

T.P. 7 : Définir et contrôler un système d allumage statique

Retrouver de vieux programmes et jouer sur VirtualBox

Manuel de mise en page de l intérieur de votre ouvrage

1 Avant propos Le réseau informatique Le câble Les connecteurs La norme de câblage EIA/TIA 568B...

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

L informatique pour débutants

Centrale d alarme DA996

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2

Fax Server. Blue Line IP ISDN ISDN PRI

Brasseur VDI multimédia 8 RJ45

TP 7 : oscillateur de torsion

IV- Comment fonctionne un ordinateur?

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

COLLEGE ADRIEN CERNEAU

Guide d utilisation 2012

Filtres maîtres et distribués ADSL

LES TOUT PREMIERS PAS

Modules Multimédia PAO (Adobe)

Le multiplexage. Sommaire

Utiliser le site learningapps.org pour créer des activités interactives

Manuel d utilisation Alarme Auto na-2018 Attention :

ROTOLINE NOTICE DE POSE

Révision salariale - Manager

1AN. e n 19" FicheS Techniques. PLV - Dynamique. caractéristiques techniques. dimensions dela structure

Structure de base d un ordinateur

Belgacom Forum TM 3000 Manuel d utilisation

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

INFO 2 : Traitement des images

Configurer et sécuriser son réseau sans fil domestique

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

Guide de programmation FLEXIVOZ PABX OD308

SpeechiTablet Notice d utilisation

«Connais toi toi-même comme l as dit Socrate!»

UNIVERSITE BORDEAUX - MONTAIGNE. Projet HK_Lime

Enseignement, Handicap et tablette tactile

Infolettre #18 : Les graphiques avec Excel 2010

Utilisation de Sarbacane 3 Sarbacane Software

1S9 Balances des blancs

UP 588/13 5WG AB13

NUGELEC. NOTICE D'UTILISATION DU B.A.A.S. du type Ma - STI / MaME - STI. pages. 1 introduction 2. 2 encombrement 3 fixation

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

Projet de synthèse de l'électronique analogique : réalisation d'une balance à jauges de contrainte

TIC INFORMATIQUE Ce que je dois retenir

CCTV. Montage simple et rapide Solutions pour tous types d applications Composants Intégration avec les portiers d interphone

Transcription:

51, rue Barthélémy de Laffemas 26 901 Valence Cedex 9 ZA Les Gouvernaux II 26 120 Chabeuil Traitement de l image Détection de droite ROGER Mathieu Maître de stage : Professeur tuteur : M. Duccini Année universitaire 2006-2007 Rapport de Stage Rapport réalisé avec LATEX

Note de confidentialité La diffusion de ce document ainsi que de ses annexes est limitée aux responsables du stage. Sa consultation par d autres personnes est soumise à l autorisation de l entreprise CREATIME.

Remerciement Je tiens à remercier : M. ASTIC pour m avoir pris en stage dans son entreprise. M. DUCCINI pour son aide lors de sa visite et surtout pour ses cours de C M. HILLAIRE ET M. BASSET pour leurs aides en programmation et électronique.

Table des matières Introduction 6 1 L entreprise 7 1.1 Historique............................... 7 1.2 Domaines d activités......................... 8 1.3 Le personnel et les clients...................... 9 2 Traitement de l image 11 2.1 Choix du matériel et du système................... 11 2.2 Installation du système et utilisation des entrées/sorties...... 12 2.3 Interfaçage de la webcam....................... 13 2.4 La bibliothèque graphique...................... 15 2.5 La transformée de Hough....................... 18 2.6 Les interfaces visuelles........................ 20 3 Travaux annexes 23 3.1 Le site Web de l entreprise...................... 23 3.1.1 Création du design...................... 23 3.1.2 La bibliothèque de génération XHTML........... 25 3.1.3 Le formulaire d envoie de mails............... 25 3.1.4 L ajout de produits...................... 26 3.2 Moteur de recherche des circuits................... 27 3.3 Le câblage du réseau téléphonique et informatique......... 27 3.3.1 la topologie du réseau.................... 28 3.3.2 Le câblage des élements................... 29 Conclusion 32 Bibliographie 33 Glossaire 34

Table des figures 1.1 Télécommande 433MHz pour treuil forestier plus récepteur (portée 100m). 9 1.2 Boîtier de commande de phare haute puissance pour aéronautique.. 9 1.3 Pyramides en bois massif incluant une électronique de gestion du temps. Utilisé pour la médecine Reiki..................... 9 1.4 Terminal Marketing Support (TMS), support permettant d effectuer des sondages................................ 9 2.1 Image rendu par la caméra en YUV.................. 14 2.2 Image en RVB à partir de celle en YUV................ 14 2.3 Traitement 1 : Suppression de la partie du haut de l image...... 15 2.4 Traitement 2 : Suppression de la composante bleu.......... 16 2.5 Traitement 3 : Seuillage de l image.................. 17 2.6 Traitement 4 : Seuillage sur les trois composantes........... 17 2.7 Exemple de tableau accumulateur, en x sont présent les ρ, en y les θ, et en z l accumulation........................... 19 2.8 Graphe représentant trois point dans le plan polaire, le point commun est la droite où ils se coupent..................... 19 2.9 Interface de test des différentes fonctions............... 20 2.10 Interface graphique avec affichage de l état pour le client....... 22 3.1 Nouveau site web de l entreprise.................... 24 3.2 Site Web avec les découpes marquées en bleu et rouge........ 24 3.3 Topologie des réseaux de CREATIME................. 29 3.4 Représentation de la baie de brassage................. 30 3.5 Cablâge d une prise, partie 1/3 : Les différents éléments........ 30 3.6 Câblage d une prise, partie 2/3 : L insertion des fils.......... 30 3.7 Câblage d une prise, partie 3/3 : Le clippage de l ensemble...... 30 3.8 Baie de brassage de CREATIME................... 31

Introduction Etant en fin de cycle de DUT Réseaux et Télécommunications à l IUT Pierre- Mendès-France de Valence, j ai été amené à effectuer un stage de fin de deuxième année, pour finaliser ma formation. J ai effectué celui-ci à l entreprise CREATIME à Chabeuil. CREATIME est un bureau d étude en Informatique, Mécanique et Electronique, celle-ci travaille beaucoup dans l informatique embarquée grâce au microcontrôleur PIC. De plus, CREATIME est en pleine expansion car un nouveau bâtiment est en cours de construction. Le sujet de mon stage était la refonte du site Web et le câblage du réseau du nouveau bâtiment. La construction de celui-ci étant plus lente que prévu, j ai donc travaillé sur un autre projet : un système de reconnaissance d images, ce système doit être capable de détecter des jeunes pousses de maïs (50 cm au maximum) parmi les mauvaises herbes, grâce à un ordinateur et une webcam embarqués sur un tracteur, de manière à pouvoir passer la bineuse avec une autocorrection de la trajectoire en cas de déviation. Mon rapport va donc se dérouler en trois parties : tout d abord nous verrons la présentation de l entreprise, ses clients, ses produits,... Ensuite nous nous pencherons sur le système de reconnaissance d images : analyse des besoins matériels, analyse des besoins logiciels, méthodes utilisées pour la reconnaissance,... Et enfin nous terminerons par tous les travaux annexes que j ai effectué : refonte du site Web, création d un moteur de recherche, câblage du réseau du nouveau bâtiment.

1. L entreprise 1.1 Historique Fondée en 1994, l entreprise CREATIME (Créations Réalisations Etudes Automatismes Techniques Informatique Mécanique Electronique) fut créée sous le nom d ERIME (Etudes Réalisations Informatique Mécanique Electronique). Celleci dût changer de nom car une entreprise se nommait ERIM, elle opta donc pour le nom que l on connait actuellement. A ce jour l entreprise emploie 9 salariés et est une SARL au capital de 30490 e. Le directeur, M. Astic, possède une double compétence : un DUT Informatique ainsi qu un DUT Mécanique & Productique, l électronique ne possédant quasiment plus aucun secret pour lui. Celui-ci créa ERIME dans le sous-sol de sa maison. Lors de sa création, l activité principale de l entreprise était la réalisation de bancs de test in-situ principalement pour l entreprise Crouzet. Au bout de 6 ans les entreprises n investissant plus beaucoup dans ces produits, CREATIME augmenta son domaine d activités en fabriquant ses propres cartes électroniques pour différents usages tels que les télécommandes forestières (télécommandes permettant de contrôler un treuil). Cette même année, en août 2000, celle-ci investit dans des locaux de 100m 2 qu elle occupe encore actuellement. Lors du premier semestre 2007, CREATIME fait construire un deuxième bâtiment de 200m 2 accolé au premier. De manière à réduire les coûts, M. Astic ainsi que les stagiaires et employés ont beaucoup participé à la réalisation d ouvrages notamment pour les travaux d intérieur (peinture, pose de plastique protecteur au sol,...) et pour ma part au câblage des réseaux informatique et téléphonique (traçage des câbles, poses des prises,...). Ces locaux devraient être fonctionnels d ici la fin du mois de Juin 2007.

1. L entreprise 8 1.2 Domaines d activités L entreprise CREATIME est spécialisée dans les études et réalisations informatique, électronique et mécanique : Dans le domaine de la mécanique, CREATIME produit des dessins industriels ou encore des ensembles de précision tels que des cartes de test où les picots viennent faire contact sur une pastille précise située sur la carte ou encore des solutions pneumatiques, comme une presse à découper le papier. En matière d informatique embarquée ou non, l entreprise développe des logiciels principalement pour microcontrôleur PIC 1 tels que des circuits de commande de vannes pour l agriculture ou encore des balises au sol télécommandées pour l armée. L entreprise est aussi spécialisée dans la conception électronique, elle développe donc toute l électronique nécessaire autour des PICs. Elle réalise aussi l implantation des composants sur des cartes mono ou multicouches, de la conception à la réalisation, c est-à-dire que celle-ci effectue grâce a des logiciels de CAO 2 le routage des cartes ainsi que le soudage des composants sur la carte une fois celle-ci réalisée physiquement. CREATIME propose un large pannel de prestations : étude de faisabilité, création du cahier des charges, développement, prototypage, homologation et production. Ainsi elle propose aux entreprises la réalisation d un produit du cahier des charges, en prenant en compte toutes les contraintes, et ainsi fournir des documents téchniques de la réalisation finale, voire s occuper de la production.

1. L entreprise 9 Voici quelques produits de l entreprise : Fig. 1.1 Télécommande 433MHz pour treuil forestier plus récepteur (portée 100m). Fig. 1.2 Boîtier de commande de phare haute puissance pour aéronautique Fig. 1.3 Pyramides en bois massif incluant une électronique de gestion du temps. Utilisé pour la médecine Reiki Fig. 1.4 Terminal Marketing Support (TMS), support permettant d effectuer des sondages 1.3 Le personnel et les clients CREATIME est une entreprise qui emploie 8 personnes : M. Olivier ASTIC : Directeur de l entreprise, il s occupe principalement des études mécaniques, et supervise en même temps les différents projets, il possède de fortes connaissances dans de nombreux domaines. M. Michel BROUX : Il se consacre essentiellement à l aspect commercial des études réalisées par la société. Il apporte une grande expérience sur le plan électronique à l entreprise.

1. L entreprise 10 Mme. Marie GIRONDEL et Mme Marise BRUNEL : Elles réalisent tous les montages et câblages, aussi bien en électronique qu en mécanique, et gèrent la programmation des microcontrôleurs. M. Serge BASSET et M. Nicolas HILAIRE : Techniciens en informatique et en électronique, ils interviennent dans le développement de nombreux projets. M. Vincent WATEAU : Analyste programmeur maîtrisant plusieurs langages dont C, C++, turbo pascal...et s occupe également du routage des cartes. Mme. Fabienne ARU : Elle se charge de l administration et du secrétariat de la société. CREATIME possède de nombreux clients, voici une liste non exhaustive : AERO-CONSULTING : Cette société est implantée sur l aéroport de Chabeuil. Elle est spécialisée dans les systèmes de vision nocturne pour les aéronefs (hélicoptères, avions, drones). CROUZET APPLIANCE CONTROLS : Cette société est le 3éme constructeur européen pour la conception et la production de programmateurs hybrides, lesquels combinent les meilleurs éléments des programmateurs électromécanique et des timers électronique. EUROCOPTER : C est l un des 3 plus grands groupes aérospatiaux du monde, formé en 1992 à partir de la fusion des divisions hélicoptère du français Aérospatiale Matra et de l allemand DaimlerChrysler Aérospace AG (DASA). THALES Avionics : Le groupe THALES Avionics est leader européen de l électronique civile et militaire. S appuyant sur la dualité civile/militaire de ses technologies, le groupe sert trois grands marché : l aéronautique, la défense, et les technologies de l information. Autres références : LUXALP, IAR Roumanie, MFA, MTL, SAFI, SIFEL- MET, SPIT, TAKOSAN Eléctronics, USITEC.

2. Traitement de l image Lors de mon stage, ma tâche principale fût de créer un système de traitement d images. Celui-ci a pour objectif d être embarqué dans un tracteur agricole et permettra de déplacer la bineuse 3 à droite ou à gauche de manière à ce qu elle ne fauche pas une partie de la récolte sur plusieurs mètres. Le système que j ai dût développer regarde par l intermédiaire d une webcam les raies de plants proche et déplace, si nécessaire, la bineuse via des vérins pour la replacer correctement. 2.1 Choix du matériel et du système Le module destiné à être embarqué sur un tracteur doit : être de taille réduite, consommer le moins possible du point de vue électrique, être capable de résister à l environnement (champs agricoles), Pour répondre à cette première contrainte, l entreprise avait opté pour un format de carte mère nommée PC/104, ces cartes possèdent l avantage d être de taille très réduite (90 x 95 mm), les inconvénients de ces cartes sont leur faible puissance de calculs ainsi que leur prix (260 epour 333Mhz). Avec mon aide, nous avons décidé d opter pour une carte mère mini-itx (170 x 170 cm), certes la carte est nettement plus grande, mais la puissance aussi : 1Ghz, avec 6 ports COM 4 et interface DIO que nous aborderons plus tard. Le prix de ces cartes mères est aussi nettement moins cher : 180 e pour 1Ghz. Leur second avantage est que ces cartes ont été conçues à la base pour l informatique embarquée et notamment dans les voitures pour servir de lecteur vidéo/audio et divertissement. De ce fait, beaucoup d accessoires automobiles sont disponibles pour ces cartes tels que des alimentations acceptant les tensions de la batterie (c est à dire de 6 à 24V), ou encore des boitiers dédiés à cette utilisation.

2. Traitement de l image 12 La gamme de cartes mères ITX étant relativement large, nous avons opté pour une carte mère possédant un lecteur de carte Compact Flash 5 relié directement au bus IDE 6, cela permet de nous détacher de la contrainte mécanique des disques dur : ceux-ci n auraient pas supportés longtemps les vibrations et chocs dû aux déplacements du tracteur dans le champ. Enfin pour un traitement le plus fiable possible, une interface d acquisition d image de qualité est nécessaire, il faut aussi qu elle ne soit pas trop complexe à utiliser pour éviter de ralentir le PC, nous avons donc opté pour un Webcam Logitech QuickCam Pro 4000, son avantage est qu elle travaille en 640x480 pixels ce qui est relativement élevé pour une webcam. 2.2 Installation du système et utilisation des entrées/sorties Après avoir fait le choix du matériel, plusieurs contraintes logicielles sont apparues. La principale étant le choix du système d exploitation : le disque dur étant remplacé par une carte Compact Flash celle-ci possède donc un nombre de cycles d écriture limités, c est à dire que l on puisse effacer/réécrire chaque bits de la carte qu un certain nombre de fois, celui-ci devient ensuite inutilisable. Le nombre de cycles d écriture est donné par le constructeur, et est en général compris entre 200 000 et 300 000. Cela parait beaucoup mais c est en fait très peu, si l on compte que chaque système d exploitation stocke constamment des données sur le disque dur en quasi-permanence. Il m a donc fallu trouver un système d exploitation n accédant que très peu à cet espace. J ai donc décidé d opter pour une distribution SLAX (linux), en version Live-CD 7 que j ai installé sur la carte mémoire, cela permet donc de charger tous les modules en mémoire vive et de ne travailler que dans celle-ci à l instar des distributions Live-CD classiques. La première tâche que j ai dû accomplir sur cette machine, fût de réussir à faire sortir des données sur les ports DIO (Digital Input Output), en effet, nous

2. Traitement de l image 13 avons remarqué la présence d un connecteur sur la carte mère, qui possède 3 pins de sortie, 3 pins d entrée, 2 pins de masse. Ces ports nous permettrons de commander directement les vérins, sans passer par le port série couplé à un PIC, qui décode les trames émises dessus afin de savoir comment bouger les vérins, avec de simples transistors, entre les sorties DIO du PC et les vérins, pour amplifier le signal et éviter de provoquer un court-circuit sur la carte mère. Comme aucun driver n est disponible pour ces ports DIO, il m a donc fallut apprendre à écrire directement dans l adresse mémoire associée à ces ports, un programme exemple est disponible en annexe. 2.3 Interfaçage de la webcam Après l achat de tout le matériel nécessaire, il a fallu tout interfacer. La plus grosse difficulté que j ai eu fût de réussir à faire fonctionner la Webcam, il m a tout d abord fallu réussir à trouver un driver compatible avec celle-ci, car Logitech, bien qu étant une très bonne marque, ne fait principalement que des drivers propriétaire, c est-à-dire qu il faut obligatoirement le logiciel de Logitech pour que le matériel marche, malheureusement la marque à fait le choix de ne pas les développer pour les distributions de linux. Comme chacune de leur Webcam nécessite un driver différent, il m a fallu trouver en beaucoup de différents, qui étaient plus ou moins compatible avec la puce présente à l intérieur (de marque Phillips). Après l essai de plusieurs drivers j ai réussi à en trouver un qui était totalement compatible avec la caméra et qui ne prenait pas trop de temps pour acquérir une image : une bonne partie n acquérait que l image dans une résolution de 320 par 240 alors que celle-ci supporte le 640 par 480 ou prenait plus d une demi seconde pour prendre une image. Il m a ensuite fallu me plonger dans la documentation du driver pour savoir toutes les fonctions à utiliser pour configurer et prendre une photo. Sachant qu il fallait à tout prix que l image soit en 640 par 480 pour avoir la meilleure précision possible, ainsi que garder la balance des blancs automatique pour que la caméra gère la luminosité automatiquement en cas de changement brusque de lumière.

2. Traitement de l image 14 De plus, nous nous sommes rendu compte que la caméra ne nous rendait pas une image en RGB mais en YUV 4 :2 :0p. Le RGB est la méthode la plus commune et la plus simple de gestion des images : pour chaque pixel les trois composantes lumineuses (rouge, vert, bleu) sont séparée chacune sur un octet. Le problème est que la caméra nous rend l image en YUV 4 :2 :0p car il est assez difficile de faire des capteurs rouge, vert et bleu, de ce fait les fabriquant font un capteur de luminance (somme des trois composantes, nommée Y), U et V sont les chrominances obtenue en soustrayant la luminance du signal bleu pour le U et la luminance du signal rouge pour le V. Le 4 :2 :0 signifie que pour quatre informations de luminance, nous avons deux informations de chrominance U, suivit de quatre informations de luminance, suivit encore de deux informations de chrominance V. Le P quand à lui signifie planar, c est-à-dire que les zones Y, U et V sont séparée, celle-ci ne sont pas mises comme elle devrait l être dans le cas d une image classique. Pour vous illustrer ce qu est le planar, voici ci-dessous l image que me rend la webcam lors de l acquisition d une image ainsi que celle en RGB. Fig. 2.1 Image rendu par la caméra en YUV Fig. 2.2 celle en YUV Image en RVB à partir de Comme vous pouvez le voir les trois premières zones du haut représentent l image en luminance, suivit des six zones suivantes en dessous étant la chrominance U, suivit d encore six zone de chrominance V. Il nous a donc fallu développer une fonction permettant de passer du YUV 4 :2 :0p au RGB, après de nombreux

2. Traitement de l image 15 essais sans résultats corrects, nous avons décidé de chercher une fonction permettant d exécuter cette tâche. Cependant, nous en avons trouvé une seulement après plusieurs jour de recherche. Nous avons tenté de la comprendre mais celle-ci étaient tellement complexe que nous avons vite abandonné, ce qui nous intéressait réellement, c est que celle-ci marche. 2.4 La bibliothèque graphique Après avoir réussi à configurer tout le matériel correctement, et avoir eu une image en couleur de la part de la caméra, nous avons commencé à nous intéresser plus profondément à comment est-ce que le pourrait réussir à ne laisser sur l image que ce qui correspond plus ou moins à des herbes. Nous avons développé une multitude de fonctions de traitement de l image, je ne parlerais que de celles qui nous sont réellement utile pour notre application. Nous avons tout d abord mis au point une fonction qui nous permet de supprimer l horizon, on supprime le tiers de l image dans la partie haute. L horizon contenant souvent des arbres ou de la forte lumière, il contient donc beaucoup de lumière verte qui risquerait de nuire au traitement car le programme pourrait croire que ce sont des plants. Fig. 2.3 Traitement 1 : Suppression de la partie du haut de l image

2. Traitement de l image 16 J ai ensuite développé une fonction permettant de supprimer une composante de l image, cela permet de ne garder que les couleurs qui nous intéresse, par exemple nous avons remarqué qu il n y avait quasiment pas de bleu dans la couleur des plants, nous supprimons donc totalement la composante bleu de l image, pour cela nous parcourrons l image et mettons tous les octets concernant la composante bleu à zéro. Fig. 2.4 Traitement 2 : Suppression de la composante bleu Ensuite j ai développé une fonction de seuillage. Cette fonction permet de mettre à zéro la composante si celle-ci est inferieur à la valeur de seuillage ou à 255 (maximum), si celle-ci est supérieure à la valeur. Si on prend l exemple sur la composante verte, cela va mettre le vert au maximum si sa valeur est assez forte, ou à zéro si elle est faible. On effectue cette fonction sur les deux composantes restantes, on passe donc à une image à quatre couleurs (deux couleurs pour le rouge, et deux pour le vert).

2. Traitement de l image 17 Fig. 2.5 Traitement 3 : Seuillage de l image Pour finir j effectue un seuillage sur les trois composantes, dans notre cas l on veut que si le pixel contient du vert sans contenir ni de rouge, ni de bleu, on le met en blanc (les trois composante à 255 en décimal), sinon on met le pixel noir (les trois composante à zéro). Notre image étant déjà seuillée et la composante bleue supprimée, on a trois types de couleur possible à l écran : noir, rouge, vert, jaune (rouge plus vert). Cette fonction fera que seuls les pixels ne contenant que du vert seront marqué en blanc le reste en noir, on obtient grâce à cela beaucoup de points blanc sur l image que nous supposons être des plantes. Fig. 2.6 Traitement 4 : Seuillage sur les trois composantes

2. Traitement de l image 18 Vous pouvez ainsi remarquer sur cette dernière image qu il nous reste à la sortie une image monochrome, on se rend compte très facilement que les points blanc correspondent aux herbes et plants présent sur l image. Le gros problème est maintenant la détection des droites pour pouvoir calculé leurs ordonnées à l origine et ainsi pouvoir savoir si nous sommes bien placés ou non et corriger le tracteur en fonction de cela. J ai aussi développé de nombreuses autres fonctions pour les tests et pour trouver quelle séquence correspond le mieux ainsi j ai créé des filtres (moyenneur, médian), des mécanismes d érosion ou de dilatation des couleurs, une méthode de squelettisation de l image qui permet d obtenir grossièrement la forme d un objet, et bien d autre fonction plus ou moins usuelles comme une fonction pour lire la composante de l image, pour remplacer sa valeur, pour mettre l image en négatifs,... 2.5 La transformée de Hough Le plus gros problème rencontré lors du développement du programme a été la façon dont nous pourrions trouver des droites à partir des points que nous obtenons. Nous avons cherché de nombreuses techniques de détection de zone et de droite. Après de multiple recherche nous avons découvert la transformée de Hough. (se prononce OUF ). Cette technique permet de reconnaître des formes, mais est surtout utilisé pour la détection de lignes. Cette transformée part du principe que pour un point donné, il existe une infinité de droite passant par celui-ci, la seul chose qui change entre chaque droite est son angle. Le but de la transformée est de trouver les lignes potentiels se rapprochant le plus de ce que l on attend. Pour déterminer si plusieurs points sont approximativement sur une même droite, il faut faire une représentation de la droite et des points dans un repère permettant cette comparaison : le repaire complexe.

2. Traitement de l image 19 Dans le repère complexe, chaque ligne est un vecteur de coordonnées paramétriques, ρ étant la norme du vecteur et θ son angle. Si l on trace toutes les lignes possible caractérisant ce point, en calculant donc le ρ et le θ de chacune des possibilités, on obtient une sinusoïde unique appelée espace de Hough. Comme les possibilités sont infinies, on stocke ces valeurs dans un tableau que l on appelle accumulateur : ce tableau à deux entrées (ρ et θ), est un ensemble d intervalles de ρ et de θ. Une fois le parcours de tous les points effectué, on prend la case contenant la plus grande valeur, et ainsi on obtient la droite qui passe approximativement par le plus de points de l image. Fig. 2.7 Exemple de tableau accumulateur, en x sont présent les ρ, en y les θ, et en z l accumulation Fig. 2.8 Graphe représentant trois point dans le plan polaire, le point commun est la droite où ils se coupent On remarque dans le graphe ci-dessus que les trois courbes se coupent au même point. Si l on récupère les coordonnées polaire du point on pourra les transformer en coordonnées classiques, et nous obtiendrons les valeurs de a et b de la courbe notée y=ax+b. A ce stade du développement nous avons rencontré divers problèmes venant du fait que le programme nous traçait souvent des droites d angle inférieur à 45, car trop de mauvaises herbes étaient présentes, nous avons donc décider d effectuer un traitement, juste avant de chercher la valeur maximum présente dans l accumulateur, qui consiste à supprimer toutes les valeurs des angles (θ) inférieur à 45. Nous nous sommes ensuite rendu compte que notre programme n était pas assez précis : il quantifiait les ρ et le θ en 20 intervalles différents, nous avons monté cette valeur à 50, ce qui à considérablement augmenté la précision.

2. Traitement de l image 20 Ensuite pour des raisons d esthétique et de représentation, nous avons décidé de tracer les droites à l écran en vert si celles-ci sont bien placées, en orange si on a eu du mal à les trouver : valeurs dans l accumulateur trop proche des autres ; en rouge si celle-ci n est pas correctement placée. Ensuite, on affiche un carré en vert dans l angle en haut à droite de l image si tout est correct : c est-à-dire que l on n a pas besoin de déplacer la bineuse, en orange si l on doit déplacer la bineuse, ou en rouge si l on a trouvé aucune droite. 2.6 Les interfaces visuelles J ai développé deux interfaces visuelles, celles-ci ont été créées grâce à la bibliothèque graphique GTK, qui est une bibliothèque très utilisé sur les plateformes linux. La première interface est l interface de développement, dans laquelle j implantais au fur et à mesure les fonctions que j écrivais, nous nous sommes servis de celle-ci pour tester les différentes fonctions et ainsi voir ce qui pouvait nous faire ressortir le plus possible les plants par rapport au reste. Fig. 2.9 Interface de test des différentes fonctions Comme vous pouvez le voir, celle-ci est divisé en plusieurs parties, en haut à gauche et à droite sont les images sur lesquelles nous travaillons, celle de gauche

2. Traitement de l image 21 est l image d origine, avec ou sans les trais, alors que l autre et celle sur laquelle nous effectuons les fonctions. Sous la première image nous avons l historique des actions effectuées, alors que sous l autre nous avons la liste des fonctions possibles. Entre les deux nous avons plusieurs boutons permettant d importer une image a partir d un fichier, ou de la webcam, ainsi qu un bouton permettant d annuler la dernière action, un autre pour sélectionner la ou les composantes de couleurs à traiter et enfin un dernier pour faire passer l image de gauche dans la zone de droite. Cette interface très complète nous a permis d effectuer tous les tests et ainsi de décomposer chaque traitement pour le corriger, l optimiser et/ou l améliorer. Celle-ci ma aussi permis de voir ce que faisait chaque fonction, car n ayant jamais fait de traitement de l image auparavant je n avais pas la moindre idée de ce qu était un seuillage ou un filtre moyenneur. La deuxième interface quand à elle est beaucoup plus simple, celle-ci n affiche que l image traitée, en fait celle-ci gère tout le programme, car pour éviter des problèmes au niveau du temps accordé à chaque processus, j ai ajouté à la boucle événementielle de GTK, ma fonction de traitement de l image qui modifie l image puis applique la transformée de Hough et marque les droites et carrés de couleur dessus. La boucle événementielle est une boucle sans fin dans laquelle tourne le programme en attente de toute action tels que le clic sur un bouton ou encore la pression sur une touche, comme aucun matériel de saisie ne sera installé sur la machine (ni clavier, ni souris), GTK ne fera rien dans sa boucle événementielle à part attendre, en mettant ma fonction dans cette boucle, cela a pour effet de dire à GTK que dès qu il a du temps libre il effectue mes traitements, celui-ci les effectues donc constamment à par quand il a besoin d un peu de temps pour mettre à jour son affichage.

2. Traitement de l image 22 Fig. 2.10 Interface graphique avec affichage de l état pour le client Parmi toutes mes tâches, ce projet a donc été le principal, j ai passé environ 8 à 9 semaines dessus, entre la recherche du matériel, la mise en œuvre et la documentation nécessaire. Celui-ci m a appris beaucoup de choses tant au niveau de la programmation et la manipulation de grosses données (l image en mémoire pèse environ 900 kilo-octets), mais aussi au niveau du traitement de l image : les différents filtres et techniques utilisés pour aboutir à l image recherchée et pouvoir effectuer la transformée de Hough.

3. Travaux annexes En parallèle au travail sur le traitement de l image, j ai effectué plusieurs autres tâches. J ai tout d abord travaillé sur la refonte du site web de l entreprise, en créant un système de fonctions permettant de générer de l xhtml 8 simplement.j ai ensuite travaillé sur un moteur de recherche qui permet de trouver des circuits en fonction de mots clefs.enfin, j ai effectué le câblage des réseaux informatique et téléphonique de l entreprise. 3.1 Le site Web de l entreprise Ma première tache lors de mon arrivée à CREATIME fût de refaire leur site Web, la mise en page de celui-ci avait déjà été effectuée sous forme d image, mais le contenu du site n avait toujours pas été décidé. Il m a donc fallu adapter le design sous forme de page Web. J ai du ainsi mettre au point un procédé simple qui puisse permettre à l entreprise de modifier aisément le contenu de leur site. 3.1.1 Création du design Lors de mon arrivée, la mise en forme avait déjà été réalisée, par M. Serge BASSET. J ai donc du découper celui-ci suivant des zones précise de manière à ce que le chargement de la page soit optimisé. Pour expliquer plus en détail, Les grandes zones de couleurs sur la page seront interprétées en xhtml par le navigateur, plutôt que d avoir recours à une image. De cette manière, on peut gagner un temps de chargement de la page considérable! Le site a été réalisé avec le couple xhtml/css 9. J ai donc utilisé le xhtml pour la définition des éléments et le CSS pour la mise en forme (couleurs, placements,...). Je vous propose maintenant le site tel qu il apparaît à l écran, en prenant soin de mettre en avant les différentes découpes qui on été effectuées.