Vous êtes sur la page 1sur 32

Implmentation dun algorithme de dtection de la couleur sous FPGA

Sommaire
Introduction & Prsentation .......................................................................... 3 I. AR DRONE .................................................................................................. 4
1. 2. 3. 4. 5. Dfinition............................................................................................................................................... 4 Classification: ........................................................................................................................................ 5 Formules de VTOL-MAV exixtantes:...................................................................................................... 5 Les cellules a voilures tournantes ......................................................................................................... 6 PLenvironnement du drone ................................................................................................................. 8 5.1) Diagramme de bloc interne de lAR Drone ............................................................................... 9 5.2) Moteurs et nergie ................................................................................................................... 9

II. Gnralits sur la carte FPGA ...................................................................10


1. Prsentation de la carte Spartan 3E : .................................................................................................. 10 2. Circuit FPGA :....................................................................................................................................... 11 a) Programmation de la carte ......................................................................................................... 12 b) Horloge ....................................................................................................................................... 13 c) Les entre/sorties ....................................................................................................................... 13 d) Port VGA ..................................................................................................................................... 14 e) La mmoire de la carte ............................................................................................................... 14 3. Les limites de Spartan 3E .................................................................................................................... 15

III. Dtection d'objet dans une image ...........................................................16


1. Gnralits .......................................................................................................................................... 16 1.1) Structure dune image ............................................................................................................ 16 1.2) Pixellisation ............................................................................................................................. 16 1.3) Taille de limage ...................................................................................................................... 17 2. Codages des couleurs .......................................................................................................................... 17 2.1) Image couleur .................................................................................... Erreur ! Signet non dfini. 3. Format dimage ................................................................................................................................... 19 4. Dtection de couleur:.......................................................................................................................... 20 4.1) Binarisation de limage obtenue en HSV ................................................................................. 20

IV. Implmentation de l'algorithme sous FPGA ............................................21


1. 2. 3. 4. 5. 6. Etapes de lalgorithme ............................................................................................................................. 21 Binairisation de limage, laide de MATLAB........................................................................................... 22 Cration dune mmoire IP ...................................................................................................................... 23 Sous-programme de lalgorithme ............................................................................................................ 24 Programme principal de lalgorithme ...................................................................................................... 26 Simulation du programme ....................................................................................................................... 28

Conclusion ....................................................................................................31 Rfrences ....................................................................................................32

MASTER__GE | ENSET __ RABAT

Page 1

Implmentation dun algorithme de dtection de la couleur sous FPGA

MASTER__GE | ENSET __ RABAT

Page 2

Implmentation dun algorithme de dtection de la couleur sous FPGA

Introduction & Prsentation

Les applications de l'Intelligence Artificielle des agents en interaction physique avec le monde rel sont confrontes au besoin de planifier des actions avec information incomplte par rapport l'tat du monde. Les applications vises dans nos travaux sont des missions de robotique arienne en environnement incertain. Dans ces problmes, la perception est un moyen d'acqurir de l'information sur l'environnement afin de mieux agir pour atteindre le but de la mission, mais elle ncessite aussi des dcisions et actions spcifiques de perception dans le but de recueillir l'information. Il s'agit donc de dcider pour percevoir et de percevoir pour dcider.

Dans ce rapport, nous allons voir quels taient les objectifs du mini-projet qui ont t fix, son environnement et ses tapes pour sa ralisation. Ainsi, lobjectif de ce projet est de permettre lAR drone de suivre, de faon autonome de dtecter la couleur rouge dans une image donne, il devra sarrter en allumant une LED. Pour cela, il faut dfinir quel sera le systme adapt pour acqurir des images, et appliquer des algorithmes de traitement dimage sur la carte, Ceci dfini les objectifs de ce projet.

MASTER__GE | ENSET __ RABAT

Page 3

Implmentation dun algorithme de dtection de la couleur sous FPGA

I AR Drone 1. Dfinitions
Il est intressant de lire ce que retiennent les dictionnaires pour dfinir un drone. Le Petit Robert nous apprend que le mot drone est apparu dans la langue franaise en 1954, il vient de langlais signifiant Faux bourdon. Lautre dfinition du Petit Robert indique que cest un petit avion de reconnaissance, sans pilote, tlcommand ou programm. Lencyclopdie Universalis propose une dfinition un peu plus gnrale. Elle indique quun drone (en anglais U.A.V. pour Unmanned Aerial Vehicle) est un vhicule arien sans pilote. Il peut donc faire appel au concept de lavion, de lhlicoptre voir de la fuse. Il sert, dune faon gnrale, pour des missions de surveillance du champ de bataille, dacquisition du renseignement ou de combat. Si le drone est dabord apparu pour rpondre des besoins militaires, il est aussi dsormais envisag pour des applications civiles comme dans le domaine de la surveillance de zones et dinstallations, dans lagriculture, etc...

Toujours selon les dictionnaires un drone est un aronef disposant dune ou plusieurs charges utiles ncessaires lobservation ou destines au combat (missiles, bombes). Gnralement, il est contrl et pilot partir de stations au sol, avec ou sans le relais des satellites, mais il peut aussi effectuer des missions de manire autonome. Dans lavenir, il est prvu dassister les drones par des systmes de contrle disposs sur des aronefs (poste de commandement volant ou avion de combat). Chargs dans leur majorit de lacquisition de renseignements, les drones disposent de diffrents capteurs oprant dans diffrentes longueurs dondes (domaines du visible, de linfrarouge ou des ondes radars). Ils peuvent aussi tre quips de moyens dcoute lectronique et de brouillage.

Aujourdhui lorsque lon parle de drone et de leur mise en uvre il est plus juste de parler de systme de drone. En effet, le drone fait partie dun systme qui est compos dun ou plusieurs vecteurs ariens, dune ou plusieurs stations sol de commande ainsi que de liaisons de donnes entre le vecteur et la partie sol. Il peut y avoir des drones terrestres, marins, sousmarins et ariens. On voit donc que la dfinition stend progressivement et englobe les nombreux systmes autonomes. Si on se restreint aux drones ariens on peut les classer en diffrentes catgories en fonction de leurs tailles aujourdhui trs varies : de quelques centimtres plusieurs mtres. Leurs formes galement, tout comme leurs types de propulsion : certains sont quips de racteurs, dautres dhlices, dautres encore utilisent des rotors, linstar des drones hlicoptres par exemple.

MASTER__GE | ENSET __ RABAT

Page 4

Implmentation dun algorithme de dtection de la couleur sous FPGA

2. Classification
La classification des drones est un exercice trs difficile, dans la mesure o elle est diffrente selon les pays. Cependant les drones ariens peuvent tre classs selon trois critres que sont laltitude de croisire, lendurance en termes de temps de vol et leur dimension principale. Dans ce cadre, le domaine oprationnel des drones peut se dcomposer en trois segments : les drones tactiques ; les drones de moyenne altitude et longue endurance (MALE) permettant dutiliser une charge utile de lordre de 100 kg ; les drones de haute altitude et longue endurance (HALE).

Le segment tactique se dcompose lui-mme en six segments : Les micro-drones (Micro Air Vehicule ou MAV), pouvant tre contenu dans une sphre de 30 cm ; Les mini-drones (Mini Air Vehicule ou MAV galement), pouvant tre contenu dans une sphre de 70 cm ; Les drones de trs courte porte (TCP) ; Les drones moyenne porte lents (multicharges multimissions ou MCMM lents) ; Les drones rapides basse altitude (MCMM rapides) ; Les drones maritimes tactiques (DMT).

Cela peut surprendre de distinguer en deux segments les micro-drones et les mini-drones, mais la diffrence dchelle entre les deux impose aujourdhui encore des contraintes fortes pour le choix des matriaux des capteurs et des systmes embarqus. Par consquent ces deux familles sont fortement diffrencies par lautonomie en vol et la qualit des contrles, cependant la miniaturisation des cartes lectroniques jointe laugmentation des capacits de calculs des mini-systmes embarqus tend rduire ces carts.

3. Formules de VTOL-MAV existantes


Deux grandes familles de machines volantes ont dabord vu le jour : celles voilures fixes, o la vitesse relative rsulte du mouvement du vhicule (elles rpondent au besoin de vol en translation rapide) et celles voilures tournantes, o la vitesse relative rsulte de la mise en rotation des pales par rapport un corps qui lui, reste immobile dans lair (elles rpondent au besoin de vol stationnaire). Aujourdhui, un besoin mergeant dans le monde des mini-drones, celui imposant une mme cellule davoir des qualits de vol stationnaire et de vol en translation rapide conomique, impose une modification de ce classement.

MASTER__GE | ENSET __ RABAT

Page 5

Implmentation dun algorithme de dtection de la couleur sous FPGA

Nous devons pour cela rappeler la notion de convertibilit applique aux mini-drones. Nous parlerons alors de deux familles de convertibles, ceux dont la convertibilit dcoule dune dformation mcanique (rotor basculant, tte basculante...) et ceux dont la convertibilit apparat par le basculement totale ou partiel de la cellule (Tail-sitter). Nous voyons alors que si nous prsentons des drones capables de vol en translation rapide et de vol stationnaire nous pouvons remplacer la famille des cellules voilure fixe qui sera englobe par les convertibles. Dans la suite de ce chapitre nous prsenterons donc les concepts les plus pertinents de mini drones classifis dans les deux familles de cellules voilures tournantes et de cellules convertibles. En pralable ce qui va suivre, on prsente sur la figure 2.1 les noms et conventions daxes de rotations qui seront utiliss.

Les axes de rotation

4. Les cellules voilures tournantes


Les cellules voilures tournante ont toutes au moins une caractristique commune : Ce sont des objets volant dcollage et atterrissage vertical, capable de faire du vol stationnaire. Ils utilisent un (ou des) rotors(s) pour se sustenter et se propulser. Nous tablissons un classement des cellules `a voilures tournantes en 4 catgories : Monorotor Birotors contrarotatifs Trirotor Quadrirotor (notre cas)

MASTER__GE | ENSET __ RABAT

Page 6

Implmentation dun algorithme de dtection de la couleur sous FPGA

4.1 Les Quadrirotors Principe : Un quadrirotor consiste en une armature en croix symtrique avec des moteurs et
des rotors aux extrmits de chaque tige. Les rotors diamtralement opposs tournent dans le mme sens (fig. 2.8). Les rotors sont gnralement non articuls.

Translation Verticale : Le contrle vertical se fait par variation de la vitesse de rotation des
rotors. Pour un vol stationnaire, la vitesse de rotation est la mme que pour les 4 rotors, de faon ce que la pousse globale des quatre rotors compense le poids de lappareil. Pour changer laltitude, on fait varier identiquement la vitesse de rotation des 4 rotors.

Translation horizontale : On fait varier lassiette de lappareil, ce qui permet de modifier le


vecteur translation en grandeur et en direction de chaque rotor.

Lacet : Le lacet sobtient par la diffrence de couple de frottement cre au niveau des rotors.
Il suffit donc daugmenter la vitesse de rotation de deux moteurs diamtralement opposs et diminuer la vitesse des deux autres moteurs. Ainsi la pousse globale est maintenue, mais il y a apparition dun couple rsultant.

Roulis & tangage : Le roulis et le tangage altitude constante sont obtenus de la faon
suivante : il faut faire varier la vitesse des moteurs des rotors diamtralement opposs. On augmente la vitesse de lun et on diminue la vitesse de lautre (On conserve la force globale oppose au poids). Le quadrirotor sincline du ct o lon a ralenti la vitesse du moteur et part dans cette direction.

MASTER__GE | ENSET __ RABAT

Page 7

Implmentation dun algorithme de dtection de la couleur sous FPGA

Mouvement du drone en fonction de la vitesse des rotors

5. Lenvironnement du Drone :

MASTER__GE | ENSET __ RABAT

Page 8

Implmentation dun algorithme de dtection de la couleur sous FPGA

5.1 Diagramme de bloc interne de l'AR. Drone

5.2 Moteurs et nergie


4 moteurs brushless : (35 000 tr/min, puissance : 15 W pour le 2.0) et (28 500 tr/min, puissance : 14,5 W pour la premire gnration) Batterie Lithiumpolymre (trois cellules, 11,1 V, 1 000 mAh) Capacit de dcharge : 10 C Temps de rechargement de la batterie : 90 minutes L'autonomie est de maximum 12 15 minutes pour les deux drones.

MASTER__GE | ENSET __ RABAT

Page 9

Implmentation dun algorithme de dtection de la couleur sous FPGA

II Gnralit sur la carte FPGA


1) Prsentation de la carte Spartan 3E :
La carte de dveloppement Nexys2 de Digilent utilise le FPGA Spartan 3E (XC3S1200E ou XC3S500E) de Xilinx. Cette carte offre un environnement de conception trs adapt pour le prototypage dapplications varies dont celles des systmes numriques usage gnral et des systmes embarqus. Cette carte est de plus idale pour les applications de traitement vido et de traitement de signal en gnral. La carte Nexys2 regroupe entre autre un FPGA XC3S500E Spartan 3E, un accs USB2 pour la configuration et le transfert de donnes rapide, une mmoire externe RAM de 128Mbit et une mmoire externe ROM de 128Mbit, un port PS/2, un port VGA, un port RS-232, un port de configuration USB, deux convertisseurs de donnes, un oscillateur 50 MHz, un connecteur dexpansion Hirose FX2 permettant 60 entres/sorties gnriques, 8 Led, 4 boutons poussoir et 8 commutateurs (Switch).

MASTER__GE | ENSET __ RABAT

Page 10

Implmentation dun algorithme de dtection de la couleur sous FPGA

2) Circuit FPGA :
Field Programmable Gate Array (FPGA): circuit programmable compos dun rseau de blocs logiques, de cellules dentre-sortie et de ressources dinterconnexion totalement flexibles, ce circuit, qui ncessite un outil de placement-routage, est caractris par son architecture, sa technologie de programmation et les lments de base de ses blocs logiques.

Le FPGA est une version plus volue et offrant plus de flexibilit que les PLD. Ainsi souvent utilis pour crer un circuit intgr prototype dans la phase prliminaire du dveloppement d'un ASIC, et ceci en raison de sa facilit de programmation ce qui nous fait gagner le temps de dveloppement. Les FPGA sont composs des cellules programmables, les IOB et les CLB. Les IOB (Input Output Blocs) servent comme tampons aux entres/sorties du FPGA. Les CLB (Control Logic Blocs) sont des cellules programmables qui ralisent les fonctions combinatoires et squentielles de notre architecture implanter. La carte supporte trois modes de configuration la mise sous tension : Mode Master-Slave utilisant le PROM 4 Mbit, Un mode SPI utilisant la mmoire Flash sriel Un mode BPI utilisant la mmoire Flash parallle.

La carte peut aussi tre programme directement laide dun port JTAG lorsquelle est sous tension.

MASTER__GE | ENSET __ RABAT

Page 11

Implmentation dun algorithme de dtection de la couleur sous FPGA

a) Programmation de la carte
Le FPGA peut tre programm de deux faons: directement partir d'un PC en utilisant le port USB, et partir de la Flash ROM (la Flash ROM est galement programmable par l'utilisateur via le Port USB). Un cavalier sur la carte Nexys2 dtermine la source (PC ou ROM) du FPGA utiliser pour charger sa configuration. Le FPGA peut automatiquement charger une configuration partir de la Platform du Flash ROM la mise sous tension si le cavalier de mode de configuration est rgl sur "Master srie ". Si le cavalier Mode est rgl sur "JTAG", le FPGA attendra la programmation partir du PC (via le cble USB). Cest cette configuration quon adopte pendant le droulement des TP . Les cavaliers sur les cartes sont normalement dans les bonnes configurations.

Le logiciel Adept peut tre utilis pour configurer le FPGA via le cble USB avec n'importe quel fichier binaire slectionn appropri stock sur l'ordinateur. Alors le FPGA est configur, il le restera ainsi jusqu' ce qu'il soit remis zro par une rupture d'alimentation ou par une pression sur le bouton de rinitialisation du FPGA (BTNR). La Flash ROM conservera le fichier binaire jusqu' ce qu'elle soit reprogramme, indpendamment de la mise sous tension.

Mode de programmation

MASTER__GE | ENSET __ RABAT

Page 12

Implmentation dun algorithme de dtection de la couleur sous FPGA

b) Horloge :
La carte possde un oscillateur de 50MHz et une prise pour un seconde oscillateur la carte donne la possibilit de diviser cette frquence pour dfinir la phase de retard prcis et les relations entre divers signaux d'horloge.

loscillateur de la carte

c) Les entres /sorties :


Cette carte possde aussi un nombre trs important de ports dentres sorties : 75 E/S du FPGA achemines vers les connecteurs d'extension (un connecteur Hirose FX2 grande vitesse avec 43 signaux et quatre connecteurs Pmod 2x6) Tous les signaux d'E/S sont protgs contre les dcharges lectrostatiques et les court circuits, assurant une longue dure de vie dans n'importe quel environnement Les E/S intgres comprennent huit DEL, un affichage 7 segments et 4 chiffres, quatre boutons-poussoirs, huit interrupteurs glissire

les entres/sorties

MASTER__GE | ENSET __ RABAT

Page 13

Implmentation dun algorithme de dtection de la couleur sous FPGA

d) Port VGA :
La carte contient un port VGA pour laffichage sur un cran externe, ce port comporte 10 signaux : 8 signaux pour les couleurs : 3 signaux pour le rouge et trois pour le vert 2 signaux pour le bleu 2 signaux pour la synchronisation verticale et horizontale

e) La mmoire de la carte :
La mmoire est un lment trs dterminant dans le choix des cartes FPGA, dans le cas de notre carte les performances de la mmoire sont les suivantes : Une mmoire externe de type RAM de 128Mbits type MICROn M45W8MW16 cellulaire pseudo-statique organise en 16bits x 8Mbytes, fonctionne comme une SRAM asynchrone avec 70 ns de temps de cycle lecture/criture. Ou en tant que mmoire synchrone avec un bus de 80MHz. La ROM externe est un priphrique Intel 128Mbit organis comme 8Mbytes x 16bits. En interne, il contient 128 blocs qui peuvent tre individuellement effacs, et elle a les temps de cycle de 110ns en lecture, et 25ns en mode page pour les blocs. Il dispose d'un tampon d'criture interne de 32 octets qui peut crire avec des temps de cycle 70 ns, et la mmoire tampon 32-octet peut tre transfre la matrice de flash dans 218us (typique). Les deux circuits partagent le mme bus de 16 bits de donnes et le bus d'adresse de 24 bits.

Gestion de la mmoire

Le tableau suivant dcrit la rpartition de la mmoire selon les bus dadresse et les bus de donnes.

MASTER__GE | ENSET __ RABAT

Page 14

Implmentation dun algorithme de dtection de la couleur sous FPGA

3) Les limites de Spartan 3E


Ce qui va limiter nos applications VGA ce sont les limites du circuit Spartan 3E de la carte. En effet, pour une application graphique VGA pleine capacit, il faudrait 480x640x3 octets de mmoire par image soient 921600 octets ou 900K octets pour une image en 17 millions de couleurs. Or le circuit Spartan ne dispose que dun maximum de 64 kilo -bits (8 kilo-octets) et il ny a pas de mmoire externe sur la carte. En consquence, il est absolument ncessaire de limiter les performances escomptes et donc les ressources. Comme dans notre cas on a limit les dimensions de limage et mme le nombre de bits correspondant aux codes couleurs des pixels composants notre image. Le passage en 256 couleurs diviss par trois la mmorisation dune image mais 300Koctets est encore beaucoup trop important. Travailler en 2 couleurs (couleur sur fond blanc ou noir et blanc etc..) rduit un seul bit linformation pixel, on arrive alors 307200 bits soient 37 Kilo-octets, il sera suffisant mais on va dgrader la qualit de limage. Les applications les plus conomes sont celles qui nobligent pas mmoriser toute limage mais seulement certains objets sur fond constant.

MASTER__GE | ENSET __ RABAT

Page 15

Implmentation dun algorithme de dtection de la couleur sous FPGA

III Dtection dobjet dans une image


1- Gnralits
Une image numrique est une image dont le support est stock sous forme binaire dans un fichier informatique. Celle-ci peut tre obtenue soit partir de capteurs optiques (appareil photo, camra, scanner) ou cre partir de logiciels (Paintbrush, libreoffice).

1.1- Structure dune image


Une image est la reprsentation dun tre ou dune chose obtenue par exemple par la photographie, la vido ou lutilisation dun logiciel spcialis. Elle est dite numrique lorsque sa sauvegarde est obtenue sous forme binaire. Donc image numrique fait appel linformatique.

Chaque image numrique est constitue dun nombre donn de lignes. Chaque ligne comporte un nombre de point donns. Lensemble constitue une matrice. Ces points sont dnomms pixel (de langlais picture element et not souvent px). Chaque case de cette matrice contient des nombres caractristiques la couleur attribue au pixel.

1.2- Pixellisation
La pixellisation dune image, appele aussi dfinition, est le nombre de points la composant. Ainsi, toute image est constitue de la juxtaposition de points. Sur notre image fleur, nous avons 800 lignes comportant chacune 600 points soit un total de 480 000 points ayant chacun une couleur pour la reprsenter.

Zoom de l'image 'fleur'

Image "fleur"

MASTER__GE | ENSET __ RABAT

Page 16

Implmentation dun algorithme de dtection de la couleur sous FPGA

En grossissant limage du fichier fleur avec un logiciel de d essin (paintbrush), on peut mettre facilement en vidence la pixellisation de limage

1.3- Taille de limage


La rsolution de limage influe directement sur la taille du fichier de sauvegarde de celle -ci. Par exemple, dans le cadre de la tlvision, on a : la tlvision dfinition standard SD 576 a 768 pixels par ligne et 576 lignes par image soit un total de 442 368 pixels par image ; la tlvision haute dfinition HD 1080 a 1920 pixels par ligne et 1080 lignes par image soit un total de 2 073 600 pixels par image. Ainsi si la rsolution est environ multiplie par 2, les nombre de pixels lest par 4 (structure bidimensionnelle de limage) ce qui peut engendrer un temps de traitement plus long. Il faut donc trouver un compromis entre la qualit attendue de limage en termes de rsolution et la taille de son fichier de sauvegarde.

2- Codages des couleurs


Nous lavons vu une image apparait comme une matrice o chaque case contient des nombres associs une couleur. Usuellement on distingue 3 grands types de couleurs pour une image numrique : Le noir et blanc ; Les niveaux de gris ; La couleur.

Ces types sont gnralement choisir lors dune numrisation par scanner ou lors de la configuration dun appareil photographique.

2.1- Image couleur


2.1.1 Principe La couleur dun pixel est obtenue, comme le ferait un peintre, par le mlange de couleurs fondamentales. Il ne sagit pas ici de dcrire toutes les techniques utilises. Nous allons dcrire un des principes les plus couramment utilis qui est celui de la synthse additive .

MASTER__GE | ENSET __ RABAT

Page 17

Implmentation dun algorithme de dtection de la couleur sous FPGA

2.1.2 Codage RVB Le principe consiste mlanger les 3 couleurs : rouge, vert et bleu (not RVB ou RGB en anglais). A laide de ces 3 couleurs, on obtient toute une palette de nuances allant du noir au blanc. A chaque couleur est associ un octet (donc 256 niveaux de luminosit) de chacune des couleurs fondamentales.

Principe codage de la couleur

Un pixel couleur est alors cod avec 3 octets et on a alors la possibilit dobtenir possibilits de couleurs soit de lordre de 16 millions de couleurs diffrentes. On dit que les images obtenues sont en couleurs vraies . La qualit colorimtrique obtenue est celle dune photographie argentique couleur

Valeurs RGB d'un pixel

MASTER__GE | ENSET __ RABAT

Page 18

Implmentation dun algorithme de dtection de la couleur sous FPGA

Ainsi le pixel de coordonnes (54, 51) (en haut gauche de limage dans le ciel ) a pour valeurs RVB respectivement (77, 118, 239). Il existe dautres formats de codage de la couleur (image palette 256 couleurs, mode HAM) pour lesquels on pourra se reporter utilement leur description en ligne sur Internet.

3- Formats dimage
Lors de son enregistrement une image est stocke suivant un format dimage prcis. Ce format doit permettre de stocker linformation de limage avec un minimum de perte dinformations. Il existe ainsi diffrents formats qui pourront favoriser soit la conservation de la qualit soit la diminution de la taille du fichier informatique. Le tableau suivant donne les principales caractristiques des principaux standards utiliss

Principaux formats

MASTER__GE | ENSET __ RABAT

Page 19

Implmentation dun algorithme de dtection de la couleur sous FPGA

4- Dtection de la couleur
La couleur est quelquefois utile dans certaines applications. On peut penser qu'une

application effectue un contrle de qualit au niveau de l'intensit de couleur sur un produit. On pourrait aussi utiliser la couleur pour permettre un robot de s'arrter lorsqu'il arrive un panneau de couleur rouge.

Pour ce faire, on convertit l'image d'un format BGR en format HSV ou format BINAIRE . On est plus intress ici travailler avec les valeurs des teintes et de la saturation qui nous permet d'obtenir la quantit d'une certaine couleur contenu dans un objet.

4.1- Binarisation de l'image obtenu en HSV


Cette tape est trs similaire celle quon a programm pour binariser une image en ton de gris. On obtient ainsi une image noir et blanc o les pixels des objets dsirs taient en blanc et le reste en noir. L'tape que nous allons faire ici pour traiter l'image en HSV est exactement la mme la diffrence que maintenant nous binarisons les pixels qui se trouvent dans un certain intervalle de couleur.

Malheureusement, moins d'avoir une tendue de pixel dont la couleur est uniforme, ce qui est rarement le cas surtout si l'image provient d'un dispositif de capture comme une camra, la binarisation ne donnera pas un bon rsultat si on utilise la technique du seuil. On rappele que dans cette technique, le seuil est une valeur qui nous permet de dpartager les pixels selon la relation suivante :

Pixel < Valeur du Seuil alors Pixel = 0 Pixel >= Valeur du Seuil alors Pixel = 255
Pour la couleur, il faut plutt se donner un intervalle dans lequel le seuil se situera. Ainsi la relation est plutt la suivante : H tolrance <= Hpixel < H + tolrance && S - tolrance <= Spixel < S + tolrance. H : valeur de la teinte (Hue) S : Valeur de la saturation (Saturation) La valeur de tolrance nous permet d'obtenir cet intervalle dont nous parlions prcdemment. La valeur pour la teinte et la saturation dpend de la couleur que l'on veut rechercher. O

MASTER__GE | ENSET __ RABAT

Page 20

Implmentation dun algorithme de dtection de la couleur sous FPGA

IV Implmentation de l'algorithme sous FPGA

1) tapes de l'algorithme
Acquisition des images (trames de la video) Le principe du tout traitement vido est de procder une analyse du flux image par image.

Conversion
On doit convertir l'image (trame) qui est en BGR en HSV (Hue, Saturation, Value). La reprsentation en HSV nous permettra de se baser sur un canal ou deux : la teinte et la saturation de la couleur, sans prendre en compte la brillance (V value), se qui permet alors d'liminer les problmes lis l'clairage.

Binarisation
La binarisation consiste placer les pixels de l'image dans deux classes distinctes, gnralement reprsentes par deux couleurs, le blanc et le noir. la premire classe correspondra la couleur isoler, la seconde toutes les autres couleurs

MASTER__GE | ENSET __ RABAT

Page 21

Implmentation dun algorithme de dtection de la couleur sous FPGA

Ainsi, si la couleur de l'objet slectionn est le rouge, nous verrons sur notre image binarise tous les lments rouges apparatre en blanc sur un fond noir.

Le Masque
Crer un masque pour slectionner les pixels qui peuvent appartenir l'objet en se basant uniquement sur leurs valeurs HSV. Thoriquement, nous devons mettre en blanc tous les pixels ayant les mmes valeurs HSV que notre couleur. Pratiquement, le rsultat ne serait pas trs convaincant et nous ne rcuprerions que quelques pixels. Il faut rechercher les pixels qui se situent dans un intervalle autour de cette couleur, nous utiliserons alors une valeur de tolrance pour les valeur de teinte et de saturation uniquement.

2) Binairasation de limage, laide de MATLAB


Le bloc Mmoire et dj prexist comme une IP (proprit intellectuelle) sur le logiciel Xilinix, alors il suffisait juste de choisir quel type de mmoire on va utiliser, dans notre cas cest une mmoire ROM de taille 40 000 cases mmoire (selon la taille de limage quon va stocker), dont chaque case mmoire contient 8 bits (8 bits cest la valeur dont il est cod chaque pixel RVB). Donc la taille globale de notre mmoire sera de 200x200x8 bits = 320 Kbits. Notre image est de forme matricielle de taille 200x200 de trois plan R, V et B, pour la stocker dans la mmoire de la carte FPGA nous tions obligs de passer par loutil MATLAB, afin de convertir limage sous une forme vectorielle.

MASTER__GE | ENSET __ RABAT

Page 22

Implmentation dun algorithme de dtection de la couleur sous FPGA

3) Cration dune mmoire IP


Dans cette partie on va voir linsertion dIP et choix de la mmoire :

Slectionner Single Port ROM puis Next , on crera une mmoire de 8 x 40001, Next ltape 4, slectionner, dans Load File, le fichier valeur.coe Puis Next jusqu ltape 6, choisir Generate

MASTER__GE | ENSET __ RABAT

Page 23

Implmentation dun algorithme de dtection de la couleur sous FPGA

4) Sous-programmes de lalgorithme

MASTER__GE | ENSET __ RABAT

Page 24

Implmentation dun algorithme de dtection de la couleur sous FPGA

MASTER__GE | ENSET __ RABAT

Page 25

Implmentation dun algorithme de dtection de la couleur sous FPGA

5) Programme principal de lalgorithme


1re Solution:
Programme du Montage global (en utilisant la fonction portmap): library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use IEEE.STD_LOGIC_ARITH.ALL; entity portmap is Port ( clock : in STD_LOGIC; pix_out : out STD_LOGIC_VECTOR (7 downto 0); LED_OUT: out std_logic; reset :in std_logic ); end portmap; architecture Behavioral of portmap is --------------- hologe_25Mhz -------------------------component horloge_25Mhz is Port ( clk : in STD_LOGIC; reset_h : in STD_LOGIC; clk_25 : out STD_LOGIC ); end component; --------------------- lecture mmoire --------------------component lecture is Port ( adr : out STD_LOGIC_VECTOR (15 downto 0); clk_lec : in STD_LOGIC; rst : in STD_LOGIC ); end component; ----------------------- mmoire -----------------------------component memoire is port ( clka: IN std_logic; addra: IN std_logic_VECTOR(15 downto 0); douta: OUT std_logic_VECTOR(7 downto 0)); end component; --------------------------------------------------------------component detection is Port ( clK_d : in STD_LOGIC; donnee_IN : in STD_LOGIC_VECTOR (7 downto 0); led : out STD_LOGIC ); end component; ------------------------- liaison ---------------------------signal sig1 : std_logic; signal sig2 : std_logic_vector (15 downto 0 ); signal sig3 : std_logic_vector (7 downto 0 );

MASTER__GE | ENSET __ RABAT

Page 26

Implmentation dun algorithme de dtection de la couleur sous FPGA

---------------------------------------------------------------begin u1 : horloge_25Mhz port map(clk=>clock,reset_h=>reset,clk_25=>sig1); u2 : memoire port map(clka=>sig1,addra=>sig2,douta=>sig3); u3 : lecture port map(clk_lec=>sig1,rst=>reset,adr=>sig2); u4 : detection port map(clk_d=>sig1,donnee_IN=>sig3,led=>LED_OUT); pix_out <=sig3; end Behavioral;

2me Solution:

On utilise les blocs des sous-programmes pour raliser le schmatique global

MASTER__GE | ENSET __ RABAT

Page 27

Implmentation dun algorithme de dtection de la couleur sous FPGA

6) Simulation du programme
Programme de testbench : LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; LIBRARY UNISIM; USE UNISIM.Vcomponents.ALL; ENTITY schema_montage_schema_montage_sch_tb IS END schema_montage_schema_montage_sch_tb; ARCHITECTURE behavioral OF schema_montage_schema_montage_sch_tb IS COMPONENT schema_montage PORT( reset: IN STD_LOGIC; clock : IN STD_LOGIC; pix_out :out STD_LOGIC_VECTOR (7 downto 0); led_out : OUT STD_LOGIC); END COMPONENT; SIGNAL reset : STD_LOGIC; SIGNAL clock : STD_LOGIC; SIGNAL led_out : STD_LOGIC; signal pix_out : STD_LOGIC_VECTOR (7 downto 0); -- Clock period definitions constant clock_period : time := 10 ns; BEGIN UUT: schema_montage PORT MAP( reset => reset, clock => clock, led_out => led_out, pix_out => pix_out ); -- Clock process definitions clock_process :process begin clock <= '0'; wait for clock_period/2; clock <= '1'; wait for clock_period/2; end process;

-- Stimulus process reset <= '1' after 100 ns, '0' after 300 ns; END;

MASTER__GE | ENSET __ RABAT

Page 28

Implmentation dun algorithme de dtection de la couleur sous FPGA

Simulation sous ISIM :

Si la simulation est effectue mais dans le cas ou elle ne dtecte pas la couleur rouge la LED reste teinte et le testbench naffiche aucun changement (LED_OUT=0)

ainsi on voit que vraiment la LED est teinte dans la carte FPGA

NB : LA LED qui montre la dtection de la couleur est verte

MASTER__GE | ENSET __ RABAT

Page 29

Implmentation dun algorithme de dtection de la couleur sous FPGA

Dans lautre cas, sil y la dtection de la couleur (LED_OUT=1):

Voyons la LED est allume dans la carte FPGA

MASTER__GE | ENSET __ RABAT

Page 30

Implmentation dun algorithme de dtection de la couleur sous FPGA

Conclusion

Ce projet a t enrichissant, car nous avons pu acqurir plusieurs connaissances intressantes que ce projet a pu rassembler, savoir : le traitement dimage, linformatique industrielle ou plus prcisment le dveloppement VHDL. Pour arriver au rsultat obtenu, on peut citer de nombreux problmes: Notamment au niveau de la dtection de couleur dans une image qui ncessite un traitement puissant. La limitation de la carte Spartan 3 au niveau de la mmoire Enfin, titre indicatif que ce domaine est ouvert la recherche, on trouve pas mal de publication sur internet de thses qui travaillaient soit dans le sens de rnovation soit dinvention de nouvelles techniques et algorithmes.

MASTER__GE | ENSET __ RABAT

Page 31

Implmentation dun algorithme de dtection de la couleur sous FPGA

Rfrences

Support , cours_VHDL_5 , VHDL_Support_V2 M.JILBAB ; Guillaume_Bellestre_Projet_rapport .pdf http://perso.ens-lyon.fr/arnaud.tisserand/ http://embdev.net/forum/fpga-vhdl-verilog

MASTER__GE | ENSET __ RABAT

Page 32