You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

315 lines
13 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE HTML>
<!--
Helios by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
<head>
<title>Traitement dimages sur FPGA</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!--[if lte IE 8]><script src="assets/js/ie/html5shiv.js"></script><![endif]-->
<link rel="stylesheet" href="assets/css/main.css" />
<!--[if lte IE 8]><link rel="stylesheet" href="assets/css/ie8.css" /><![endif]-->
<link rel="icon" type="image/png" href="images/favicon.png" />
<!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="images/favicon.png" /><![endif]-->
</head>
<body class="left-sidebar">
<div id="page-wrapper">
<!-- Header -->
<div id="header">
<!-- Inner -->
<div class="inner">
<header>
<h1><a href="projet_pro.html" id="logo">Projets professionnels</a></h1>
</header>
</div>
<!-- Nav -->
<nav id="nav">
<ul>
<li><a href="index.html">Accueil</a></li>
<li>
<a href="projet_pro.html">Projet Pro.</a>
<ul>
<li><a href="projet_pro-xen.html">Virtualisation XEN</a></li>
<li><a href="projet_pro-fpga.html">Traitement dimages sur FPGA</a></li>
<li>
<a href="projet_pro-openwide_smile.html">OpenWide/Smile ...</a>
<ul>
<li><a href="projet_pro-openwide_smile.html#ROBOT">Sepro: Robot et pendant</a></li>
<li><a href="projet_pro-openwide_smile.html#IPU-IMX6">Cogelec: ipu I.MX6</a></li>
<li><a href="projet_pro-openwide_smile.html#G9MINI">Canal+: Intégrateur Yocto</a></li>
<li><a href="projet_pro-openwide_smile.html#AVAC">Hutchinson: AVAC</a></li>
<li><a href="projet_pro-openwide_smile.html#QUANTIUM">Quantaflow: Quantium v2</a></li>
<li><a href="projet_pro-openwide_smile.html#XVISOR">IRT-systemX: Xvisor</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="projet_perso.html">Projet Perso.</a>
<ul>
<li>
<a href="projet_perso-PIC.html">Projets PIC ...</a>
<ul>
<li><a href="projet_perso-PIC.html#table_infini">Table dillusion infinie PIC16F87</a></li>
<li><a href="projet_perso-PIC.html#telecommande_IR">Télécommande infrarouge PIC16F87</a></li>
<li><a href="projet_perso-PIC.html#feu_tricolore">Feu tricolore de présence PIC16F87</a></li>
</ul>
</li>
<li>
<a href="projet_perso-sites_web.html">Sites Web ...</a>
<ul>
<li><a href="projet_perso-sites_web.html#AJC72">Antonnière Judo Club 72</a></li>
<li><a href="projet_perso-sites_web.html#SMMP">Service Moules et Mécanique de Précision</a></li>
<li><a href="projet_perso-sites_web.html#TANSORIER">Site presonnel</a></li>
<li><a href="projet_perso-sites_web.html#CDJS">Forum pour le Comité Départemental de Judo de la Sarthe</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="judo.html">Judo</a></li>
<li><a href="associations.html">Associations</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</nav>
</div>
<!-- Main -->
<div class="wrapper style1">
<div class="container">
<div class="row 200%">
<!-- left part -->
<div class="3u 12u(mobile)" id="sidebar">
<hr class="first" />
<section>
<header>
<h3><a href="projet_pro.html">Autres Projets</a></h3>
</header>
<ul class="leftmenu">
<li><a href="projet_pro-xen.html">Virtualisation XEN</a></li>
<li><a href="projet_pro-fpga.html">Traitement dimages sur FPGA</a></li>
<li>
<a href="projet_perso-sites_web.html">OpenWide/Smile ...</a>
<ul class="leftmenu">
<li><a href="projet_pro-openwide_smile.html#G9MINI">Canal+: Intégrateur Yocto</a></li>
<li><a href="projet_pro-openwide_smile.html#AVAC">Hutchinson: AVAC</a></li>
<li><a href="projet_pro-openwide_smile.html#QUANTIUM">Quantaflow: Quantium v2</a></li>
<li><a href="projet_pro-openwide_smile.html#XVISOR">IRT-systemX: Xvisor</a></li>
</ul>
</li>
</ul>
</section>
<hr />
</div>
<!-- right part -->
<div class="7u 12u(mobile) important(mobile)" id="content">
<article id="main">
<header>
<h2>Traitement dimages sur FPGA</h2>
</header>
<div class="image centered" style="width: 376px"><img src="images/FPGA_DE2-70.jpg" alt="" /></div>
<p>
Ce projet est la continuité de travaux de recherche de lenseignant chercheur Pascal Picart.<br />
Un projet existant se trouve sur Matlab, or le temps de calcul est relativement élevé.<br />
Lobjectif du projet est donc de développer un prototype basé sur une architecture FPGA afin
de traiter les signaux bidimensionnels issus du capteur de projection de franges (profilométrie)
en temps réel.<br />
<i><u>Mots clés</u>: FPGA VHDL Profilométrie Matlab — Algorithme.</i>
</p>
<section>
<header>
<h3>Quest-ce que la protométrie ?</h3>
</header>
<p>
Pour faire simple, cest récupérer la forme dun objet à partir de formes lumineuses projetée dessus..<br />
Exemple:
</p>
<div class="image centered" style="width: 623px">
<img src="images/projet_pro-fpga/principe.png" alt="Principe de la profilométrie" />
<p>Un ensemble de franges noires et blanches sont projetées sur ce visage, après analyse
des photos prisent de ce visage on peut le reconstituer en 3D.</p>
</div>
</section>
<section>
<header>
<h3>Calculs</h3>
</header>
<p>
Les calculs se font en plusieurs parties. En premier lieu il faut calculer la phase des
projections de franges sans lobjet. On peut utiliser quatre images déphasées de pi/4.<br />
Puis il faudra calculer la phase des projections de franges avec lobjet.<br />
En enfin faire la différence entre ces deux phases calculées pour obtenir une vue en 3D comme ceci:
</p>
<div class="image centered" style="width: 623px">
<img src="images/projet_pro-fpga/traitement.png" alt="Traitement des images récupérées" />
</div>
</section>
<section>
<header>
<h3>Technologie FPGA</h3>
</header>
<p>
Lavantage de la technologie FPGA pour le traitement dimage cest sa capacité
à faire du traitement en parallèle.<br />
En effet dans ce projet il va falloir faire le traitement en parallèle de quatre
images afin calculer la phase en une seule image.<br />
Ce projet existant déjà sous Matlab, le choix de garder une partie du programme servant
dinterface avec lutilisateur a été fait. Le FPGA fera donc essentiellement le calcul.<br />
Lensemble du projet a été effectué sur la carte de développement DE2-70 dAltera.
</p>
<div class="image centered" style="width: 408px">
<img src="images/projet_pro-fpga/de2_70.jpg" alt="Cartes de développement DE2-70" style="width: 400px" />
<p>Cartes de développement DE2-70.</p>
</div>
</section>
<section>
<header>
<h3>Communication Matlab FPGA</h3>
</header>
<p>
Afin de faire communiquer Matlab avec le FPGA, il a été utilisé la communication
la plus simple pour débuter, la liaison série RS232 (à 115.2 kBits/secondes).<br />
Un pilote à été fait, car Altera ne fourni pas de pilote série pour cette carte.
</p>
</section>
<section>
<header>
<h3>Traitement</h3>
</header>
<p>
Pour le traitement les fonctions arc-tangente, sinus et cosinus sont nécessaires,
ces fonctions ne sont pas disponible sur FPGA, car elles renvoient des flottants.
Il a donc fallut trouver une astuce avec un tableau de valeur les représentant.
</p>
</section>
<section>
<header>
<h3>Sauvegarde</h3>
</header>
<p>
Afin de sauvegarder les images réceptionnées et traitées, il a fallut utiliser la
SSRAM disponible sur la carte de développement. Une fois de plus les pilotes SSRAM
ne sont pas fournis par Altera, il a donc fallut les concevoir à partir de la datasheet.
</p>
</section>
<section>
<header>
<h3>Résultat</h3>
</header>
<p>
Voici un exemple de résultat de traitement à partir dune anche de saxophone:
</p>
<div class="image centered" style="width: 623px; ">
<img src="images/projet_pro-fpga/mires_vierges.png" alt="Cartes de développement DE2-70" style="width: 615px; padding-bottom: 4px;" />
<img src="images/projet_pro-fpga/mires_objet.png" alt="Cartes de développement DE2-70" style="width: 615px; padding-bottom: 4px;" />
<img src="images/projet_pro-fpga/untitled_phase3_fpgamatlab_filtre_jalil_couper_2.png" alt="Cartes de développement DE2-70" style="width: 366px; float: left; padding-right: 4px;" />
<img src="images/projet_pro-fpga/untitled_phase3_fpgamatlab_filtre_3d_jalil_couper.png" alt="Cartes de développement DE2-70" style="width: 248px;" />
</div>
<p>
On obtient sur les images ci dessus, les 4 images de franges déphasées de pi/4 sans lobjet,
puis les 4 images de franges déphasées de pi/4 avec lobjet. Le résultat en 2D (niveau de gris)
de la anche, ainsi que le vue en 3D de celle-ci.
</p>
</section>
<section>
<header>
<h3>Amélioration</h3>
</header>
<p>
La liaison série utilisée est relativement lente. Ce qui a été envisagé par la suite
cest dutiliser la liaison USB qui est beaucoup plus rapide à la place de celle-ci.
</p>
</section>
</article>
</div>
</div>
<hr />
<!-- sources -->
<div class="row">
<section class="12u 12u(mobile) special">
<header>
<h6>Lensemble du projet nest pas décrit ici. Une bonne partie a été omise. Seule la trame générale est présentée.</h6>
</header>
</section>
</div>
</div>
</div>
<!-- Footer -->
<div id="footer">
<div class="container">
<div class="row">
<div class="12u">
<!-- Contact -->
<section class="contact">
<header>
<h3>Vous pouvez me retrouver sur:</h3>
</header>
<ul class="icons">
<li><a href="https://www.linkedin.com/in/mtansorier/" class="icon fa-linkedin" title="LinkedIn"><span class="label">LinkedIn</span></a></li>
<li><a href="https://git.tansorier.fr/micka" class="icon fa-git-square" title="Git"><span class="label">Git</span></a></li>
<li><a href="mailto:mickael@tansorier.fr" class="icon fa-envelope-o" title="E-mail"><span class="label">E-mail</span></a></li>
<li><a href="docs/Curriculum_Vitae_-_TANSORIER.pdf" class="icon fa-download" title="Curriculum Vitae"><span class="label">Curriculum Vitae</span></a></li>
</ul>
</section>
<!-- Copyright -->
<div class="copyright">
<ul class="menu">
<li><img src="images/by.svg" /></li><li>Mickaël TANSORIER</li><li>Design: <a href="http://html5up.net">HTML5 UP</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/jquery.dropotron.min.js"></script>
<script src="assets/js/jquery.scrolly.min.js"></script>
<script src="assets/js/jquery.onvisible.min.js"></script>
<script src="assets/js/skel.min.js"></script>
<script src="assets/js/util.js"></script>
<!--[if lte IE 8]><script src="assets/js/ie/respond.min.js"></script><![endif]-->
<script src="assets/js/main.js"></script>
</body>
</html>