Détection, caractérisation et suivi de régions actives dans des

Transcription

Détection, caractérisation et suivi de régions actives dans des
Institut Supérieur
d'Informatique de
Modélisation et de
leurs Applications
Complexe des Cézeaux
bp 125
63173 Aubière Cedex
Rapport de projet de 2 année
Filière F4
Détection, caractérisation et suivi de régions
actives dans des images du Soleil
Présenté par :
Etienne Bordes et Aurélie
Responsable projet : Vincent Barra
Canale
Durée: 120 h
Soutenance : Mars 2007
Remerciements
Nous remercions Vincent BARRA pour ses conseils et sa disponibilité tout au long de ce projet
ainsi que Christophe DUHAMEL pour son aide au développement de notre programme en C++.
Nous remercions également David TSCHUMPERLE, auteur de la librairie CImg, pour toutes ses
réponses.
Table des gures
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
Soleil en phase d'activité minimale et maximale (source Mission SoHO)
Nombre de Wolf depuis 1750 (source Observatoire Royal de Belgique) .
Diagramme de Maunder (source Observatoire Royal de Belgique) . . .
Images sous les quatres longueurs d'onde(source Mission SoHO) . . . .
Image segmentée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Classe des régions actives . . . . . . . . . . . . . . . . . . . . . . . . . .
Classe des trous coronaux . . . . . . . . . . . . . . . . . . . . . . . . .
Classe des régions calmes . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
3
4
4
6
6
7
7
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
Image segmentée, classe des régions actives . .
Image binarisée . . . . . . . . . . . . . . . . .
Image binarisée avec contour coloré . . . . . .
Coloration d'une région . . . . . . . . . . . . .
Coloration de plusieurs régions . . . . . . . . .
Contour de la région . . . . . . . . . . . . . .
Exemple de chier de statistiques d'une région
Suivie d'une image à l'autre . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
9
9
10
10
11
12
13
3.1
3.2
3.3
3.4
Exemple du tracé de l'aire . . . . . . . . . . .
Exemple de mauvais suivi . . . . . . . . . . .
Mauvais suivi illustré par l'évolution de l'aire .
Région se séparant en deux . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
15
15
16
C.1 Suivi de la région . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V
C.2 Courbes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI
Résumé
L'étude des variations des structures solaires est nécessaire à la compréhension de leurs eets sur
le climat spatial et par là sur les activités humaines. Le télescope EiT placé sur le satellite SoHO
renvoie dans ce but des images du Soleil prises sous plusieurs longueurs d'onde.
Ces images sont traitées par un algorithme de classication oue, séparant en diérentes classes
les régions de la couronne solaire : les trous coronaux, le soleil calme et les régions actives. Nous
proposons ici un programme en C++ qui isole et étudie automatiquement les régions actives sur
les images traitées. La bibliothèque CImg facilite la réalisation de ce programme, qui suit les régions
actives sur plusieurs images successives.
On obtient des images représentant les diérentes régions au cours du temps, ainsi que des chiers
regroupant leurs principales caractéristiques, comme l'aire ou la dimension fractale. Le suivi n'est
pas satisfaisant car l'étude de proche en proche n'est pas une méthode assez rigoureuse : les régions
sont souvent mal suivies voire perdues. Les critères de détection et de suivi doivent donc être anés,
an de prédire leur réapparition après leur passage dans la partie cachée du soleil.
Mots clefs : Soleil, régions actives, classication oue, classes, isolement
Abstract
The study of solar structure variations is necessary for the understanding of their eects on the
spatial climate and thus on human activities.The EiT telescope placed on the SoHO satellite sends
back images of the Sun taken under several wavelengths.
These images are handled by a fuzzy clustering algorithm, separating in various classes the
regions of the solar corona : coronal holes, quiet sun and active regions. Here we propose a C++
program which isolates and studies automatically active regions on the modied images. The CImg
library facilitates the realization of this program, which follows the active regions on several successive images.
We obtain images representing the various regions in time, as well as les including their main
characteristics, like the area or the fractal dimension. The follow-up is not satisfactory because the
step by step study is not a very rigorous method : regions often are badly surveyed or lost. Thus the
criteria of detection and follow-up must be rened, to predict their return after their passage in the
hidden part of the Sun.
Keywords : Sun, activ regions, uzzy clustering, class, isolation
Table des matières
Remerciements
Table des gures
Résumé, Abstract
Table des matières
Introduction
1
1 Présentation de l'étude
2
1.1
Contexte de l'étude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.1.1
L'activité solaire
2
1.1.2
Les régions actives
1.1.3
Mission SoHO
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2
Sujet de l'étude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3
Outils utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.1
Le langage C++
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.2
La librarire CImg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.3
Le programme de segmentation d'images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2 Travail eectué
8
2.1
Epuration de l'image segmentée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.2
Etude de régions sur une image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.3
Suivi d'une région
12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Résultats et discussion
3.1
Stockage des résultats
3.2
Discussion et limites
14
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
Conclusion
17
Bibliographie
ANNEXES
A Manuel de l'utilisateur
B Algorithme de la méthode du Box-counting
C Exemple d'étude et de suivi d'une région
D Code
I
IV
V
VII
Introduction
La dernière décénie a vu l'augmentation des études des conséquences du climat solaire sur les
activités humaines. La météorologie solaire a pour but la compréhension de l'environnement solaire,
notamment les taches de surface, les éruptions ou les vents solaires. Cette compréhension est nécessaire à l'anticipation de problèmes liés directement à ce climat, aussi bien au voisinage de la Terre
qu'en surface. Les éjections de masse coronale par les protubérances peuvent aecter les satellites
en entraînant une perturbation de leur orbite voire leur perte irrémédiable, ou les spationautes qui
risquent d'être soumis à des radiations mortelles. Les protons solaires qui entrent dans l'atmosphère
terrestre au niveau des pôles peuvent troubler les ondes radio sur Terre et empêcher temporairement
les communications. Les orages magnétiques créent un courant induit dans les lignes électriques qui
peut engendrer la destruction de transformateurs électriques et la perturbation du réseau (comme
au Québec le 13 mars 1989). D'autres eets, comme l'érosion des pipelines ou encore la déroute des
animaux migrants grâce au champ magnétique terrestre, sont également avancés. An de comprendre
et prévoir ces perturbations, il est nécessaire d'étudier le fonctionnement du Soleil.
Cette étude comprend entre autre le suivi des Régions Actives du Soleil. Jusqu'à présent, les
catalogues ociels attribuent un nouveau label à toutes les régions actives apparaissant au bord du
disque solaire, même si certaines étaient déjà présentes lors de la précédente rotation. Les Régions
Actives sont le siège de la plupart des éruptions solaires, pour la Météo de l'Espace il est important
de suivre au plus près leur évolution. Le but de ce projet est d'automatiser l'étude de ces régions
pour être capable d'eectuer leur suivi au cours d'un cycle et prédire, après une rotation de l'astre,
leur position approximative au bord du disque.
Nous avons travaillé sur des images du Soleil récoltées par le téléscope spatial EIT de la mission
SoHO. Le développement se fait en C++ sous Linux, à l'aide d'une bibliothèque de traitement
d'images facile à prendre en main (CImg). Nous n'avons pas travaillé sur les images pures prises
par le télescope mais sur des images segmentées où seules les Régions Actives sont conservées. On
s'intéressera tout d'abord à une détection et à une caractérisation numérique automatique de ces
régions sur une image qui sera au préalable épurée pour faciliter l'étude. Une fois cette caractérisation
eectuée nous verrons le suivi d'une région au l des images. Enn nous étudierons les résultats
obtenus, nous déterminerons les limites de notre travail et les améliorations possibles.
1
Chapitre 1
Présentation de l'étude
1.1
1.1.1
Contexte de l'étude
L'activité solaire
Plusieurs cycles solaires ont été mis en évidence : le premier de 179 ans, dû aux marées solaires
provoquées par les planètes du système solaire, le deuxième de 22 ans, concernant le champ magnétique solaire, enn un cycle de 11,2 ans en moyenne, représentant l'activité solaire. Au cours de ce
dernier, appelé cycle de Schwabe, le Soleil passe d'un stade d'activité minimale à un stade de haute
activité, avant de revenir au minimum.
On peut diviser la surface externe du Soleil en trois grandes catégories : le soleil calme, les trous
coronaux et les régions actives appelées aussi taches solaires. Celles-ci représentent respectivement
les régions du Soleil où l'activité est minimale, les régions coronales sombres sources du vent solaire,
et les régions représentatives de l'activité du Soleil.
Lorsque le Soleil est en phase d'activité minimale, les trous coronaux sont regroupés aux pôles, le
reste du Soleil est calme et il y a peu de régions actives. Lorsque le soleil entre dans sa phase active,
les trous coronaux migrent vers l'équateur et les régions actives apparaissent entre les latitudes 50 ◦
Nord et 50 ◦ Sud. Elles sont de tailles maximales au stade de l'activité solaire maximale (gure 1.1).
Fig.
1.1 Soleil en phase d'activité minimale et maximale (source Mission SoHO)
Le Soleil suit donc un cycle de 11,2 ans pendant lequel son activité varie. Les risques pour les
activités humaines sont élevés lorsque l'activité du Soleil est maximale. Le Soleil est actuellement
en période calme, le dernier pic d'activité remonte à 2000-2001. Le prochain pic d'activité aura lieu
autour de 2012.
2
Chapitre 1. Présentation de l'étude
1.1.2
Les régions actives
Les régions actives sont la source de la majorité des éruptions solaires et donc des éjections de
masse coronale ainsi que des protubérances. Elles sont responsables des troubles que subit l'activité
humaine.
L'activité du Soleil croît avec la taille des régions actives. Celles-ci sont donc la conséquence de ce
surcroît d'activité. On peut mesurer l'activité du Soleil grâce au nombre de Wolf (ou Sunspot Number) qui prend en compte le nombre de taches et le nombre de groupes de taches. Son calcul est simple :
W = k.(10.G + N )
avec:
G : nombre de groupes de taches
N : nombre de taches
k : correctif dépendant du moyen d'observation utilisé
Ce nombre de Wolf, reporté sur la gure 1.2, est calculé depuis 1750.
Fig.
1.2 Nombre de Wolf depuis 1750 (source Observatoire Royal de Belgique)
Le nombre de Wolf est un moyen simple de décrire l'activité du Soleil, à partir du nombre de
régions actives.
Les régions actives apparaissent entre les latitudes 25 ◦ C et 35 ◦ C au nord et au sud, puis elles
s'élargissent au cours du temps. Un graphique en papillon, appelé graphique de Maunder (gure 1.3),
permet de décrire cette disposition au cours du temps.
3
Chapitre 1. Présentation de l'étude
Fig.
1.1.3
1.3 Diagramme de Maunder (source Observatoire Royal de Belgique)
Mission SoHO
La collaboration entre la NASA et l'ESA dans la construction du satellite SoHO (Solar and Heliospheric Observatory) [2] montre l'importance pour l'homme et son développement de connaître au
mieux le Soleil.
Lancé le 2 décembre 1995, il est situé autour du point Lagrangien L1, où les champs gravitationnels
du Soleil et de la Terre se compensent. Il peut donc observer la révolution du Soleil tout en restant
pratiquement immobile face à lui (le point Langrangien L1 étant très instable le satellite doit eectuer une petite rotation autour de ce point). Il est composé de 12 instruments d'observation, dont
le télescope EiT (Extrem ultraviolet Imaging Telescope), créé par l'institut d'astrophysique spatiale
français. Il collecte toutes les 30 minutes des images du Soleil dans 4 longueurs d'onde diérentes :
17.1 nm, 19.5 nm, 28.4 nm et 30.4 nm. Ces longueurs d'onde correspondent à une quantication d' isotopes, respectivement le Fer IX/X, le fer XII, le Fer XV et l'Helium II. Ces longueurs d'onde peuvent
également être considérées comme des vues du Soleil à diérentes températures (par exemple le Fer
XII est présent à une température de 1.5 millions de Kelvins et l'Hélium II est formé principalement
entre 60 000 et 80 000 Kelvins) (gure 1.4).
Fig.
1.4 Images sous les quatres longueurs d'onde(source Mission SoHO)
Les diérentes structures solaires peuvent donc être idéalement observées lors de leur passage
devant le télescope.
4
Chapitre 1. Présentation de l'étude
1.2
Sujet de l'étude
Jusqu'à ce jour, l'étude de ces régions se faisait manuellement et les catalogues ociels attribuaient un nouveau label à toutes les régions actives apparaissant au bord du disque solaire. Il était
dicile d'éviter la redondance car certaines étaient déjà présentes lors de la précédente rotation.
Notre travail consiste en la création d'un programme en C++ qui permettra une détection automatique des régions actives tirées d'images du télescope à une longueur d'onde donnée. Il assurera
la caractérisation de ces régions par l'enregistrement d'informations telles que l'aire, la forme, ou la
dimension fractale. Jusque là cette caractérisation était eectuée chaque jour manuellement (classication de Mount Wilson des Régions Actives, qui permet d'évaluer la probabilité pour une région
active de produire des éruptions solaires de grande amplitude). Il devra pouvoir eectuer de manière
automatique le suivi de ces régions et prédire leur position approximative au bord du disque après
une rotation de l'astre. Ce suivi doit permettre une meilleure compréhension des régions déterminant
le climat spatial.
1.3
1.3.1
Outils utilisés
Le langage C++
Le C++ est une version améliorée du langage C. Son objectif de base est de permettre d'exprimer dans un langage proche du problème à résoudre les concepts d'une solution. C'est un langage
orienté objet qui ajoute au langage C des fonctionnalités objet telles que l'encapsulation, l'héritage
et le polymorphisme. Toutes les fonctionnalités qu'apportaient le C sont renforcées par de nouvelles
fonctionnalités et un grand nombre de bibliothèques. Ce langage ore donc beaucoup de possibilités
au programmeur. Il nous sera ici utile pour l'utilisation de classes d'images, la classe SunImage et la
classe CImg.
1.3.2
La librarire CImg
La bibliothèque CImg [3] est une librairie C++ pour le traitement d'images. Elle a été conçue pour
aider au développement d'algorithmes pour des données telles que des images 2D, ou des volumes
3D de tenseurs. La bibliothèque CImg est générique grâce à la paramétrisation du modèle de pixel
et au grand nombre possible de dimensions (4 dimensions pour une image). Elle fournit une classe
simple et un grand nombre de méthodes pour sauvegarder, charger, traiter et acher des images au
sein de notre code. Elle consiste en un simple chier d'entête CImg.h à inclure dans le programme
source et permet de travailler sur divers types d'images (GIF,BMP,TIF,JPG,PNG,...).
Son utilisation a grandement simplié notre programme puisque toutes les fonctions de base existaient déjà. Nous avons travaillé sur nos images en les manipulant comme des objets de la classe
CImg. Cette classe représente une image dont le type des pixels est déni par l'utilisateur. Nous
avons utilisé les méthodes implémentées dans cette classe pour par exemple charger nos images segmentées qui étaient au format JPG, les parcourir, les faire passer d'une coloration en niveau de gris
à une coloration RedGreenBlue, les visualiser, etc...
5
Chapitre 1. Présentation de l'étude
1.3.3
Le programme de segmentation d'images
Les images sur lesquelles nous travaillons subissent dans un premier temps un pré-traitement au
sein du programme : elles sont segmentées.
On traite les images du Soleil acquises par le télescope au format ts, à une longueur d'onde donnée.
Ce format fournit non seulement l'image, mais aussi divers renseignements tels que ses dimensions,
les coordonnées du centre du Soleil, le rayon ou la date. Les images sont gérées par la classe SunImage
qui fournit diverses méthodes. Le programme de segmentation va les lire et les segmenter en trois
classes. Cette segmentation utilise un algorithme de segmentation oue [1] qui donne pour chaque
pixel sa probabilité d'appartenir à une classe. A partir de chaque image vont être créées quatres nouvelles images: une représentant l'image segmentée (gure 1.5), les autres représentant chaque classe
séparément (régions actives gure 1.6, trous coronaux gure 1.7, soleil calme gure 1.8). Ces quatres
images sont sauvegardées au format JPG. Nous travaillons donc directement sur l'image segmentée
représentant la classe des régions actives.
Fig.
Fig.
1.5 Image segmentée
1.6 Classe des régions actives
6
Chapitre 1. Présentation de l'étude
Fig.
1.7 Classe des trous coronaux
Fig.
1.8 Classe des régions calmes
7
Chapitre 2
Travail eectué
2.1
Epuration de l'image segmentée
Notre étude est basée sur le traitement des images du Soleil segmentées en diérentes classes.
Toutes les images segmentées, représentant la classe des régions actives (gure 2.1), sont stockées
dans un vecteur d'images CImg dans l'ordre de leur traitement (qui est donc aussi l'ordre d'acquisition
chronologique).
Fig.
2.1 Image segmentée, classe des régions actives
Notre intérêt portant seulement sur les régions actives, notre premier travail a consisté à les
séparer des autres régions, pour ne garder que les pixels représentant les régions actives. Nous avons
donc xé un degré d'appartenance du niveau de gris, en-dessous duquel le Soleil est considéré comme
calme. Suivant le niveau de gris du pixel, une fonction Binaire lui donne une valeur extrême. Nous
avons donc obtenu une image en noir et blanc, le noir représentant les régions actives, le blanc le
soleil calme (gure 2.2).
8
Chapitre 2. Travail eectué
Fig.
2.2 Image binarisée
Pour travailler avec des couleurs, nous avons forcé l'image à passer en couleur RGB grâce à la
fonction resize fournie par CImg. Pour avoir un bon contraste sur l'image et être sûr de ne pas traiter
des pixels qui n'appartiendraient pas au Soleil, nous avons créé une fonction qui permet à l'utilisateur
de choisir la couleur du contour du Soleil. Nous avons décidé d'utiliser un contour rouge (gure 2.6).
Fig.
2.3 Image binarisée avec contour coloré
L'utilisateur a ensuite le choix entre deux techniques d'étude de région : soit il sélectionne la région qu'il souhaite étudier et celà autant de fois qu'il le désire, soit une détection automatique étudie
toutes les régions actives de l'image.
Dans tous les cas, chaque région doit être isolée pour être étudiée indépendamment des autres. Une
fonction de coloration nous a permis de sélectionner une région en fournissant les coordonnées d'un
point de la région et de la faire apparaître de la couleur voulue sur l'image.
9
Chapitre 2. Travail eectué
Fig.
2.4 Coloration d'une région
La région sélectionnée apparaît donc sur la gure 2.4 en jaune, ce qui permet, lors de la détection
manuelle, de bien la distinguer et de vérier qu'elle a été correctement sélectionnée. Cette région
est automatiquement indexée. Lors de la détection manuelle, ce sont les coordonnées du point selectionné qui sont transmises au programme, sinon, lors de la détection automatique, le programme va
s'intéresser à tout point utile du Soleil. Le critère est ici d'appartenir à une région assez grande
de pixels noirs (les pixels sont testés avec une fonction Voisinage). De plus, lors de la détection
automatique, à chaque nouvelle région détectée, une nouvelle couleur sera attribuée (gure 2.5).
Fig.
2.5 Coloration de plusieurs régions
L'étude des propriétés de la région se fait sur les niveaux de gris de l'image d'origine. L'image
colorée constitue un calque sur l'image de départ, an de séparer la région de l'image. Une nouvelle
image nous donne alors la seule région d'intérêt.
Lors du parcours de l'image colorée, en parallèle à celui de l'image d'origine, nous en protons pour
calculer l'aire (en nombre de pixels) et les coordonnées du barycentre de la région. La région étant
correctement isolée, son étude peut commencer.
10
Chapitre 2. Travail eectué
2.2
Etude de régions sur une image
L'isolement de la région nous permet de nous intéresser à certaines de ses caractéristiques, notamment les statistiques sur les niveaux de gris : le minimum et le maximum, la moyenne et la
médiane, la variance. D'autres caractéristiques comme la dimension fractale peuvent être calculées.
Pour cela , la liste des niveaux de gris des pixels est stockée dans une image CImg qui représente un
vecteur dont la taille correspond à l'aire de la région. Les statistiques sur le niveau de gris sont calculées directement à partir de cette image car CImg fournit déjà des fonctions de calcul de statistique.
On cherche ensuite à calculer la dimension fractale de la région qui est en fait la dimension fractale
du contour. Il faut donc tout d'abord créer une image du contour de la région. Nous avons réalisé cela
avec deux méthodes. La méthode de base était simple : calculer le gradient de l'image de la région, qui
avait été binarisée au préalable. L'image ne comportant que des pixels blanc ou noir, le gradient
fait automatiquement ressortir le contour et là encore, CImg nous a fournit une méthode calculant
le gradient de l'image. Mais nalement, notre chef de projet nous a proposé une autre méthode qui
donnait un contour un peu plus précis. Elle s'applique directement sur l'image de la région en niveau
de gris et regarde simplement pour chaque pixel, selon son voisinage, s'il sera mis en blanc ou en
noir.
Fig.
2.6 Contour de la région
Une fois ce contour obtenu (gure 2.6) nous pouvons calculer la dimension fractale. Nous avons
utilisé pour cela la méthode du Box-Counting.
Méthode du Box-Counting: On découpe l'image en carré de côté de longueur L. On compte
le nombre n de carrés qui contiennent un bout de contour. On ane le quadrillage en passant à L/2
et on réitère l'opération. On continue cette opération jusqu'à avoir assez de points pour tracer la
courbe log(n) en fonction de log(L). Cette courbe est en fait une droite passant par l'origine, et sa
pente (en valeur absolue) est tout simplement la dimension fractale de notre contour. Nous calculons
donc les coordonnées de diérents points de cette courbe et eectuons une régression linéaire pour
avoir la dimension fractale (voir algorithme, annexe B).
Toutes ces données sont regroupées dans un chier (gure A). Comme il est possible de sélectionner plusieurs régions au début du programme, an d'éviter toute confusion chaque région se verra
11
Chapitre 2. Travail eectué
attribuer son propre chier de données. On peut maintenant comparer les caractéristiques d'une
même région sur deux images diérentes, c'est-à-dire à deux instants diérents. On peut retrouver
facilement une région et poursuivre son étude grâce aux données sauvegardées. De plus pour chaque
variable telle que l'aire, la moyenne ou la dimension fractale, un chier texte dans lequel sont stockées
les valeurs numériques nécessaires à l'étude de leur évolution est créé pour chaque région.
2 #Indice Image
1 #Indice region
255 #Couleur R
204 #Couleur G
0 #Couleur B
499 #Aire
686 #Xbary
221 #Ybary
52.000000 #Min
120.000000 #Max
119.000000 #Mediane
85.174349 #Moyenne
307.176369 #Variance
0.915116 #Dim Fractale
Fig.
2.3
2.7 Exemple de chier de statistiques d'une région
Suivi d'une région
L'intérêt de notre programme est de pouvoir suivre les régions sur une demi-révolution du Soleil
an d'apprécier leur comportement au cours du temps. Nous verrons au cours de la troisième partie
que c'est celle qui pose le plus de problèmes.
Là encore, l'utilisateur a le choix entre deux méthodes : soit il indique au programme la région à
suivre, soit le programme eectue automatiquement le suivi de toutes les régions qui ont été étudiées
dans l'étape précédente.
Les images sont stockées dans un chier. Le programme lit les données de la première dans son
chier statistique et essaie de retrouver la région sélectionnée dans les suivantes an de recalculer
les diérentes caractéristiques (gure 2.3). Il continue ainsi de proche en proche en actualisant les
caractéristiques à chaque image. Chaque image a bien sûr au préalable été épurée comme expliqué
précédemment.
Pour étudier une région, un seul point de celle-ci nous sut : il faut, d'une image à l'autre, retrouver
un point de cette région. La technique est tout d'abord de tester le barycentre de l'ancienne région,
car il y a de fortes chances qu'il appartienne toujours à celle-ci ; si ce pixel n'est pas satisfaisant, on
teste tous les pixels de la région sur l'ancienne image en regardant s'ils appartiennent toujours à une
région active. Si c'est le cas, on considère avoir trouvé un pixel de notre région, sinon on considère
que la région a été perdue.
12
Chapitre 2. Travail eectué
Fig.
2.8 Suivie d'une image à l'autre
Si la région a été suivie sur un nombre important d'images, on peut tracer des graphiques à partir
des chiers de données avec un tableur quelconque. Il est ainsi plus aisé d'évaluer les variations des
diérents paramètres.
Nous avons donc la possibilité de tracer 4 graphes pour chaque région étudiée : le graphe de l'aire,
celui de la variance, celui de la dimension fractale, et un dernier regroupant 4 courbes traçant le
minimum, le maximum, la moyenne et la variance.
13
Chapitre 3
Résultats et discussion
3.1
Stockage des résultats
Les données intéressantes de l'étude sont sauvegardées lors de l'exécution du programme. On
peut ainsi récupérer pour chaque région de chaque image segmentée : l'image en niveau de gris, celle
segmentée en couleur RGB avec la région colorée et l'image du contour de la région. On a aussi un chier texte stats.txt pour chaque région réunissant les informations importantes : l'indice de la région,
de l'image, la couleur attribuée, l'aire, les coordonnées barycentriques, le minimum, le maximum, la
moyenne, la médiane et la variance des niveaux de gris et la dimension fractale.
D'autres chiers texte regroupent les informations de chaque région lors du suivi sur plusieurs
images : le minimum, le maximum, la moyenne et la médiane sont regroupés dans un même chier,
l'aire, la variance et la dimension fractale ayant leur propre chier.
Toutes ces sauvegardes se faisant à l'aide de noms de chiers clairs et indicés, la réutilisation
de n'importe quel résultat est grandement facilitée. Les variations de données étant toujours mieux
appréciées sur des courbes que sur des tableaux de valeurs, il sut de tracer les diérentes courbes
de données avec un tableur (gure 3.1). Nous avons regroupés le minimum, le maximum, la moyenne
et la médiane, leur évolution étant liée.
Fig.
3.1 Exemple du tracé de l'aire
14
Chapitre 3. Résultats et discussion
3.2
Discussion et limites
L'étude de ces courbes fait apparaître les principales limites de notre programme. Ces courbes
sont souvent réalisées à partir de peu d'images et présentent parfois des discontinuités, preuves que
le suivi de la région ne s'est pas déroulé correctement.
Ce suivi présente en eet de grosses limites, puisque la recherche se fait à partir de l'image précédente.
Si la région est petite ou si elle se déplace rapidement, on peut très vite la perdre ou retomber sur une
région voisine. Pour améliorer ce suivi, on peut avant tout travailler sur des images plus proches dans
le temps. On peut aussi rajouter des critères de comparaison entre la nouvelle région et l'ancienne
basés sur les caractéristiques calculées. Une variation trop importante d'un critère peut montrer que
l'on n'est pas sur la bonne région. Toutefois ces critères s'avèrent peu signicatifs, comme les informations sur les niveaux de gris ou non susament ables, comme la variation de l'aire aux alentours
de la bordure. On pourrait donc envisager de nouveaux critères tels que la forme, la texture ou les
directions principales.
Fig.
3.2 Exemple de mauvais suivi
Sur la gure 3.2 on voit que la région est bien suivie au départ. Ensuite, sur la troisième image,
au lieu d'aller dans le mouvement général, la région est confondue avec une région voisine qui la
suivait. Ce mauvais suivi se reète sur les courbes (gure 3.3).
Fig.
3.3 Mauvais suivi illustré par l'évolution de l'aire
L'erreur vient également du fait que l'étude de proche en proche ne tient pas compte du passé
des régions. Les évolutions précédentes pourraient nous fournir des critères plus pertinents, comme
15
Chapitre 3. Résultats et discussion
l'évolution de leur forme ou leur vitesse de rotation à la surface du Soleil. La recherche de la région
sur les images suivantes serait ainsi plus ecace.
Lorsque les bons critères seront trouvés, il restera néanmoins à gérer le moment où la région commence à apparaître ou disparaître de l'image renvoyée par le télescope. A ce moment-là, elle n'est
visible que partiellement, ce qui fausse les données enregistrées. Le programme risque également de
faire apparaître deux régions diérentes alors qu'il n'y en a qu'une (gure 3.4). Il faudrait dans ce
cas se limiter aux régions apparaissant entièrement, ce qui réduit le champ d'étude, ou gérer dans
nos fonctions le cas particulier de la bordure du disque.
Fig.
3.4 Région se séparant en deux La résolution de ces erreurs est nécessaire au suivi correct des régions actives et à la compréhension de leur fonctionnement par l'étude de données exploitables. Sans un suivi correct, nous pouvons
dicilement prévoir leur réapparition devant le télescope, une fois passées dans la face cachée du
Soleil. Une région active a une durée de vie d'environ 4 à 5 rotations solaires. L'évaluation de son
âge lors de son passage devant le télescope est nécessaire à toute anticipation. Il faut pour cela considérer les vitesses de croissance et de décroissance de l'aire d'une région au cours du temps, ainsi que
la durée de l'aire maximale. Une généralisation des comportements est essentielle à la conservation
de l'automatisme du programme. On ne peut cependant observer une région que pendant 13 jours
consécutifs et ce dans le meilleur des cas. Il faut alors parcourir un nombre important d'images pour
sélectionner les régions intéressantes et ressortir un comportement général.
Le temps d'exécution du programme est assez long, notamment si l'on utilise la méthode automatique de recherche. Celle-ci risque de s'attarder sur des régions dénuées d'intérêt, notamment les
plus petites. Mais puisqu'il est impossible de les distinguer des régions naissantes ou mourantes, il
est dicile de xer un seuil d'aire minimale si l'on souhaite faire ressortir le comportement général
vu dans le paragraphe précédent. On peut par contre utiliser le programme sur plusieurs images en
même temps. Mais ceci est réservé aux tâches qui nécessitent un parcours entier de l'image, comme
la segmentation.
L'utilisation de la détection manuelle entraîne un achage de plusieurs images que l'utilisateur
doit fermer pour continuer à avancer dans le programme. Nous avons délibérément choisi d'acher
les étapes des méthodes, an de permettre à l'utilisateur de bien comprendre le fonctionnement du
programme. Il est bien sûr possible de supprimer ces achages par la suite.
16
Conclusion
Le programme de détection et de caractérisation automatique des régions actives que nous avons
implémenté fonctionne et fournit de bons résultats pour les répertorier. Le suivi encore basique peut
s'avérer utile, bien qu'il ait besoin d'être amélioré pour fonctionner correctement. Par manque de
temps, une partie ayant été utilisée à la prise en main des outils, nous n'avons pu rectier ces erreurs
de fonctionnement et n'avons donc pas pu nous pencher sur le problème de la réapparition des régions.
Des modications peuvent être eectuées pour réduire le temps de calcul si l'on souhaite étudier
un grand nombre d'images. Mais un perfectionnement du suivi doit être envisagé prioritairement
pour rendre le programme ecace, et ainsi exploiter les données enregistrées.
17
Bibliographie
[1] BARRA Vincent, DELOUILLE Véronique , HOCHEDEZ Jean-François, CHAINAIS Pierre,
Segmentation of EIT images using fuzzy clustering: a preliminary study
[2] Mission SoHO: http://sohowww.nascom.nasa.gov/home.html
[3] CImg: http://cimg.sourceforge.net/
ANNEXES
Chapitre A. Manuel de l'utilisateur
Annexe A
Manuel de l'utilisateur
Contenu de l'archive :
Le programme est contenu dans l'archive Programme.rar.
Contenu de l'archive :
Fichiers d'en-tête : CImg.h, FCMClassier.h, SunImage.h, projet.h
Fichiers sources : FCMClassier.cpp, SunImage.cpp, projet.cpp, mainAR.cpp
Dossiers img, img_classe, img_res, data
Les trois premiers dossiers sont vides. Le dossier img contiendra les images à traiter, le dossier
img_classe les images segmentées, et le dossier img_res les résultats de l'étude des régions : leurs
images, les chiers de statistiques, etc...
Préparation:
Extraire les chiers de l'archive dans un dossier spécique Placer les images en format ts à traiter
dans le dossier img Paramétrer le chier param.txt Ce chier ce présente sous la forme :
img/ #Image directory
3 #Number of classes
0.95 #On-disc radius
195 #Type of images
1 #Type of analysis
Image directory : dossier contenant les images à traiter
Number of classes : nombre de classes de segmentation (entier)
On-disc radius : rayon d'analyse (réel)
Type of images : type des images analysées (entier)
Type of analysis : type d'analyse (entier)
Remarque : Seul le type d'analyse 1 a été implémenté, on ne travaille que sur une seule longueur
d'onde.
Congurer le chier du dossier data. Son nom est du type B(longueur d'onde)_(nombre de
classes).txt. Le chier initial est B195_3.txt. Le programme est alors conguré pour la longueur
d'onde 19,5 nm et 3 classes de segmentation.
I
Chapitre A. Manuel de l'utilisateur
Ecrire à l'intérieur les coordonnées des centres de classe.
Ici on avait donc : 0.000289 69.5556 290.3616
Exécution du programme depuis le terminal :
-> Se placer dans le dossier contenant le programme préparé
-> Exécuter la ligne de commande ./Programme>./exe
Le programme se lance, lit les images à traiter, le nombre d'éléments et ache la première image
après segmentation. La fermer.
Choisir une méthode de détection des régions, en entrant 1 pour la méthode automatique, 2 pour la
méthode manuelle.
- pour la méthode automatique : le programme étudie toutes les régions actives, sauvegarde tous les
renseignements utiles.
- pour la méthode manuelle : l'image épurée s'ache, sélectionner la région à étudier. L'étude se
lance, la région en couleur, suivie de son contour sont achés. Fermer ces images au fur et à mesure
pour poursuivre. De retour sur l'image principale, sélectionner une nouvelle région à étudier, ou
fermer la fenêtre pour passer à la suite.
Pour chaque région étudiée vont être sauvegardés dans le répertoire img_res :
- l'image avec la région étudiée coloriée (coloriage)
- l'image en niveau de gris où n'apparait que la région étudiée (region)
- l'image du contour de la région (contour)
- les chiers stats.txt avec les statistiques
- diérents chiers texte avec les valeurs de : l'aire, moyenne, mediane, variance, min, max,
dimension fractale (aire.txt, var.txt, dimfract.txt et maxminmeanmed.txt regroupant moyenne,
médiane, minimum et maximum).
Exemple d'un chier stats:
2 #Indice Image
1 #Indice region
255 #Couleur R
204 #Couleur G
0 #Couleur B
499 #Aire
686 #Xbary
221 #Ybary
52.000000 #Min
120.000000 #Max
119.000000 #Mediane
85.174349 #Moyenne
307.176369 #Variance
0.915116 #Dim Fractale
II
Chapitre A. Manuel de l'utilisateur
Une fois l'étude terminée, le nombre de régions étudiées est aché : entrer le numéro de la région à
suivre dans la suite des images, -1 pour les uivre toutes ou 0 pour arrêter le programme.
Si le numéro d'une région est entré, son suivi va être eectué et vont être sauvegardés dans le
répertoire img_res : les contours, coloriages, regions, stats.txt, et les nouvelles valeurs des
caractéristiques vont être ajoutées dans les chiers correpondants (du type nomvariable
indice_region.txt).
Les noms de chiers nissent par : numero region_numero image.
exemple: stats3_0.txt région numéro 3 étudiée sur l'image 0 (au départ l'étude est réalisée sur
l'image 0, et le suivi sur les images suivante).
III
Chapitre B. Algorithme de la méthode du Box-counting
Annexe B
Algorithme de la méthode du Box-counting
[Initialisation:]
← 0;
← 1024/2; [ largeur des cellules, on travaille ici sur des images 1024*1024 ]
nbPts ← 0; [ nombre de points de la courbe ]
nbCellule ← = 2; [ nombre de cellules par ligne/colonne ]
dimFract
L
somx = somy = somxx = somxy = 0;
Tant que (L ≥ 1) faire
n = 0;
Pour ( int m = 0; m < nbcellule; m++) faire
Pour (int s = 0; s < nbcellule; s++ ) faire
[ on s'intéresse à chaque cellule de l'image ]
Cellule
present
← Image(m*L+1,
← 0;
s*L+1, m*L+L, s*L+L);
Pour (chaque pixel de la cellule) faire
Si (Pixel > 10) Alors
present
← 1; [ on a trouvé un bout du contour ]
Fin Si
Fin Pour
Si (present) Alors
n ++;
[la cellule contenait un bout du contour: on incrémente n ]
Fin Si
Fin Pour
Fin Pour
[ coecients pour la régression linéaire ]
somx = somx + log(L);
somy = somy + log(n);
somxy = somxy + log(L).log(n);
somxx = somxx + log(L).log(L);
nbterme ++ ;
L = L/2 ; nbcellule = nbcellule.2 ;
Fait
dimFract =
|
nbterme.somxy−somx.somy
nbterme.somxx−somx.somx
[ modication du quadrillage ]
|; [ résultat de la régression linéaire ]
IV
Chapitre C. Exemple d'étude et de suivi d'une région
Annexe C
Exemple d'étude et de suivi d'une région
Fig.
C.1 Suivi de la région
V
Chapitre C. Exemple d'étude et de suivi d'une région
Fig.
C.2 Courbes
VI
Chapitre D. Code
Annexe D
Code
VII
Chapitre D. Code
VIII
Chapitre D. Code
IX
Chapitre D. Code
X
Chapitre D. Code
XI
Chapitre D. Code
XII
Chapitre D. Code
XIII
Chapitre D. Code
XIV
Chapitre D. Code
XV
Chapitre D. Code
XVI
Chapitre D. Code
XVII