Réalité Augmentée pour la chirurgie : Différence entre versions

De Wiki d'activités IMA
(Semaine 50)
(Semaine 50)
Ligne 79 : Ligne 79 :
  
 
[[Fichier:affichage_avec_VBO.png]]
 
[[Fichier:affichage_avec_VBO.png]]
 +
 +
Images prises sur : http://fr.openclassrooms.com/informatique/cours/developpez-vos-applications-3d-avec-opengl-3-3/c-est-quoi-un-vbo
  
 
== Semaine 51 ==
 
== Semaine 51 ==

Version du 17 décembre 2013 à 14:48

Papa Momar MBOUP/ Calvin DELBERGHE

Présentation

Description et Objectif:

Notre projet consiste à assister les chirurgiens lors de chirurgies laparoscopiques. La chirurgie laparoscopique est une technique chirurgicale minimalement invasive où le chirurgien réalise une opération de l'abdomen par de petites incisions où sont placés des trocars qui permettent le passage de fins instruments chirurgicaux. Dans le cadre de ce projet, il s’agit de réaliser l’ablation de la(des) tumeur(s) présente(s) dans le foie du patient. La localisation des tumeurs ainsi que de l’ensemble du réseau vasculaire peut etre réalisé grâce à un scanner pré-opératoire et donc reconstruits en 3D. Cependant, ils ne peuvent pas être visualisés par la caméra lors de l’opération chirurgicale.

Ainsi, le chirurgien ne peut en aucun cas connaitre la localisation de la tumeur et ne peut pas se représenter la distance qui la sépare des parois du foie. D’où le but de notre projet: aider les chirurgiens dans ces opérations. Des travaux récents de l'équipe de recherche Shacra ont permis de suivre avec une bonne précision le mouvement de structures internes du foie pendant une opération laparoscopique. Le projet consiste à utiliser ces travaux pour mélanger le flux vidéo fourni par l'endoscope aux informations calculées par la simulation pour fournir aux chirurgiens des informations utiles sur la position des structures internes du foie lors de la manipulation. Différentes pistes pourront être explorées pour ne pas surcharger le flux vidéo tout en fournissant les informations importantes (position, profondeur, distance à la surface du foie...)

Condition de travail :

1 ordinateur

OpenGL 3.3

SDL 2.0

IDE CodeBlocks

Plan d'action / Gestion de projet

Dans un premier temps, nous allons commencer à suivre des tutoriaux sur le framework OpenGL. Quand on sera assez avancé, nous débuterons le codage du programme principal. Donc pour le premier semestre, le plan est de mettre en place la base du programme et de bien maîtriser OpenGL pour la suite quand on ajoutera des fonctions plus poussées dans le programme.

Réalisation

Semaine 37

Présentation et Choix du sujet.

Semaine 38

Rencontre avec les encadrants du projet:

Explication détaillée du sujet ainsi que les attentes du projet.
Réception des premières données pour débuter quelques tests avec OpenGL.

Semaine 39

Installation d'OpenGL sous Windows avec CodeBlocks. Début des tutoriaux sur le site du zéro:

http://fr.openclassrooms.com/informatique/cours/developpez-vos-applications-3d-avec-opengl-3-3

Semaine 40

Poursuite des tutoriaux.

Semaine 41

Poursuite des tutoriaux.

Semaine 42

Poursuite des tutoriaux.

Semaine 43

Poursuite des tutoriaux

Semaine 44

Poursuite des tutoriaux

Semaine 45

Poursuite des tutoriaux

Semaine 46

Poursuite des tutoriaux

Semaine 47

Fin de la première partie des tutoriaux.

Semaine 48

Semaine 49

Semaine 50

On est arrivé durant cette semaine à représenter une tumeur correctement en 3D.

Cependant, on rencontre un problème quand on a un nombre de vertices élevés à représenter (de l'ordre de 20000 vertices). Une des piste pour la résolution de ce problème est d'utiliser les display list. Cependant, mes display List n'existent plus en OpenGL 3.3. Donc le problème reste irrésolu pour l'instant. On va regarder du coté des VBO (Vertex Buffer Object) et VBA(Vertex Buffer Array).

Les "Display List" permettent un stockage des données sur la carte graphique mais ne permettent pas de mettre à jour ces données. Les "VertexArray" conservent les données dans des tampons en mémoire système ce qui permet de les modifier mais oblige à transférer toutes ces données à chaque fois qu'elles doivent être affichées.

Un VBO est un objet OpenGL qui contient des données relatives à un modèle 3D comme les vertices, les coordonnées de texture, les normales (pour les lumières), ... Sa particularité vient du fait que les données qu'il contient se trouvent non pas dans la RAM mais directement dans la carte graphique.

Les VBO permettent de gagner un temps considérable à OpenGL en évitant de faire des aller-retours inutiles entre la RAM et la mémoire graphique: Interet VBO.png

Chargement avec VBO.png

Affichage avec VBO.png

Images prises sur : http://fr.openclassrooms.com/informatique/cours/developpez-vos-applications-3d-avec-opengl-3-3/c-est-quoi-un-vbo

Semaine 51

Rédaction du rapport d'avancement

Rédaction de la présentation oral

Conclusion Première partie