Nebulium

Jupiter par Polo à la sauce artificielle...

Messages recommandés

Citation

S'il est en Julia ou Python, je serais preneur pour jouer avec, merci

Les modules sont écrits en C/C++ et vont être embarqués prochainement dans le prototype ci-dessous (le CPU reste encore à définir entre i5-7500T 35W et i5-7500 65W mais plus puissant). Le matériel est dispo chez LDLC qui peut assurer le montage et chez Amazon.fr (prix global de 1000euros hors écran). Le proto n'est pas la version définitive qui elle utilisera un processeur Intel ou AMD intégrant un GPU aussi puissant que celui du proto, le prix global sera de l'ordre de 500euros hors écran.

 

XH110G_bureau_2.jpg.01445882fa6064eeb7c01f3191900bc3.jpg

 

J'ai prévu de faire des rafales de tailles variables afin d'avoir une qualité d'image constante pour une vidéo donnée.

Cela est maintenant possible parce que je contrôle mieux l'estimation du bruit et celle du flou.

Ce système sera testé sur les 3 oppositions à venir.

Modifié par ms

Partager ce message


Lien à poster
Partager sur d’autres sites

 

 voila jean le gif avec IA :

tacherougeneb.gif

 

 polo

Modifié par polo0258

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, ms a dit :

un prototype qui ressemblera en gros à cela

 

= Config musclée +linux.

Ça pourrait rajeunir mon vieux dobs ...

Wait & see ;) 

 

Il y a 1 heure, polo0258 a dit :

gif avec IA

 

 

Merci Paul :)

Cette série est plus irrégulière, non ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 5 minutes, ms a dit :

La vidéo stabilisée en MP4

 

Prometteur ! :)

Il faudrait aussi régulariser la course du satellite et lisser tout ça dans le temps ;)

Partager ce message


Lien à poster
Partager sur d’autres sites
Citation

Il faudrait aussi régulariser la course du satellite et lisser tout ça dans le temps

Oui, tout cela devrait encore s'améliorer quand toute la chaîne sera traitée sur le terrain par EVA. ^_^

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, polo0258 a dit :

voici une version plus rapide jean

 

Ok, merci Paul :)

 

Il y a 3 heures, ms a dit :

Il faudrait aussi régulariser la course du satellite et lisser tout ça dans le temps

 

 

Pour ce jeu d'images, c'est un travail pour Polo  :

 

1. Interpoler pour obtenir les images manquantes et les recaler dans le temps en utilisant le plugin russe.

Sinon, le plus simple est la solution "non-bio" au sens valérien du terme, en animant un planisphère partiel créé avec Winjupos.

Mais on peut faire du semi-bio en  ne prenant de Wijupos que les images manquantes

 

2. Lisser le tout si utile avec les filtres VirtualDub  "Frame merger" ou "Temporal smoother"

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

bonjour jean !

il y a ici une image toute les 90s  ! difficile de faire mieux !

la où ça semble un peu trouble ,c'est qu'il y a eu des passages nuageux de mémoire !

polo

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, polo0258 a dit :

une image toute les 90s  ! difficile de faire mieux

 

Ta performance est remarquable ! :x

 

 

Il y a 3 heures, polo0258 a dit :

il y a eu des passages nuageux

 

Ça expliquerait les sautillements du satellite ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 22 heures, ms a dit :

Le matériel...

 

Hello ms :)

 

Et tu conseillerais quelle gégène, pour alimenter ce matos dans la nature ? ;)

Partager ce message


Lien à poster
Partager sur d’autres sites
Citation

Et tu conseillerais quelle gégène, pour alimenter ce matos dans la nature ?

J'ai actuellement une batterie 12V 100Ah et un convertisseur pur sinus., la batterie est déchargée à 50%.

En mode calcul, CPU (65W) et GPU (55W) sont pratiquement utilisés à 100% d'où la puissance nécessaire sur le terrain.

Avec une puissance de 120W (65+55) :

120W / 12V = 10A

50% x 100Ah / 10A = 5h (mon convertisseur à un rendement proche de 100%).

Avec un système qui donne la puissance CPU+GPU ci-dessus avec une consommation de 60W au lieu de 120W, l'autonomie atteint 10h (cette solution existe déjà chez Intel et elle sera dispo en mars 2018 dans un boîtier de 1,2litres).

Malgré cela, je vais rester sur la solution Shuttle de 3litres qui est robuste et plus raisonnable, elle supporte aussi les SSD M.2 PCIe NVMe  comme le Samsung SSD 960 Pro de 512 Go.

Modifié par ms

Partager ce message


Lien à poster
Partager sur d’autres sites

on doit pouvoir faire mieux avec un film de 60s  out de même !

ici j'ai continué à filmer avec des passages de nuages et le satellite est le premier à disparaitre dans le cas présent !

polo

Partager ce message


Lien à poster
Partager sur d’autres sites

Ayé, la fête commence ! ;)

 

J'ai réussi à fabriquer un 1er modèle éduqué avec seulement 2 images : la réduction HST de Juju de la  page 1 et une autre  HST de Saturne.

Tous paramètres par défaut, sauf l'éducation en 2 itérations au lieu des 50 préconisées, chacune prenant sur une CPU i7  de dernière génération une grosse heure.

 

Donc  de gauche à droite : l'original de Polo, le résultat, l'image du dataset  orientée pour détecter toute tentative de clonage

 

 

Presse-papier01.png.931c8c2d9cbb5efaf8f706242af6b913.png

 

Les esprits chagrins ( ;) ) diront :

 

Pffffffffffff, tout ça pour ça !  Tristounette, pas pêchue, bruitée peut-être même , beueueueuhhhhhhhhhhhhh o.O

Toutefois, n'aurait-elle pas un peu de potentiel, quand même, à comparer avec celui de l'original  ? Non ? Oui ? :) 

 

Mais comme j'ai dit, la fête ne fait que commencer ! :P

 

Alors  au programme :

 

-  Tout d'abord,  alimenter le Python avec la GPU de la GeForce940MX  (pas si simple avec la cohabitation hasardeuse  des multiples versions des diverses parties prenantes), car je n'ai pas des journées à passer avec des itérations interminables, je devrais gagner peut-être un facteur 4.

- ensuite, nourrir un peu plus correctement  la base de données astro avec de "bonnes" images de Mars, Jupiter et Saturne.

Toutes les propositions sont bienvenues, si possible me les livrer en 512 x 512

- et enfin, comprendre à quoi servent tous ces paramètres de réglage du training et essayer de les optimaliser.

 

Ça arrangerait peut-être certains de pouvoir donner au schmilblick juste un empilement correct, et d'arrêter de bidouiller les ondelettes, les masques flous, les déconvolutions, les FFT & cie ;)  pour obtenir une image bien finie toute seule ?

 

Merci  de votre attention :) !

--------------------------------------------

PS : Merci ms et Paul pour les infos ! :)

 

 

Modifié par Nebulium

Partager ce message


Lien à poster
Partager sur d’autres sites

bonjour jean !

ce que je vois c'est que l'IA a emprunté la couleur !

je m'interroge du résultat ! pour jupiter il faudrait 2 images prises en même temps  pour ton système !

et dans ce cas le résultat sera un mixage des deux ! je n'en vois pas l'utilité !

supprimer le bruit sur un film d'acquisition  , c'est un gain  et c'est utile ensuite pour le traitement !

si tu veux des images brutes : en voici une :

Jup_000116_g4_ap63.tif

Modifié par polo0258

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui oui mais . . . ça fait pas un peu grosse usine à gaz pour au final avoir une image . . . pas vraiment issue des originaux !

On dirait du Mickey dans l'apprenti sorcier ;););)

Mais bon, vu la météo, je comprends fort bien que l'on s'amuse comme on peut :)

Bonne bricolette,

AG

Partager ce message


Lien à poster
Partager sur d’autres sites
Citation

chacune prenant sur une CPU i7  de dernière génération une grosse heure

En utilisant la carte graphique tu obtiendras en gros un gain de 30 à 40 sur le calcul matriciel donc tu vas descendre à moins de 2mn ce qui est bien mais encore loin du temps réel.

Quand TensorFlow sera intégré au silicium, là on pourra certainement l'utiliser pour les différents algorithmes mais on sait déjà que le traitement des images naturelles sera moins bon qu'avec d'autres méthodes utilisées aujourd'hui. Par contre pour des images fabriquées artificiellement c'est le contraire.

Ce qui est positif par contre c'est de mettre les mains dans le cambouis et comme tu dis la fête ne fait que commencer.

A partir de juin 2018, je vais retravailler avec TensorFlow sur les vidéos obtenues avec EVA.
EVA permet de fabriquer à partir d'images naturelles (les images brutes), des images artificielles (les images de la vidéo assistée) qui se prêteront bien à des traitements avec TensorFlow.

 

Pour revenir à ton image du milieu qui est loin d'être inintéressante.

Ton réseau a pris les tonalités de l'image de droite, il faut lui apprendre à prendre la résolution de cette image, c'est toute la difficulté de l'apprentissage profond.

Tu veux lui apprendre à booster les hautes fréquence à partir d'un apprentissage automatique comme le fait par exemple le réseau DCGANN de Qiaojing Yan et Wei Wang :

http://stanford.edu/class/ee367/Winter2017/yan_wang_ee367_win17_report.pdf

 

EVA utilise les algorithmes "traditionnels" pour estimer le bruit et le flou des images naturelles par contre l'apprentissage profond est utilisé pour traiter par super résolution les vidéos assistées.
La super résolution booste les hautes fréquences comme avec DCGANN implémenté ici en Python avec TensorFlow (j'ai un modèle analogue implémenté en C++ qui sera dispo en juin sur mon site internet) :

image.png.70c4d96c23e630801b9d91be3309b766.png

 

Tu peux trouver le détail :

https://github.com/carpedm20/DCGAN-tensorflow

 

PS : il faut laisser causer ceux qui critiquent plus vite que leur ombre comme Valère et quelques autres pour continuer à tracer son sillon comme tu le fais.

 

Modifié par ms

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, polo0258 a dit :

je m'interroge du résultat ! pour jupiter il faudrait 2 images prises en même temps  pour ton système !

et dans ce cas le résultat sera un mixage des deux ! je n'en vois pas l'utilité !

 

Hello :)

 

Paul, ça ne se passe pas exactement ainsi :

Le principe est d'abord de se constituer  une base de données d'images réputées excellentes à tous points de vue = dataset

Pour des raisons diverses (droits d'auteur, confidentialité, etc.) ces bases de données ne sont pas publiques.

Seuls des réseaux neuroniques entraînés selon l'un ou l'autre de ces dataset sont parfois publiés, sous forme d'un fichier associé à un logiciel de traitement dédié.

 

Les dataset peuvent être généralistes photo (ou autres formes graphiques), c'est le cas du premier que j'ai utilisé. On peut les spécialiser, par exemple célébrités, jolies personnes, montagnes, macros, etc. Ici  j'essaie l'astro avec d'abord les trois planètes photogéniques, ensuite je verrai pour la Lune, car la piste que je suis permet de se fabriquer ses propres réseaux pré-entraînés et ensuite de faire des traitements de netteté et d'agrandissement 2x et 4x en super-résolution.

Malheureusement le débruitage annoncé a disparu du GitHub  (avec l'auteur ?) :( Les logiciels dédiés étant écrits en Python, il se trouvera peut-être une bonne âme pour y mettre son nez ...:).

 

Ces traitements essaient de faire ressembler l'image de départ à une synthèse robotisée des images de référence, et en astro il faut trouver la limite de ce qui n'est plus véridique.

On ne fait que débuter  dans ce domaine !

Et quand on est béotien  en informatique comme moi, on essaie de s'instruire, grâce au net . ;)

 

 

il y a 58 minutes, ms a dit :

continuer à tracer son sillon comme tu le fais.

 

Merci ms pour tes encouragements !

Je vais recommencer pour le CUDA, j'avais réussi à l'intégrer dans Anaconda, mais les logiciels dédiés que j'utilise demandent WinPython avec Lasagne et pas avec les dernières versions.

Pas simple !:/

Partager ce message


Lien à poster
Partager sur d’autres sites

En faisant un apprentissage sur une seule image (c'est insuffisant bien sûr) avec un réseau analogue au DCGAN ci-dessus, j'obtiens le résultat suivant  :

jup1.png.3a43562db188c9ffe143cdcc7eba3df0.png

 

Avec EVA cela devrait être intéressant car la super résolution se fera en multiframe.

 

Graph_jup.png.728428724943fc5b88de45ea5e9b2361.png

 

En blanc l'image de référence.

 

jup_den_2.png.b392d975c370664c9ae780558677af67.png

Modifié par ms

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, ms a dit :

un apprentissage sur une seule image

 

C'est laquelle, finalement, cette unique image ?

Et si ce n'est pas la Juju HST, d'où vient elle ?

Et pour Saturne 

Et pour Mars

Modifié par Nebulium

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai repris la même que toi : ^_^

jup2.png.c65d3b72de4c67c3e6bbecad25e63183.png

 

Avec EVA en multiframe je me rapproche de cet aspect après réduction de mon image super résolue x4.

Modifié par ms

Partager ce message


Lien à poster
Partager sur d’autres sites

Mon cher ms, tu me donnes vraiment beaucoup trop d'importance et je ne cause pas tant que ça sur le sujet :DxD, d'une part parce que cette "super résolution" largement galvaudée au niveau des mots utilisés ( ça veut dire que dalle pour moi ) ne m'intéresse absolument pas et d'autre part, en tant qu'animateur d'images, je trouve que chercher à supprimer le bruit est une erreur totale. Pourquoi ? Parce que mon raisonnement ne se base pas sur une image fixe mais simplement sur de l'animé.

Une pure intuition de ma part : 10 images bruitées rondement nettoyées, ont moins de chance de montrer un détail insoupçonné dans une animation ad hoc ( grande fluidité totalement bio ), que la même animation avec les images bruitées. Parce que nettoyer le bruit, c'est aussi jeter de façon certaine des infos avec l'eau du bain.

Il faut donc laisser le bruit tranquille. 

Alors bien sûr, les positions sont très différentes selon qu'on raisonne sur du fixe ou de l'animé. Pour moi, le bruit ne présente absolument aucun inconvénient pour une animation, il peut même apporter son lot d'informations, il a son importance propre.

Sur du fixe, le bruit ne présente aucun intérêt, j'en conviens. Puisque les éventuels détails insoupçonnés sont justement noyés dedans...Mais comme ce n'est pas ma paroisse...

Voyez vous bien où je me situe dans cet éternel débat ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Citation

Parce que nettoyer le bruit, c'est aussi jeter de façon certaine des infos avec l'eau du bain.

C'est justement le risque que l'on prend quand on ne peut pas estimer le bruit.
Certains essayent d'estimer un bruit hybride à partir de l'étude de zones homogènes de bruit d'une seul image naturelle.

D'autres (comme moi) essayent d'estimer à partir d'une rafale d'images naturelles.

Ce que tu ne mesures pas c'est le caractère fractal d'une image naturelle c'est à dire sa richesse en similarités à différents modes et à différentes échelles.

L'algorithme qui m'intéresse le plus est multi-modes et multi-échelles car c'est de la richesse en zones homogènes de bruit que dépendent les performances de la chaîne en aval.

Les images fabriquées par l'Homme ont un caractère fractal moins marqué que les images fabriquées par la Nature, de ce fait elles se prêtent bien aux algorithmes utilisant l'apprentissage profond.

Les images naturelles traitées par EVA deviennent des images artificielles dépourvues de bruit et pauvres en similarités, elles deviennent alors un met de choix pour la super résolution par apprentissage profond.

Une image devient vivante quand elle s'anime et pour donner au flot optique de bonnes chances de réussite, il faut estimer le bruit.

Une image devient vivante quand le flou s'estompe et pour donner au dé-floutage de bonnes chances de réussite, il faut  estimer le bruit.

D'un autre coté, toi tu sembles dire qu'une image est vivante grâce au bruit. ^_^

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 15/01/2018 à 10:15, ms a dit :

le réseau DCGANN de Qiaojing Yan et Wei Wang :

Hello ms :)

 

Ma piste actuelle utilise ce même principe,  par exemple la ligne de commande pour l'entraînement du réseau est la suivante :

python enhance.py --train "_mydataset/*.jpg" --model custom --train-scales=2 --epochs=50 --perceptual-layer=conv2_2 --smoothness-weight=1e7 --adversary-weight=0.0 --generator-blocks=4 --generator-filters=64 --device=cpu

 

Ce pourrait être intéressant que dans un 1er temps on utilise les 3 mêmes Mars Jupiter Saturne HST en 512x512 et PNG (format par défaut de l'appli que je teste), je peux te faire une proposition.

 

C'était bien parti en mode CPU en suivant stricto sensu le tuto de l'appli et l'installation manuelle Lasagne, mais je galère un max avec le mode GPU dans Win10 à cause des incompatibilités de versions souventb2 à 2 entre WinPython, OpenBlas, Theano, Keras, Tensorflow.

Je bute maintenant sur la nécessité d'une compilation avec VisualStudio, la configuration change complètement entre W7 et W10.

Malgré des tas d'infos piquées sur le net, ça ne marche toujours pas.

 

Du coup, je vais voir demain où me mène ton lien.

 

 

 

Modifié par Nebulium

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu installes Anaconda pour Windows comme je te l'ai indiqué plus haut et après tous les modules sont dedans : Python, TensorFlow, SciPy, pillow.

 

Si TensorFlow n'est pas installé, tu l'installes via la commande conda en tenant compte de la version demandée.

 

Anaconda existe pour Windows, Mac et Linux.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant