|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : juillet 2007 Messages : 288 ![]() |
Bonjour à tous,
Je travaille en ce moment sur un petit projet "pour le fun" et je sèche sur le recallage des images. Le but du traitement est de permettre à un astronome amateur de pouvoir additionner et traiter des lots d'image de façon automatique. Ces images sont des images de paysages stellaires, contenant (normalement) de nombreuses étoiles de plus ou moins faibles magnitudes (plus ou moins saturées, de différentes tailles). Les hypothèses sur les images en entrées : il y a au moins une trentaine d'étoile utilisables, il peut y avoir des artéfacts et des défauts optiques (aberration sphérique, coma, figure de diffraction et j'en passe) mais aussi dûs au capteur (je pense cependant pouvoir facilement trouver et enlever les pixels chauds, qui ne devrait donc pas poser de problème) avec des temps de pose qui peuvent être différents et donc des occurences qui n'apparaissent que sur certaines images. Les images se recouvrent d'au moins plusieurs dizaines de pourcent (je dirais 30%) et peuvent subir des translations et des rotations. Pour les changements d'échelles et la distortion, je ne suis pas encore sûr, cela dépendra de la méthode de recallage... Pour l'instant, le pseudo-algorithme / structure est assez simple :
Pour la première étape, je pense avoir un résultat propre en utilisant deux filtres simples, d'une part un seuillage qui isole les points quasi-saturés du bruit de fond, d'autre part un filtre qui vérifie le remplissage d'une zone mais pas de son environnement direct (inspiré du Top-Hat Transform, mais en une passe). En illustration vous pouvez trouver en dessous un exemple autour de la constellation d'Orion. Les images raw_zero et raw_one ont été retaillé et leur vraie dimension est celle de zero et one. Ces dernières sont issues du premier filtre. Mais maintenant je bute sur l'algorithme de recallage pour les contraintes énoncées. Je n'arrive pas à trouver un qui convienne sans faire intervenir de FFT. (L'implémentation s'avère délicate puisque je travaille sur GPU, en essayant de ne pas toucher à OpenCL ni CUDA) Si vous avez quelques pistes, des article à lire, etc. je suis preneur! Vous remerciant, |
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 740 ![]() |
Citation:
Citation:
Citation:
j'établirais un tableau des plus lumineuses aux moins lumineuses, identifiées sur la première image de la série je bouclerais sur les images : pour chaque étoile dans l'ordre je calculerais le "déplacement" ensuite, éventuellement un moindre-carrés ou tout autre algo (moyenne par exemple) pour trouver les paramètres (translation,rotation) par image
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|||
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Doctorant en informatique Inscription : juin 2009 Messages : 244 ![]() |
As-tu regardé du côté des logiciels de création de panoramiques tels que hugin. Leurs algos de recalage permettent des alignements fins et comme ils sont open source tu dois pouvoir voir comment ils font.
|
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : juillet 2007 Messages : 288 ![]() |
Merci a vous deux!
Alors, premier probleme, les deux images a aligner ne sont pas necessairement issue de prises avec les memes temps d'exposition, ce qui amene a avoir d'une part des difference entre les saturation de memes objets et de probablement de nouvelles occurences apparaissant la plus exposee des deux. De meme, j'ai peur que l'intensite ne soit pas tout le temps un critere suffisant pour associer deux objets du fait qu'il puisse y avoir des variations entre deux cliches. Ainsi les 3 objets les plus lumineux des deux images ne sont, je pense, pas forcement dans le meme ordre suivant leur intensite. Pour ce qui est de Hugin, il semblerait qu'ils utilisent les algorithmes SURF et RANSAC. Pour SURF, il me semble d'appliquer cela a une image stellaire du fait que la plupart des occurences vont se ressembler... Pan-o-matic (Anael Orlinski) Hugin/CPFind/main.cpp Je recherche donc quelquechose qui s'approche de l'appariement de meshes en 2D selon mes donnees... meme si je vais quand meme tester les histogrammes d'intensite pour voir la repartition, voire meme la correlation des donnees (sans FFT) mais je ne vois pas comment resoudre le probleme de la rotation (tres present dans mon cas, car les photos peuvent etre realisees depuis une monture altazimutale, ne suivant pas la rotation du ciel et engendrant une rotation du champ de plusieurs degres). Je suis toujours ouvert a toutes suggestions... |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 740 ![]() |
Citation:
En fait, pour distinguer toutes les étoiles, il y aurait une règle assez simple : dans l'image la moins exposée tu détermines tes étoiles "de référence". Tu en prend la moins brillante, et la plus brillante, et tu calcules le rapport entre les 2. Puis tu trouves la plus brillante dans l'image la plus exposée, tu détermines le coefficient duquel elle a augmenté par rapport à la première photo, et par une simple règle de 3 sur la moins brillante de la première tu as ton seuil pour l'image la plus exposée... D'autre part, à moins de faire une analyse assez poussée, il te faudra éliminer plus ou moins les étoiles qui saturent.. (sinon, il faut calculer la tâche d'Airy poiur en trouver le centre et la luminosité, après avoir éliminé les bavures horizontales et verticales) Mais les intensités relatives seront les mêmes quell que soit le cliché : les étoiles sont classées en magnitude.. Quel que soit le temps de pose, une étoile de magnitude 4 aura une intensité exp(2.5) plus forte qu'une étoile de magnitude 3... Sauf à saturation... Quant à l'appariement, soit tu te sers d'un algo comme j'ai dit, soit tu utilises une des méthodes exposées sur ce forum
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
|
00
|
|
|
#6 | ||
|
Membre éclairé
![]() Inscription : juillet 2007 Messages : 288 ![]() |
Citation:
Citation:
Ensuite, je n'ai pas vraiment compris pourquoi etudier la tache d'Airy sachant que d'une part les instruments Astro amateur ayant un F/# inferieur a 15 (tres generalement), le diametre de la tache sera, au maximum, de l'ordre de 2.44*(lambda=550nm)*15 = 20.13 microns, donc juste au dessus de Nyquist pour un pixel de 10 microns (courant). Ce qui me parait juste pour ce soucier du barycentre de la tache. De meme cette tache est rarement atteinte sur l'integralite du champs pour nos instruments (pour moi avec un F/4, j'ai une coma qui defie les lois de la Nature... c'est dire), je ne peut donc raisonnablement me tourner vers une etude au cas par cas des instruments... |
||
|
|
00
|
|
|
#7 | |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 740 ![]() |
Citation:
La calibration consiste à prendre N clichés à N temps de pose croissants (le mieux est à incrément constant), puis d'en dédure par moindres carrés la formule pour chaque pixel : Intensité(temps de pose) = Offset + rendement*temps (y = ax + b où x est le temps de pose) Evidemment les étoiles qui à un certain temps de pose saturent seront éliminées de ces pas de temps par le sigma autour du moindres carrés. En ce qui concerne les appariements, tu as pleins de méthodes ici-même Les intervenants plus spécialisés que moi t'indiqueront...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() Doctorant en informatique Inscription : juin 2009 Messages : 244 ![]() |
Moi je continue à penser qu'une approche semblable à celle de hugin pourrait fonctionner mais en modifiant les méthodes utilisée pour la détection et l'appariement des étoiles.
Pour la détection, je ferais le même prétraitement que toi, peut-être suivi d'un amincissement morphologique pour être sur de n'avoir que des points à la fin. Ensuite il faut pouvoir avoir pour chaque étoile un descripteur des motifs d'étoiles dans son voisinage et pour ça tu peux utiliser des descripteurs invariants par rotation et changement d'échelle basés sur la transformée de Fourrier-Mellin: http://www.fresnel.fr/perso/derrode/...e_SDerrode.pdf Tu trouves tes appariements à partir des distances entre les descripteurs et ensuite tu peux utiliser une approche de type RANSAC pour calculer la transformation. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com