24
Stagiaire: Stéphane C. Formateur responsable: JC C. Tuteur: Olof S. Développeur informatique Extraction et visualisation d’images À partir de volumes tridimensionnels uropean Synchrotron Radiation Facility Soutenance de stage

Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Embed Size (px)

Citation preview

Page 1: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Stagiaire: Stéphane C.Formateur responsable: JC C.

Tuteur: Olof S.

Développeur informatique

Extraction et visualisation d’imagesÀ partir de volumes tridimensionnels

European Synchrotron Radiation Facility

Soutenance de stage

Page 2: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Plan de l’exposé

• 1) Présentation de l’entreprise

• 2) Position dans l’entreprise

• 3) Situation et solution attendue

• 4) ImageJ

• 5) Réalisations

• Bilan et perspectives

Page 3: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

1 - Présentation de l’entreprise

European Synchrotron Radiation Facility(Installation Européenne de Rayonnement Synchrotron)

- Le synchrotron: un microscope géant capable de sonder la matière à l’échelle atomique grâce aux rayons X. Il en existe une cinquantaine dans le monde.

- produit une lumière équivalente à dix milles soleils.- puissance des rayons X = mille milliards de rayons X hospitaliers

APS, USA ESRF, Europe Spring-8, Japon

Les trois plus importants synchrotrons du monde:

Cf. rapport page 3

Page 4: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Quelques dates

1988 – début de la construction1994 – ouvre ses portes aux utilisateurs (15 lignes de lumières)1998 – pleinement opérationnel (40 lignes de lumières)

L’ESRF en chiffres

Budget annuel: 70 millions d’eurosEffectif: plus de 560 personnesPassagers: 3500 chercheurs par an, séjour moyen de 3 joursExpériences: plus de 1500 expériences chaque annéeLocalisation: Grenoble – Polygone scientifique

Un caractère international

17 pays contribuent au budget30 nationalités représentées dans son personnelL’anglais est la langue officielle

L’ESRF en chiffresCf. rapport page 4

Page 5: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

2 - Position dans l’entreprise

Division expérimentationGroupe SciSoft

rôle de SciSoft:

développer les logiciels nécessaires à l’exploitationdes données produites par les systèmes d’acquisition.

effectif du groupe:

8 personnes (scientifiques, ingénieurs d’études/développement,ingénieurs supports)

principales activités:

- développement d’outils d’analyse des données et des images- expertise logicielle C, C++, Java, Python…

Cf. rapport page 6

Page 6: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Poste occupé

Poste occupé au sein du groupe SciSoft: développeur informatique.

Chargé de mener à bien un projet sur un cycle de développement complet.De l’expression des besoins à la validation:

- rédaction du cahier des charges- analyse et conception (UML)- implémentation (en Java)- recette (tests unitaires et tests d’intégration)

Description du travail effectué durant le stage:

Une semaine clarification du sujet avec l’utilisateurrédaction du cahier des charges

Deux semaines apprentissage des techniques de création et d’implémentation de pluginspour ImageJ (Java). Premiers développements (tests)

Quelques jours analyse du projet (diagrammes de classes UML)

Quatre semaines implémentation du projet, tests. Livraison à l’utilisateur

Quelques jours ajouts de fonctionnalités.

Cf. rapport page 7

Page 7: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

3 - Situation

2- Les informations relatives aux dimensions d’une couche et le nombre de couche sont stockées dans un deuxième fichier.

1- Le volume généré à partir de l’acquisition est stocké dansun fichier informatique binaire.(très gros volumes)

Cf. rapport page 8

Page 8: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Relative facilité d’acquisition des données et de reconstruction du volume,mais difficulté de visualisation et donc d’analyse de ces données.

longs délais entre les expériences et la publication des résultats.

Besoin d’un outil permettant:

1 – d’observer des tranches virtuelles de l’échantillon (tomogrammes).

2 - d’extraire une partie du fichier initial qui peut faire plusieurs centaines de mégas octets; pour les petites configurations.

Prise en main facile: car destiné également aux chercheurs passagers.

Coût minimum: après leur court séjour au synchrotron (acquisition des données), les chercheurs passagers doivent disposer de cet outil sans avoir à acquérir une coûteuse licence d’utilisation. Les logiciels commerciaux répondant à ces besoins sont trop chers, limités et non évolutifs.

Solution attendueCf. rapport page 9

Page 9: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

4 - ImageJ- Gratuit (freeware et open source) et disponible sur Internet- Entièrement développé en Java, il est compatible avec toute machine disposant de la machine virtuelle Java 1.1- extensible à l’infini par plugins: programmes Java exécutables depuis les menus d’ImageJ

ImageJ a été développé au National Institute of Healthde Bethesda (Mariland, USA)

Cf. rapport page 10

Page 10: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

- Fonctionne sous forme d’application…

Page 11: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

- ou sous forme d’applet* * Un applet est un programme écrit pour Internetdans un langage de programmation appelé Java.Utilisé par les navigateurs Internet pour se doterde fonctions complémentaires.

Cf. rapport page 11

Page 12: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Utilisation d’ImageJ à l’ESRF

! HST_SLAVE VOLUME INFO FILENUM_X = 100NUM_Y = 100NUM_Z = 100RECAD = YESMIN = -18MAX = 18

Contenu du fichier de paramètres .(info)accompagnant les fichiers .raw

1) Lancement d’ImageJet ouverture du fichier image contenant le volume.

2) Entrée des paramètresde l’image manuellement.

Cf. rapport page 12

Page 13: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Les représentations de volumes dans ImageJ

3D renderer

Mosaïque(toutes les images)

Stack(vue du volume couche par couche,

du haut vers le bas)

Page 14: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Explorer l’intérieur d’un volume avec ImageJ

Les plugins actuels sont peu adaptés à l’étude des couches internes de volumes

Le plugin « Reslice »

Page 15: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

5 - Réalisations

Besoin d’un outil permettant:

1 – d’observer des tranches virtuelles de l’échantillon (tomogrammes).

2 - d’extraire une partie du fichier initial qui peut faire plusieurs centaines de mégas octets; pour les petites configurations.

Solution retenue: création de deux plugins (langage Java)

Moyens utilisés:

Jcreator (EDI Java freeware)Jasc Paint Shop Pro 7 (shareware)

ImageJ (freeware)Borland Jbuilder 7

Volume Browser

File Extractor

Cf. rapport page 17

Page 16: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Vue d’ensemble

Les deux plugins sont indépendants l’un de l’autre mais peuvent être utilisés conjointement:L’un pour extraire une partie d’un fichier et l’autre pour visualiser immédiatement les coupes.

Cf. rapport page 17

Page 17: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Plugin « File Extractor »

Extraction d’une pile de couches Sauvegarde du fichier .info

Z

Y

X

O

W Image

H Image

Cf. rapport page 18-19

Page 18: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Quelques caractéristiques:

- Extraction des « .info » facultative- Possibilité de choisir indifféremment le fichier .raw ou .raw.info- Si paramètres lus avec succès, inutile de re-sélectionner un fichier pour lancer l’extraction- Vérifications de cohérence des paramètres (débordement de zone à extraire…)- Gestion des exceptions

Cf. rapport page 20

Page 19: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Note technique:

Selon les machines, il existe deux façons de ranger les octets:octets de poids fort en premier (Big-endian)ou octets de poids faible en premier (Little-endian)

Java considère que les octets ont été rangés selon le modèle Big-endian;si ce n’est pas le cas il faut prévoir une inversion de bits.

Pour les fichiers 8 bits, aucun problème (un pixel=un octet)Pour les fichiers 32 bits, problème! (un pixel=4 octets)

Si le fichier à lire a été généré sur une machine Little-endian:Il faut lire des entiers (2 octets) et inverser les octets.

Le fichier .info contient l’information qui permet de connaître le codage d’origine(BYTEORDER = LOWBYTEFIRST)

Cf. rapport page 21

Page 20: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Plugin « Volume Browser »

- Plugin du type filtre- Affichage du volume initial sous trois angles de vue différents; Correspondant aux vues orthogonales:

X Y Z

Cf. rapport page 22-23

Page 21: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

vues de type couche vues des volumes complets fermeture des vues après sélection d'un point sur l'image

Boutons de déplacementEn mode couche(une seule image par vue)

Accès direct aux couchesEt validations

Cf. rapport page 23

Page 22: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Vues de type couches

Vues de type volumes

Couches – accès direct

Cf. rapport page 24-25

Page 23: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Difficultés rencontrées

Temps d’adaptation:des dizaines d’objets ImageJet des centaines de méthodes

Une communauté très active:Besoin de connaître l’existant(plugins déjà créés)

Investissement initialdifficile à rentabiliser

en quelques semaines

Cf. rapport page 26

Page 24: Stagiaire: Stéphane C. Formateur responsable:JC C. Tuteur:Olof S. Développeur informatique Extraction et visualisation dimages À partir de volumes tridimensionnels

Bilan et perspectives

A la différence de la programmation procédurale,  un programme écrit dans un langage objet répartit l'effort sur un ensemble d'objets.L’approche objet facilite l'écriture de programmes, les rendant plus gérables,plus compréhensibles, plus stables et réutilisables.

Tout au long de mon stage, je me suis efforcé de suivre les préceptes de l'orienté objet.L'utilisation de l'approche objet lors du développement de plugins m'a permis,en plus de faciliter le développement, de garantir l'évolutivité de mes travaux.

Par exemple, les vues orthogonales héritent de traits communs à tous les types de vuesqui peuvent aussi être utilisés (hérités) pour créer de nouvelles vues;comme des vues à angles quelconques.

Cf. rapport page 27-28