mala05

Analyse d'EP dans une cave: méthode Starlink par bibi ;)

Recommended Posts

il y a 47 minutes, Cyrille Thieullet a dit :

Bonjour,

 

Personnellement, dans le soft de mesure de l'EP pour Hobym auquel j'ai participé à la conception et à la réalisation, nous avions utilisé la fonction matchTemplate d'opencv.

 

//int match_method = TM_SQDIFF_NORMED;

int match_method = TM_CCORR_NORMED;

cv::matchTemplate(m_matCapture, m_matReference, m_result, match_method);

//Normalize, in cas of

cv::normalize( m_result, m_result, 0, 1, NORM_MINMAX, -1, Mat() );

// Get Min & Max

minMaxLoc(m_result, &m_minVal, &m_maxVal, &m_minLoc, &m_maxLoc, Mat());

// Upon matching method, must take min r max

if( match_method == TM_SQDIFF || match_method == TM_SQDIFF_NORMED ) {

   m_maxVal = m_minVal;

  m_maxLoc = m_minLoc;

}

 

Il y a une image de référence (m_matReference) et celle en cours (m_matCapture)

Quand le delta de position entre les deux est > à 2/3 en X, la capture courante devient la capture de référence.

 

Ca permet de faire la mesure n'importe où car il est possible de calculer le delta entre de portions d'images.

Une clôture à 20m c'est parfait, le mur d'en face depuis un balcon aussi.

 

Cyrille

 

Ah oui merci

bin c'est presque le même principe de code que j'utilise 

Mais pour moi le minMaxLoc ne donne que des valeurs entières de décalage

 

Share this post


Link to post
Share on other sites
Le 20/10/2023 à 11:04, mala05 a dit :

Une bande led collée à une baguette en bois

A classer définitivement dans la catégorie "loisirs créatifs"...

  • Haha 1

Share this post


Link to post
Share on other sites
1 hour ago, gehelem said:

Mais pour moi le minMaxLoc ne donne que des valeurs entières

Oui, si tu fais une mesure à vitesse sidérale c'est emmerdant.

Mais qui t'a imposé de rester en première ?

L'EP est la même à x10 et ca va x10 plus vite pour la mesure...

Perso je mesure à x15.

  • Like 1

Share this post


Link to post
Share on other sites
il y a 2 minutes, Cyrille Thieullet a dit :

Mais qui t'a imposé de rester en première ?

Moi !

Je veux pouvoir corriger en direct, c'est tout l'intérêt ;-)

  • Like 1

Share this post


Link to post
Share on other sites

Ah ben si c'est pour du live, c'est plus pareil :D.

 

Une personne avait posté une solution à ce propos :

https://answers.opencv.org/question/29665/getting-subpixel-with-matchtemplate/

Il y a ce code :

https://web.archive.org/web/20170921052938/http://www.longrange.net/Temp/CV_SubPix.cpp

https://web.archive.org/web/20170921053201/http://www.longrange.net/Temp/CV_SubPix.h

Nous n'avions pas exploré plus. Dans notre cas c'était des mesures statiques.

 

Il y a aussi ce lien avec deux solutions complètes:

https://blog.csdn.net/weixin_30293079/article/details/98981311

 

Le sur échantillonage xN d'une portion la partie de l'image en commun avec la ref puis refaire le matching sur la même portion de la ref suréchantillonée est possible mais je ne sais pas si ça coutera moins cher en CPU que de trouver les étoiles comme tu le fais et de faire le calcul dessus. Tout dépend de la taille d'image à analyser.

 

 

Edited by Cyrille Thieullet
Ajout lien
  • Like 1

Share this post


Link to post
Share on other sites

@gehelem Je viens de tester le premier code. Il fonctionne.

Il cherche le maximum d'une parabole qui passe par le max et deux points autours.

Il ne fait pas baisser le fps. Du coup je vais l'ajouter dans mon soft :D

 

Le lien du bas donne un premier algo qui n'est pas du tout efficace.  Pas la peine de passer du temps dessus.

 

  • Like 1

Share this post


Link to post
Share on other sites
Il y a 1 heure, Cyrille Thieullet a dit :

le premier code. Il fonctionne.

Génial 

De mon côté c'est standby pour qq jours

Mais je me suis imprimé quelques mires plus fines en attendant le microscope...

20231106_233337.thumb.jpg.8779887ee262a0d758959fb31fcc8168.jpg

En poussant un peu on arrive à 3600 traits

On verra

  • Like 1

Share this post


Link to post
Share on other sites

Alors comment dire ?

ça marche ;-)

image.png.b20616e0abb832a79c4305cefae634a2.png

(échelle verticale bidon, horizontale en seconde donc 1h20 environ )

là j'ai déterminé le centre "subpixel" avec un barycentre tout con, on doit pouvoir faire mieux, mais on sait tous que c'est l'ennemi du bien (c'est bien là, non ?)
Donc @mala05 je vais probablement arrêter de polluer ton fil et je vais aller implémenter tout ça proprement dans mon "observatoire sans tête" en face.

Au passage merci encore pour le regain de motivation, ça tue ce truc.
Gilles

 

  • Like 1

Share this post


Link to post
Share on other sites

Je reprends un peu ce soir.

Le 06/11/2023 à 09:46, Cyrille Thieullet a dit :

Il y a une image de référence (m_matReference) et celle en cours (m_matCapture)

Quand le delta de position entre les deux est > à 2/3 en X, la capture courante devient la capture de référence.

 

Ca permet de faire la mesure n'importe où car il est possible de calculer le delta entre de portions d'images.

Une clôture à 20m c'est parfait, le mur d'en face depuis un balcon aussi.

 

Cyrille

Merci Cyrille. Oui je connais. J'utilisais matchTemplate() sur un logiciel de HDR pour recaler la perspective sur des bracketing à main levée. Dans ce cas cela suffisait mais cela m'interpelle un peu en terme de précision pour une mesure d'EP. Il y a intérêt d'être sacrément suréchantillonné pour obtenir une précision correcte non?

 

Le 06/11/2023 à 13:22, Cyrille Thieullet a dit :

Très intéressant ça! Il faudra que je teste aussi à l'occasion. :)

 

Il y a 3 heures, gehelem a dit :

Donc @mala05 je vais probablement arrêter de polluer ton fil et je vais aller implémenter tout ça proprement dans mon "observatoire sans tête" en face.

Au passage merci encore pour le regain de motivation, ça tue ce truc.

Vas-y pollue on s'en fou! :D Tu nous fais un retour de tes tests dans l'observatoire? Enfin le jour où on revoit un peu de ciel bleu. En ce moment c'est pas gagné. xD

 

Moi de mon côté, j'ai mis un peu le code de mon analyseur d'EP au propre et je commence à intégrer les graphiques à la volée pour remplacer Excel. En l'état c'est très bon niveau précision des mesures. Pour estimer le bruit résiduel, je me suis amusé hier soir à analyser la variation de la distance moyenne entre les fausses étoiles. Mon échantillonnage étant quasi de 1pix/",  on est largement en subpixel comme le montre ce graph sur un peu plus d'une vingtaine de secondes. Je pense que les quelques pics sont même liés à des légères turbulences lors des mesures dans la cave...

654d5d748f939_Capturedecran2023-11-09a23_18_42.thumb.jpg.fd62dbb13f26725d4dd2ae7977ad61f1.jpg

 

Je vais voir pour intégrer le pilotage de l'ASI dans le soft comme ça je pourrai vraiment faire des tests en temps réel et plus traiter des png après coup.

 

 

Edited by mala05
  • Thanks 1

Share this post


Link to post
Share on other sites
Il y a 9 heures, mala05 a dit :

Vas-y pollue on s'en fou! :D Tu nous fais un retour de tes tests dans l'observatoire? Enfin le jour où on revoit un peu de ciel bleu. En ce moment c'est pas gagné. xD

 

okay alors allons-y 

j'ai écarté l'approximation "parabolique" pour le subpixe

j'ai un petit doute, il me semble humblement que l'implémentation qui en est faite est fausse, je me fais des noeuds dans la tête

=> afin de revenir en terrain neutre, j'ai utilisé un barycentre
Et je fais mumuse tout pareil, au moins déjà voir si je retrouve ce que je connais de ma monture
Là je ne pige pas trop ces 50s mais je vais trouver

 

image.png.eb5d0852f8336c35c5b0e97bb515eb49.png

 

Je suis passé à la même étape que toi @mala05 : un petit soft pour gérer en direct parce qu'avec excel/OO c'est galère


G.

 

  • Like 1

Share this post


Link to post
Share on other sites
Le 10/11/2023 à 09:51, gehelem a dit :

e suis passé à la même étape que toi @mala05 : un petit soft pour gérer en direct parce qu'avec excel/OO c'est galère

En OpenCV, j'ai testé CvPlot. C'est basique mais ça fonctionne...

 

il faut que je teste OpenCVGUI qui intègre également des graphiques et permet d'aller bien plus loin avec notamment des éléments d'interface  (boutons, checkbox, etc). Cela a l'air pas mal.

Share this post


Link to post
Share on other sites

bon heu, comment dire ?

est-ce que ce ne serait pas ce qu'on appelle une saine émulation ?

Moi en tout cas je rame comme un dingue avec ce satané graphique sur Qt

Pour le reste, je dirais que cette histoire de webcam/microscope tient vachement la route

 

image.png.5d97aee9154615ac03218d6d8f2bb434.png

Share this post


Link to post
Share on other sites

Mort de rire, grave erreur
mes oscillations à 50s c'est .. ma grille :-)

j'ai dû me croiser les yeux qq part, faut que je potasse

 

Edited by gehelem

Share this post


Link to post
Share on other sites

là c'est mieux, en enlevant la grille pour être certain...
... et surtout en changeant ma méthode de calcul de subpixel :
Tout est là, je pense que je ne le fais pas comme il faut.
On continue à voir des choses très fines, et quelques périodes intéressantes que j'espère significatives

Après,  ici sur ce screenshot les grandes amplitudes correspondent à la moitité de la période de ma VSF (480 / 2  ????) 

"il me semble" qu'on peut toujours voir un battement lié au pignon moteur à 180s

image.png.8d6c355c7a45b8f3034622f021f087c8.png

Share this post


Link to post
Share on other sites

Bonjour,

 

On 11/9/2023 at 11:51 PM, mala05 said:

Dans ce cas cela suffisait mais cela m'interpelle un peu en terme de précision pour une mesure d'EP. Il y a intérêt d'être sacrément suréchantillonné pour obtenir une précision correcte non?

Le templateMatching est rapide, les calculs sont fait en passant en DCT. J'ai testé ORB je passe de 10 fps à 3 en replay. SIFT c'est 2fps. J'ai trop d'info dans l'image. Sur des étoiles ca serait sans doute mieux.

En natif (précision int) ca va dépendre de la fréquence de capture et aussi de s'il y a du vent ou pas, si le fond est stable ou non. Si c'est stable il a très peu de saut et sur deux périodes complètes ça permet de bien voir.

Un exemple avec une capture avec 50km de vent. Les plantes derrières la barrière font des erreurs de positionnement . Ca saute beaucoup... Il n'y a aucun lissage.

NB : Là je suis en replay avec une vidéo et pour le moment je ne recale pas les frames sur la vitesse initiale, du coup le calcul de la focal est faux.

65512c3addebe_20231112PECaptureSansresizesanssubpixel.jpg.f9b850265f17043a01d631b202336626.jpg

On 11/10/2023 at 9:51 AM, gehelem said:

j'ai écarté l'approximation "parabolique" pour le subpixe

j'ai un petit doute, il me semble humblement que l'implémentation qui en est faite est fausse, je me fais des noeuds dans la tête

En activant le subpixel ca donne cela sur le même film :D

65512cd654f1e_20231112PECaptureSansresizesubpixel.jpg.96b5cff8498914bad10aeaa47a156fd6.jpg

Et ca permet de faire le calcul en divisant par 2 les image et d'avoir un gain de vitesse (34% de CPU à 28%)

65512d2e9f0e4_20231112PECaptureavecresizesubpixel.jpg.5c337bb7c544f2f77f49e03c7737c8f2.jpg

Evidemment, en retirant le subpixel et en divisant par deux les images c'est la cata :D

65512d7eb464f_20231112PECaptureavecresizesanssubpixel.jpg.0214697ff90cdf35cba7ad90a9fb12a4.jpg

 

Cyrille

 

 

Edited by Cyrille Thieullet
  • Like 1

Share this post


Link to post
Share on other sites
Il y a 10 heures, Cyrille Thieullet a dit :

En activant le subpixel ca donne cela sur le même film :D

Tu me dis si j'abuse :

Tu me filerais pas ton code pour que je regarde comment tu fais ?

Je galère et je doute, ça m'aiderait bien

 

+ j'aime bien ton graphe, j'aimerais bien apprendre à faire pareil

Edited by gehelem

Share this post


Link to post
Share on other sites

Bonjour,

 

4 hours ago, gehelem said:

Tu me filerais pas ton code pour que je regarde comment tu fais ?

Ben tu l'as déjà ? Et c'est pas le mien !

Y a qu'a clicker sur les liens que j'ai partagés au dessus :D.

Chercher un optimum avec une parabole ou une spline qui passe par N points est un classique pour trouver les heures conjonctions par exemple. Il y a le code/algo dans les bouquins de M. Meus si tu en as un.

 

Cyrille

Share this post


Link to post
Share on other sites
il y a 47 minutes, Cyrille Thieullet a dit :

Bonjour,

 

Ben tu l'as déjà ? Et c'est pas le mien !

Y a qu'a clicker sur les liens que j'ai partagés au dessus :D.

Chercher un optimum avec une parabole ou une spline qui passe par N points est un classique pour trouver les heures conjonctions par exemple. Il y a le code/algo dans les bouquins de M. Meus si tu en as un.

 

Cyrille

 

C'est pas le bout de code en lui-même qui me pose problème, c'est la façon d'en utiliser les résultats...

Bref, tant pis je vais me débrouiller 

Share this post


Link to post
Share on other sites
1 hour ago, gehelem said:

c'est la façon d'en utiliser les résultats.

Pour l'affichage, le seul truc c'est de faire une régression linéaire ( linear least square , LLS ) et de la soustraire à tes mesures de départ avant d'afficher/utiliser tes résultats.

Ca redresse la courbe si besoin et la met à l'horizontale.

La tienne sur ton graph par en l'air ce qui laisse à penser que c'est pas fait et ca va diverger.

 

L'épaisseur de ta courbe rouge laisse à penser qu'il y a beaucoup d'oscillations dans tes mesures et que le matching n'est pas stable.
Il n'y aura rien de plus ressemblant que deux traits côte à côte dans ta mire car ils sont radiaux sans séparateur.

Plusieurs options à cumuler :

- ajouter des rayons épais à un fréquence selon la taille de la fenêtre de mesure (il faut qu'il y en ait toujours au moins un) ?

- prendre une fenêtre de mesure rectangulaire et plus grande ?

- filtrer les matching et refuser par exemple ceux qui te donne un résultat qui va en arrière en tenant compte le la vitesse sidérale ?

- Comme dans ton cas le disque tourne, utiliser une transfo qui gère cela pour le matching avec SIFT ou ORB ?

 

Ca va le faire :D

 

Cyrille

 

Share this post


Link to post
Share on other sites
il y a une heure, Cyrille Thieullet a dit :

La tienne sur ton graph

 

Il y a 3 heures, gehelem a dit :

C'est pas le bout de code en lui-même

 

Le 11/11/2023 à 10:41, mala05 a dit :

j'ai testé CvPlot

 

J'ai réuni 3 citations de vous mais au pif...

D'un côté, il y a bibi, moi qui rame pour trouver les causes mécaniques de l'EP et pour y remédier et de l'autre côté, il y a vous qui cherchez à mesurer l'EP en dehors du ciel.

Sinon, il y a Pierre Franquet, Pierro Astro qui a développé une appli pour PC dans le même esprit que vous où de mémoire, une étoile se déplace sur un écran de PC de manière hyper précise.

 

Je suis conscient qu'au niveau mécanique, il y aura des limites physiques et le remède à tout ça, c'est de stabiliser la vitesse de l'axe AD par un codeur (sur l'axe AD et non celui de la VSF et si possible un truc bon marché. Il faut également soit faire un paramétrage du ciel soit faire un auto guidage pour contrer le phénomène de réfraction selon la hauteur de l'étoile.

Cela dépasse et mes compétences et mes envies. Mais peut-être que cela rentre dans vos cordes ?

 

Share this post


Link to post
Share on other sites
il y a 40 minutes, Pascal C03 a dit :

de l'axe AD par un codeur (sur l'axe AD et non celui de la VSF et si possible un truc bon marché

 

C'est exactement ce que j'essaie de faire

C'est aussi le principe du Telescope Drive Master (TDM)

Franchement je ne pense pas être loin du but

Share this post


Link to post
Share on other sites
1 hour ago, Pascal C03 said:

Il faut également soit faire un paramétrage du ciel soit faire un auto guidage pour contrer le phénomène de réfraction selon la hauteur de l'étoile.

Y a deux aspects

L'erreur de suivi de la monture et les erreurs mécanique de flexion, torsion de la monture, du tube, des caméras, d'alignement, réfraction etc qui influent sur le positionnement.

Le codeur c'est pour le suivi

Le paramétrage du ciel est du luxe avec les plates solve maintenant. Encore plus s'il y a un guidage.

Il revient à faire un calcul comme TPoint ou d'utiliser le modèle de M. Toshimi Taki

http://takitoshimi.starfree.jp/

Perso j'ai fait les 2 dans Astromist. Le premier est plus rapide dans les calculs.

La 2ème approche est matricielle, elle est bien décrite :

http://takitoshimi.starfree.jp/matrix/matrix_method_rev_e.pdf

Il y a une feuille excel pour vérifier ses calculs PC.

Mais il faut faire une raquette qui va bien pour enregistrer les étoiles ou ajouter les sync.

Enfin, ajouter la réfraction en fonction de l'attitude de la cible est simple.

 

Après, il y a TeenAstro ou On Step qui font un alignement 6 étoiles et ont le calcul réfraction. Ca donne des exemples, c'est codé d'une manière statique : ca fait un modèle à 6 étoiles. C'est pour le pointage et je ne crois pas que ca serve dans le suivi le principe étant d'avoir toujours un auto guidage.

 

@gehelem il y a plein d'exemple d'affichage de graphique en 2D avec QT. C'est du plug and play, y compris pour de la 3D.

Je ne comprends pas ce qui fait que tu patines sur le sujet o.O. S'il y a trop de données faut simplement filtrer en fonction du zoom en X de l'affichage ?

Sur ce soft en cours, je suis reparti de leur exemple pour afficher une surface en 3D et j'ai brodé autour. Ca va super vite à faire.

65526ff12106f_SurfaceProQT.jpg.e96ae250534d09f59013a93e84ddc638.jpg

 

Cyrille

 

Share this post


Link to post
Share on other sites
il y a 7 minutes, Cyrille Thieullet a dit :

Je ne comprends pas ce qui fait que tu patines sur le sujet o.O. S'il y a trop de données faut simplement filtrer en fonction du zoom en X de l'affichage ?

 

Je découvre, je rame, je perds du temps à piger.

*sauf que* je suis têtu.

Donc je vais y arriver.

Ce sera affreux mais ça tournera.

 

+ je redis humblement que la méthode des deux paraboles ne colle pas selon moi, j'ai beaucoup de mal à accepter que le centre du paraboloide corresponde aux deux max des paraboles en vertical et horizontal 

Mais je me trompe sans doute, juste ça m'occupe l'esprit dans les transports 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now