ms

Member
  • Content count

    7472
  • Joined

  • Last visited

  • Country

    France

Community Reputation

286 Excellent

2 Followers

About ms

  • Rank
    Hyperactive member
  1. Pourquoi cette précipitation pour ôter le bruit ? Ci-après le 2 premières images enrichies des meilleurs patchs de 40 images consécutives (à gauche l'image brute initiale) : etc ... En faisant la même manip avec ton image brute enrichie des meilleurs patchs de 40 autres images brutes :
  2. Avec une seule image brute ça me semble impossible. Tu prends par exemple cette image et tu l'enrichis des bons patchs extraits des 300 premières images brutes. Tu as plus de chance d'avoir une image fidèle en travaillant au niveau du patch que de l'image entière. L'image résultant de cette opération est encore bruitée, déformée mais elle n'est pas floue. Tu refais la même opération avec une autre image brute et 300 nouvelles images consécutives. A la fin, tu obtiens 70 images enrichies bruitées et déformées mais un algorithme comme le centroïde (ou autre) permet d'obtenir une image non déformée. Tu peux maintenant estimer le bruit et dé-bruiter cette image. Pour le moment je prends les images 1, 301, 601, 901, ... pour démarrer, c'est pas très malin parce que si l'image est très déformée, le résultat final sera moins bon. Il me faut trouver un algorithme rapide qui permette de sélectionner une image de départ sans image de référence. En attendant, je peux faire cette sélection en visuel mais ce serait mieux si c'était automatique. L'apprentissage profond pourrait être une solution pour sélectionner cette image de départ qui sera enrichie par la suite avec les "bons patchs" extraits des images brutes suivantes. Pour tester la validité de cette approche, la lune reste un objet de choix, elle permet même d'augmenter le nombre de détails en utilisant des prises faites à des dates différentes.
  3. Les 21204 images brutes ne sont pas floues comme celle du milieu (empilement de 16) ou celle de droite (empilement de 300). En empilant tu diminues le bruit mais tu amplifies le flou et après c'est la galère pour faire d'autres traitements. Il ne faut pas empiler, tu prends une image brute pas trop mauvaise et tu extrais les meilleurs patchs des 300 images brutes consécutives suivantes par exemple. Puis, tu complètes ton image brute initiale avec les meilleurs patchs, elle est plus détaillée et elle n'est pas floue. Quand tu as obtenu 70 images plus détaillées mais pas floues alors tu peux appliquer le centroïde (ou un autre algorithme plus rapide) pour les redresser et faire diminuer le bruit.
  4. Tous ces algorithmes sont issus du passage dans le labyrinthe de ces 10 dernières années et les plus performants ont été portés sous CUDA. L'extraction des "bons patchs" ne demande plus que 2,3ms par image FULL HD avec une carte graphique 1050 Ti, ce qui laisse suffisamment de temps aux autres traitements pour tenir une cadence de 100 à 150 fps avec des images FULL HD ... mais déjà la 1150 Ti (50% plus rapide) pointe le bout de son nez. Mon dernier mot c'est qu'il doit être possible d'atteindre ce type d'image à condition d'aller au delà des 21000 brutes de cette vidéo :
  5. Ça se voit moins bien que dans les images sous-marines mais dans ton image piquée, tu as des patchs de bonne qualité, des patchs flous, etc ... Il ne faut pas chercher à redresser ces images tout de suite mais à obtenir des images déformées dé-bruitées et dé-floutées. Après l'algorithme du centroïde (ou un autre) permettra de les redresser dans de bonnes conditions. Un dernier algorithme combinera ces images mais en évitant de les re-flouter. Ton empilement se prête bien à une déconvolution aveugle mais il présuppose que tu as déjà les 300 meilleures images : Après, il est possible de faire un dé-bruitage aveugle tenant compte des patchs similaires : et la balance des blancs :
  6. A éviter car c'est très lent quand le nombre d'images augmente. Les 2 autres liens sont intéressants mais ils ne règlent pas le problème de la cheminée ou de la fenêtre de droite (cisaillement local) et en plus ils sont très coûteux en temps de calcul : Pour revenir à la vidéo de polo et à l'exemple que tu donnais quelques posts plus hauts, il me faudra encore du travail pour atteindre l'image de droite mais l'image centrale est aujourd'hui à portée :
  7. Cette méthode est détaillée ici : https://www.researchgate.net/publication/227172988_The_Centroid_Method_for_Imaging_through_Turbulence J'en ai fait une version C/CUDA que j'utilise en post-traitement des images de la vidéo assistée.
  8. Effectivement, il est possible de dé-bruiter la couche bleu (image de droite) lors de l'alignement des couches ou mieux lors de l'ADC logiciel : AS ! est dans les choux dans ce type de configuration, je pense que la méthode du centroïde est plus rapide (une fraction de seconde avec CUDA) et surtout plus précise : Pourquoi ne traites-tu pas directement les images brutes RGB ?
  9. Avec tes 16 images, j'ai pas mieux que cela (centroïde + similarités) :
  10. L'image de droite est obtenue à partir d'un complément d'images brutes "simulées", reste à valider cela avec de vrais images brutes sur le terrain. Par contre l'image qui ressemble à celle du Pic résulte de la manipulation suivante qui n'a pas un grand intérêt : Si dans 16 images, tu as 80% de "bons patchs" alors tu peux compléter les 20% manquants avec l'inpainting. Cependant dans une image qui globalement semble "pourrie", tu as souvent quelques "bons patchs" d'où l'intérêt de travailler avec toutes les images brutes : Ici la cheminée est pourrie mais la pelle, l'ancre, une fenêtre et une partie du requin sont exploitables en terme de patchs. Sur d'autres images une partie de la cheminée peut aussi être exploitable. Bref ce n'est que localement que l'on peut aligner des images brutes après avoir reconstitué quelques zones à partir de "bons patchs". Les patchs de moins bonne qualité peuvent être remplacés par des patchs similaires (fractales) de meilleure qualité. Au final, tu obtiens une image nette avec parfois quelques trous que l'inpainting viendra combler.
  11. Cette image est très improbable à partir de 21.000 images brutes parce qu'il n'y a pas assez de "bons patchs". A vérifier donc avec 10 fois plus d'images brutes (15x60x233=210.000) puis en utilisant les similarités dans l'image et enfin l'inpainting s'il reste des trous. Une image comme celle de droite me semble plus probable en laissant tourner le temps nécessaire :
  12. Tout dépend de ce que l'on cherche à faire : tester une image brute (mon post précédent) ou une image traitée (ce post), il faut adapter l'apprentissage en conséquence. Ici j'utilise les 21204 images brutes en formant 70 paquets de 300 images, BRISQUE m'indique que je peux empiler les 70 images pour obtenir l'image suivante :
  13. Le détail montre qu'une homographie locale permet de reconstruire l'image par morceaux. Un patch ne représente qu'une surface de 8x8 ou 16x16 pixels mais le détail obtenu par assemblage des patchs est bien plus important 618x468. Pour une planète, on peut disposer de 120.000 images brutes et non 12 comme dans l'exemple sous-marin. Pas de référence nécessaire mais un apprentissage du domaine. https://github.com/FlyingRhenquest/No-Reference-Image-Quality-Assessment-using-BRISQUE-Model
  14. Avec des paquets de 300 images brutes et une sélection par l'algorithme BRISQUE, j'obtiens ceci (c'est un peu moins terne que la précédente) : Je vais faire un apprentissage sur des images planétaires pour améliorer la sélection. Je suis en train de faire un montage Raspberry Pi3 B+ et Intel NCS2 (Neural Compute Stick 2) pour justement détecter les bonnes trames à partir d'un apprentissage préalable.