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