-ms-

Banni
  • Compteur de contenus

    0
  • Inscription

  • Dernière visite

  • Last Connexion

    Soon available - 39687

Tout ce qui a été posté par -ms-

  1. Sur une image c'est difficile de faire quelque chose :
  2. Cette approche peut te permettre d'améliorer tes 3 images de test d'autan plus que cette méthode accepte en entrée des images brutes : http://adler-j.github.io/2017/07/21/Learning-to-reconstruct.html http://arxiv.org/pdf/1707.06474.pdf C'est certainement une piste intéressante mais pour le moment, je reste sur l'estimation d'un bruit hybride avec la possibilité d'utiliser TensorFlow en post-traitements. Par contre je reviendrai plus tard sur cette approche qui permet de travailler directement avec les brutes en entrée.
  3. Neb c'est la commande "print" qui correspond à Python 2.7 (dans Python 3.6 il y a des parenthèses). C'est pour cela que je disait qu'il faut les 2 environnements (anaconda2 et anaconda3 par exemple). Sinon, il faut tout convertir dans la même version de Python. Dans tes images de droite, il y a le bruit qui refait son apparition. DCSCN c'est bien pour la super résolution et en plus c'est rapide :
  4. SPMC_VideoSR permet de faire cela avec un apprentissage sur 3 images consécutives et la super résolution x4, reste le problème des artefacts mais celui-là il est résolu par EVA. On peux donc en sortie de l'estimation du bruit par EVA utiliser TensorFlow sur 3 images consécutives pour prendre en charge le flou, les distorsions et la super résolution x4, reste à voir si cela peut se faire en temps réel. En tout cas pour estimer le bruit, il me faut une dizaine d'images comme dans ma vidéo postée plus haut à 10ips donc TensorFlow appliqué à la série {1,2,3} {2,3,4} {3,4,5} ... {1998,1999,2000} permettrait d'obtenir une vidéo de 2000 images à partir de 20.000 images brutes. Problème lié aux artefact : les branches des arbres ressemblent plus à des tuyaux qu'à des branches, l'image de gauche est floue mais plus naturelle. Le gros problème de tous ces réseaux reste le traitement des images naturelles et pour l'instant je n'ai rien vu de correct via un réseau, il y a toujours des artefact à la sortie. Pour faire tes manips le plus simple c'est d'avoir 2 environnements anaconda2 et anaconda3 car certains scripts sont faits pour Python2 et d'autres Python3. Et là avec Anaconda c'est indépendant de Linux, Windows ou OSX.
  5. En débruitant et en défloutant, on obtient au bout de quelques secondes : Avec une dizaine d'images ce serait encore meilleurs mais avec les algorithmes de TensorFlow, il faudrait un supercalculateur pour le faire en temps réel.
  6. En utilisant DCSCN sous Linux (sans rien modifier) avec Anaconda3 : $ python sr.py --file sat_hst.jpg --dataset yang_bsd_4 --filters_decay_gamma 1.5 DCSCN permet de faire de la super résolution rapidement à partir d'une image, contrairement à SPMC_VideoSR son intérêt est très limité. Avec seulement 3 images, le résultat est significatif : Il reste juste un problème d'artefact que j'ai résolu en estimant le bruit en entrée de ce réseau.
  7. Prends par exemple celui-ci (SPMC_VideoSR), c'est exactement comme cela que je vois la super résolution et la fusion en post-traitements avec TensorFlow mais en entrée il faut mettre la vidéo débruitée par EVA et surtout pas les images brutes sinon tu as de gros artefact à l'arrivée comme dans cet exemple qui porte sur des images naturelles : C'est exactement l'objet de mon site gpu-vision.com : un module EVA permettant d'estimer des bruits multiples (additifs, multiplicatifs, ...) et TensorFlow qui fait le reste. Je reprendrai son exemple avec les images modifiées en entrée sinon c'est tout bon et très rapide par rapport aux autres approches de VideoSR.
  8. Les image au bout de 1/10s (à gauche) et de 1s (à droite). En fait l'image est rafraîchie tous les 1/10s et le cumul donne l'image de droite toutes les 1s : Ce sont des images comme l'image de droite qui sont stockées et qui serviront plus tard à la super résolution. La courbe jaune correspond à l'image de droite. Les courbes des images correspondant à 2/10s, 3/10s, ... , 9/10s s'intercalent entre la courbe blanche et la courbe jaune. Il ne faut qu'une centaine d'images brutes pour obtenir la courbe de droite.
  9. Neb c'est les pré-traitements qu'il faut améliorer. Depuis le mois d'août 2017, j'ai progressé dans l'estimation du bruit. La vidéo suivante à 10ips c'est le traitement du bruit (par rafale de 10 images brutes) des 100 premières images brutes de la vidéo de polo (20.000 images au total) : Bien sûr il manque le traitement du flou local, des déformations et de l'arrière plan qui met en évidence les satellites mais cela est réglé aujourd'hui. Sur le fichier de 20.000 images, il me faut 10 images consécutives pour extraire un signal correct (la vidéo ci-dessus). Puis sur les 2.000 images restantes, il me faut encore 10 images consécutives pour obtenir une image de la vidéo assistée (à suivre). Puis sur les 200 images de la vidéo assistée, il m'en faudra encore 10 pour obtenir une image super résolue (à suivre). A la fin j'aurai une vidéo super résolue de 20 images. En fait, je pourrai même m'arrêter au débruitage et faire faire tout le reste par un réseau jusqu'à la super résolution ou même par AS3.
  10. ajouter de la turbulence

    Un dessin s'obtient par petites touches comme un tableau, certains objets apparaissent rapidement alors que pour d'autres il faut jouer avec nos bâtonnets. Une vidéo peut permettre de montrer le cheminement qui conduit au dessin et cela peut devenir un outil d'apprentissage pour celui qui s'intéresse au dessin. Dans EVA (Electronic Vision Assistant) j'ai cette fusion de différentes zones, en planétaire pour mettre en évidence les planètes et les étoiles en arrière plan mais surtout pour le ciel profond où le cœur brillant de certaines nébuleuses ne se traite pas comme les faibles extensions. Notre cerveau a cette faculté de fusionner en faisant travailler différentes zones, il devient presque possible de l'imiter en remplaçant les bâtonnets (niveaux de gris) par des photosites couleur.
  11. Cette application est en effet entraînée pour traiter les images pixelisées : et elle le fait plutôt bien au problème d’artefacts près. Moi, l'application TensorFlow qui m'intéresse c'est pour traiter les vidéos assistées d'EVA puis en fonction du résultat j’intégrerai l'algorithme de super résolution directement dans la vidéo assistée. Je ne veux pas te vendre Linux mais pour mettre en œuvre l'algorithme ci-dessus ça prend 2 minutes : $ sudo apt install python-pip virtualenv $ run.sh Au premier lancement l'appli s'installe dans le répertoire "venv" puis l'image qui se trouve dans le répertoire "input" est transformée dans le répertoire "output". Pour traiter les vidéos assistées d'EVA j'ai fait quelque chose d'analogue sauf que dans "input" il y a une vidéo au format raw et dans "output" une image super résolue au format png. L'objectif c'est le signal et pour y accéder je n'ai pas trouvé mieux que de passer par l'estimation d'un bruit hybride dans une image naturelle (une image naturelle hérite des propriétés des fractales), ainsi, on peut atteindre le maximum de ce que peut faire la chaîne de détection pour obtenir une vidéo assistée. Après, il y a l'intelligence artificielle qui va estimer l'image qui correspond le mieux au domaine (astro, médical, surveillance, ...) et cela demande un apprentissage par domaine. Pour la vidéo de Saturne de polo (21205 images brutes), je vais sortir la vidéo assistée (sat_polo.raw) et l'image super résolue (sat_polo.png). Pour passer du format raw à un autre format avi, mp4, etc : $ avconv -f rawvideo -pix_fmt rgb24 -video_size 448x448 -framerate 10 -i sat_polo.raw -pix_fmt yuv420p -y sat_polo.avi $ avconv -f rawvideo -pix_fmt rgb24 -video_size 448x448 -framerate 10 -i sat_polo.raw -pix_fmt yuv420p -y sat_polo.mp4 Si avconv n'est pas installé : $ sudo apt install libav-tools J'utilise Linux Mint 18.3 (basé sur Ubuntu 16.04) et une carte graphique GeForce GTX 1050 Ti 4Go pour les calculs par GPU avec CUDA 9.1
  12. IC 443 Ha OIII

    Et dans un poudroiement d'étoiles :
  13. ajouter de la turbulence

    Peut-être quelque chose de plus discret avec une bonne cadence de scintillement. En fait, il faut créer un champs de déformation puis il faut l'appliquer au dessin. L'idéal serait de partir des condition réelles d'observation, pour cela il faudrait enregistrer une petite vidéo de 30s qui permettrait d'extraire ce champ (le flot optique). Ensuite appliquer ce champ au fichier jpeg contenant le dessin. Sous Linux tout cela se fait en 3 lignes dans un fichier batch et prend moins de 1 minute pour créer le gif animé. Faire cela avec PhotoShop ou Gimp c'est prendre un marteau-pilon pour écraser une mouche.
  14. Quand on l'utilise sur une image, cet algorithme génère des artefacts à la pelle (images 5 et 6) c'est pour cela que le PSNR est mauvais. En fait il faut faire de la super résolution en multiframe pour déjà limiter cela, il y a donc d'autres pistes à explorer avec TensorFlow et c'est tout l'avantage de cet environnement. La VSR (Video Super Resolution) c'est encore tout jeune comme approche. http://ivpl.eecs.northwestern.edu/sites/default/files/07444187.pdf http://cs231n.stanford.edu/reports/2016/pdfs/212_Report.pdf Pour changer de la sauterelle : TensorFlow permet de tester plein d'architectures de réseaux c'est à dire ce qui se trouve entre la vidéo assistée EVA en entrée et la super résolution en sortie. Ou aimer se promener dans les labyrinthes.
  15. ajouter de la turbulence

    Il faudrait ajouter le bruit des grillons :
  16. ajouter de la turbulence

    En faisant scintiller les étoiles :
  17. C'est la partie "super résolution" de cet article qui a servi de point de départ à l'article EnhanceNet cité par Neb : http://arxiv.org/pdf/1603.08155.pdf Toutes sortes d'architectures de réseaux pourraient convenir c'est pour cela que TensorFlow est intéressant pour débroussailler le terrain. L'idée de la fusion de zones permet de faire un lien entre le planétaire et le ciel profond. En planétaire, on peut faire de la super résolution à partir d'une dizaine d'images issues de la vidéo assistée puis on peut fusionner les zones pour obtenir l'image la plus vraisemblable compte tenu du domaine. Pour le ciel profond, on ne fait pas de la super résolution mais comme dans l'article fourni ci-dessus, on a 2 styles d'images différents : le cœur de la nébuleuse qui ne doit pas être surexposé et les faibles extensions qui doivent ressortir ou le cœur de la galaxie spirale et les bras ou etc ...
  18. Non j'ai repris celui qui était dans le document pour faire un test. Il faudrait voir dans les bases d'images s'il est présent.
  19. C'est un peu normal car j'utilise le même type d'architecture de réseau qui lui-même a été repris de travaux datant de 2015 et 2016 : Par contre, au lieu de travailler sur une image, je travaille sur une rafale d'images ce qui permet d'atteindre l'image de référence. Ici j'ai fabriqué mes 100 images brutes en ajoutant un bruit hybride + du flou local et des déformations donc mes images brutes ne sont pas 100% naturelles mais cela permet de voir que la vidéo assistée correspond à ce que l'on fait de mieux en PSNR et que la fusion de zone permet de retrouver l'image de référence. Voir par exemple les différences entre 1/10 et 2/10 ainsi que la façon dont cela influence l'image finale après fusion de 3/10, 4/10, ... , 10/10 : Il reste maintenant à vérifier cela sur des exemples réels comme la vidéo de polo.
  20. Pour se rapprocher de l'image réelle, il faut au moins une dizaine d'images comme celle du milieu qui peuvent s'obtenir à partir d'une dizaine d'images de la vidéo assistée d'EVA. L'image de droite correspondant à la fusion de zones de ces 10 images en utilisant le critère du maximum de vraisemblance renforcé par un dictionnaire propre au domaine (la nature ici). Il faut donc 1000 images brutes d'où l'intérêt d'une caméra rapide (300ips+) si on veut que la sauterelle reste dans le champs. La clé du problème reste l'estimation d'un bruit hybride. Il y a des réseaux de neurones qui fonctionnent en cascade avec des encodeurs débruiteurs en entrée mais le résultat est moins bon parce que l'intelligence artificielle se prête moins bien au débruitage d'images naturelles. Par contre si on leur donne en entrée des images artificielles comme celles obtenues avec EVA par exemple alors là ils sont imbattables. Nous avons du soucis à nous faire avec ces réseaux car comme les rats, ils ont des capacités d'apprentissage très étendues.
  21. ajouter de la turbulence

    Effectivement, il faudrait ajouter les flous locaux et faire scintiller les étoiles les plus brillantes.
  22. Sur une seule image comme ici c'est quasiment improbable mais sur une rafales d'images dont le bruit aura été correctement estimé (comme ce sera le cas avec EVA), ce type d'algorithme apportera quelque chose car chaque détail pourra être corrélé sur une dizaine d'images. Pour obtenir une de ces images, il aura déjà fallu une trentaine de rafales d'une dizaine d'images brutes, c'est le prix qu'il faut payer pour être pratiquement sûr de détecter les détails.
  23. Le jour où depuis ton jardin, tu vois cela à l'écran ou en réalité virtuelle ... et ce jour là, approche.
  24. ajouter de la turbulence

    Un modèle hybride de turbulence comme les images brutes de polo ci dessous combine : - le bruit hybride, - des flous locaux, - des déformations. Quand j'extirpe le bruit hybride et les flous locaux, j'obtiens un modèle de turbulence où ne subsistent que les déformations : Pour obtenir uniquement les déformations comme le souhaite Yann, il suffit d'appliquer à l'image ou au dessin le champ de déformation correspondant par exemple aux images brutes de polo ou autres. Un outil simple pour faire cela : la commande warp de GMIC (voir les exemple fournis par Gary Osgood) :
  25. Une petite simulation à partir de l'image du HST fourni par Neb : a) à gauche l'image d'Hubble b) au milieu l'image que l'on peut obtenir en vidéo assistée avec EVA ou avec d'autres méthodes c) à droite l'apport de TensorFlow avec un algorithme type EnhanceNet ou NeuralEnhance Ce n'est pas encore parfaitement au point mais cela donne déjà une idée du post-traitement de super résolution avec TensorFlow d'une vidéo obtenue avec EVA. Il ne faut pas perdre de vue l'essentiel : la détection du capteur, ce n'est qu'à partir d'une estimation fiable du bruit que l'on peut espérer (pour un capteur donné) accéder à ces détails que l'intelligence artificielle ne peut fabriquer. A défaut d'obtenir directement le signal, il faut détecter dans une rafale d'images un nombre suffisant de zones homogènes de bruit. La super résolution révélera par la suite des détails existant dans la vidéo comme dans l'image de droite. Il doit même être possible d'intégrer la super résolution à la vidéo assistée d'EVA en faisant un apprentissage par domaine (astro, médecine, surveillance, ...). Il y a l'équivalent de TensorFlow chez Nvidia (TensorRT3 est 18 fois plus rapide) ou dans ArrayFire ce qui permet d'intégrer ce type de moteur directement en langages C/C++, c'est plus rapide que Python. Pour la super résolution, je ne parle pas à partir d'une image mais d'une vidéo.