Contexte.Traitement AstroPhoto dans le but de réduire le bruits de celles ci.
Image issus d'un APN Canon Défiltré.
--
Avec la "Fin" de Ez Denoise, j'ai eu envie de revoir mes processes de débruitages.
Voir l'état de l'existant et des solutions actuelles.
J'ai refait un tour des solutions photo grand public, du côté de Topaz, ON1 NoNoiseAI,...
Rien trouver de convaincant, toujours trop de dégradation et d'artefacts.
Je suis vite retombé sur DenoiseXterminator de RC-ASTRO.
Mais le projet étant payant et fermer j'ai eu envie d'en savoir un peu plus.
a./
Du coup je me suis lancé dans du reverse engineering, dans le but notamment de savoir se que l'on risquait en cas d'abandon du projet.
Je ne m'étendrais pas spécialement dessus, mais je sais que sans une connexion internet, ou si le projet est à l'abandon pendant 2-3ans, ou serveur couper alors le plugin ne peut plus fonctionner.
Et il sera très difficile, voir impossible de le remettre en route.
J'ai donc continué mes recherches.
Je suis tombé sur quelques projets intéressants.
Conçurent a BlurXterminator. (Je l'ai mis de côté, pas fait plus de tests dessus.)
https://github.com/deepskydetail/AstroSharp
https://github.com/Aveygo/AstroSleuth
Real-ESRGAN (Model IA) n'est pas du tout adapté à mon gout (Créer des étoiles, résultat très discutable).
Peut être intéressant pour implanter un autre modèle.
Ligne de commande.
https://github.com/p7ayfu77/astro-csbdeep/releases
AstroDenoisePy
Interface graphique.
Le modèle a encore des progrès à faire. Lissage du bruit de couleur à reprendre.
Puis je me suis perdu dans les modèles d'IA, j'ai dévié sur du traitement d'image de microscopie cellulaire, pour tomber sur des modèles intéressants, Noise2Noise puis MirNet.
(Là on oublie les interfaces, on est sur Anaconda (Virtualisation d'environnement) et python, je n'ai pas pris le temps de les faire marcher avec CUDA).
Mais il y a des choses intéressantes.
Comparatif.Images Sources -> Destinations.
1./ ABE-DBE-Solve-SpectroColor-EzStar-GHS
2./ ABE-DBE-Solve-SpectroColor-EzStar-EzDenoise-GHS
3./ ABE-DBE-Solve-SpectroColor-EzStar-GHS-Starnet-StarReduce-Saturation-DxoDefine-Dxo
Traitement sans EzDenoise uniquement DxoDefine (+Posttraitement)
4./ ABE-DBE-Solve-SpectroColor-EzStar-EzDenoise-GHS-Starnet-StarReduce-Saturation-DxoDefine-Dxo
Traitement avec EzDenoise + DxoDefine (+Posttraitement)
5./ ABE-DBE-Solve-SpectroColor-EzStar-GHS-NTX-Starnet-StarReduce-Saturation-Dxo
NoiseXterminator (Defaut Denoise 0.90 / Détail 0.15) (+Posttraitement)
6./ABE-DBE-Solve-SpectroColor-EzStar-GHS-NTX-Starnet-StarReduce-Saturation-Dxo-DxoDefine
NoiseXterminator (Defaut Denoise 0.90 / Détail 0.15) (+Posttraitement) + DxoDefine.
7./ ABE-DBE-Solve-SpectroColor-EzStar-EzDenoise-GHS-Starnet-MirNet-StarReduce-Saturation-DxoDefine-Dxo
Traitement avec EzDenoise + MirNet (25Minutes BCP de RAM 30/40Go) + DxoDefine (ColorNoise Uniquement) (+Posttraitement)
-----
Différentes Zones / Niveau de zoom.
-----
1./ ABE-DBE-Solve-SpectroColor-EzStar-GHS
2./ ABE-DBE-Solve-SpectroColor-EzStar-EzDenoise-GHS
3./ ABE-DBE-Solve-SpectroColor-EzStar-GHS-Starnet-StarReduce-Saturation-DxoDefine-Dxo
Traitement sans EzDenoise uniquement DxoDefine (+Posttraitement)
4./ ABE-DBE-Solve-SpectroColor-EzStar-EzDenoise-GHS-Starnet-StarReduce-Saturation-DxoDefine-Dxo
Traitement avec EzDenoise + DxoDefine (+Posttraitement)
5./ ABE-DBE-Solve-SpectroColor-EzStar-GHS-NTX-Starnet-StarReduce-Saturation-Dxo
NoiseXterminator (Defaut Denoise 0.90 / Détail 0.15) (+Posttraitement)
6./ABE-DBE-Solve-SpectroColor-EzStar-GHS-NTX-Starnet-StarReduce-Saturation-Dxo-DxoDefine
NoiseXterminator (Defaut Denoise 0.90 / Détail 0.15) (+Posttraitement) + DxoDefine.
7./ ABE-DBE-Solve-SpectroColor-EzStar-EzDenoise-GHS-Starnet-MirNet-StarReduce-Saturation-DxoDefine-Dxo
Traitement avec EzDenoise + MirNet (25Minutes BCP de RAM 30/40Go) + DxoDefine (ColorNoise Uniquement) (+Posttraitement)
-----
Notes:
- La colorimétrie est légèrement différente, je n'ai pas tout fait d'un coup.
- NoiseXterminator
Merci à As.Fr.33 pour les tests.
- Sur la première et deuxième photo, la réduction d'étoile n'est pas faite. Ni le post-traitement.
- NoiseXterminator: Le repasser au-dessus d'autre algorithme (passer au-dessus de la photo n°3/4) est contre-productif (Photo non présente).
- Photo7 Le modèle utiliser avec MirNet (RealDenoise) est un modèle fourni par défaut préentraîner.
Celui-ci n'a pas été entrainé avec des photos d'astro.
Il est sans doute possible d'effectuer des améliorations notables avec un entrainement adapter.
Il serait intéressant de le porter sur CUDA pour les perfs.
-----
Pour les velus.
Le modèle ne mange pas de Tiff mais du PNG.
Faire des tests sur une petite image (Coût en RAM / Temps).
MirnetV2: https://github.com/swz30/MIRNetv2/tree/main
Traitement RealDenoise. Pytorch. Anaconda
https://github.com/swz30/MIRNetv2/blob/main/INSTALL.md
python demo.py --task real_denoising --input_dir C:\testIA\MIRNetv2\demo\degraded\3B.png --result_dir C:\testIA\ --tile 6144
--tile permet de modifier l'usage de la RAM. Attention plus le param est petit plus il découpe de petites tuiles.
Cela rend le modèle moins gourmand en RAM (--tile faible), mais cela allonge le traitement.
Je n'ai pas comparer l'impact sur l'image final.
Le traitement est long.
Il peut facilement OOM (Out of Memory) le poste.
===
Maintenant, je vais encore réfléchir.
La non-régression / non-dépendance (De la qualité de ce que l'on peut produire) était sans doute le facteur de motivations le plus important.
J'ai répondu à ma question. Maintenant NoiseXterminator a quand même bcp d'avantages (Perfs, Usage Mémoire, intégration, interface)...
Peut être que la curiosité me poussera a entrainer MirNet pour voir, mais je ne pense pas allez plus loin (Optimisation, Cuda, Interface, Déploiement), c'est beaucoup de temps.
Si les résultats sont vraiment très bons peut-être j'essayerais d'intégré le modèle à AstroSleuth ou à AstroDenoisePy
Mais ce sera pour plus tard (indéfini).
C'était histoire de partager, garder une trace de ses tests.