Le GREYC, laboratoire de recherche en informatique, image, automatique et instrumentation du CNRS situé à Caen, a mis en ligne un service Web (Web service) basé sur le logiciel libre G’MIC (GREYC’s Magic Image Converter, développé dans ce même laboratoire) permettant d’appliquer des filtres/effets sur des images, directement à partir d’un navigateur Web.
C’est à l’occasion de la sortie de la nouvelle version majeure 1.5.2.0 de G’MIC que cette interface Web a été mise en place. Elle reprend les principaux éléments du greffon G’MIC pour GIMP : un arbre des filtres disponibles (+ de 200 actuellement), une fenêtre de prévisualisation de l’effet sélectionné et un panneau de réglage des paramètres.
Des détails sur ce service et sur les nouveautés du projet G’MIC, dans la deuxième partie de la dépêche.
Le projet G’MIC en est rendu à la version 1.5.2.0. Il définit un ensemble d’interfaces permettant de manipuler des images génériques (2D, 3D, multi‐spectrales, etc.) en particulier :
- une bibliothèque C++ libgmic, permettant d’ajouter les fonctionnalités de G’MIC dans un programme C++ ;
- un binaire en ligne de commande gmic, qui permet de manipuler les images à partir d’un shell, « à la ImageMagick » ;
- un greffon gmic_gimp pour GIMP, ajoutant des centaines d’effets au logiciel libre bien connu de retouche d’images ;
- et depuis peu donc, un service Web G’MIC Online permettant d’appliquer des filtres sur des images à partir d’un navigateur Web. Ce service a été développé par Sébastien Fourey, membre de l’équipe IMAGE du laboratoire GREYC. Cette nouvelle interface est particulièrement intéressante pour le projet G’MIC : elle ne requiert aucune installation et devrait permettre de toucher un public plus large. Pour des raisons techniques évidentes, la taille des images que l’on peut traiter est actuellement limitée, et certains filtres du greffon sont absents (car trop gourmands en ressources). Mais cela reste néanmoins une interface très pratique et rapide à utiliser, qui pourrait démocratiser l’usage de G’MIC.
Dans cette dernière version de G’MIC, on peut comme toujours noter l’apparition de nouveaux filtres et effets, et de nombreuses corrections de bogues et optimisations diverses (voir le journal des modifications complet).
À noter finalement que G’MIC fera l’objet d’une présentation dans la session Multimédia du Capitole du Libre, à Toulouse, le 24 novembre 2012. N’hésitez pas à tester et à nous donner vos avis et remarques sur ce sympathique projet !
Aller plus loin
- G’MIC Online (1691 clics)
- G’MIC, page principale du projet (170 clics)
- G’MIC pour GIMP (156 clics)
- Laboratoire GREYC (288 clics)
- Notes de version [1.5.2.0] (84 clics)
# ZArt
Posté par David Tschumperlé (site web personnel) . Évalué à 10. Dernière modification le 14 juillet 2024 à 20:08.
A noter qu'il existe aussi une autre interface a G'MIC : ZArt, développé également par Sébastien Fourey (quel contributeur actif!) permettant de jouer avec les filtres de G'MIC sur les images provenant de la webcam. C'est très intéressant notamment pour faire des démonstrations lives d'opérateurs de traitement d'image à des étudiants, ou lors d'occasions telles que la fête de la science.
Honte à moi pour cet oubli !
Voici une copie d'écran de ZArt en action :
[^] # Re: ZArt
Posté par HeroCoder123 . Évalué à 0.
Ca a l'air chouette. Ou peut-on le telecharger?
[^] # Re: ZArt
Posté par Guy . Évalué à 1.
Oui et l'installer par la même occasion :
sudo aptitude install gmic-zart
# PIV
Posté par Sytoka Modon (site web personnel) . Évalué à 5.
J'ai quelques chercheurs qui font de la PIV. En gros, on construit un champ de vitesse et un champ de corrélation à partir de deux images d'un même fluide à deux instants distants. Quasiment la même chose est possible avec des solides déformables pour avoir le champs de déformation…
http://en.wikipedia.org/wiki/Particle_image_velocimetry
On peux aussi faire cela avec une suite d'image voire si on a plusieurs appareils photos ou caméras le faire en 3D… L'intérêt est qu'avec 3 images à chaque instant, on multiplie par 10 environ la précision !
Est-ce possible avec G'MIC de faire ce genre de chose actuellement ? Si non, est-ce une problématique facilement envisageable ?
[^] # Re: PIV
Posté par BAud (site web personnel) . Évalué à 2.
ils lisent la plaque d'un véhicule par reconnaissance de caractères de photos issues de 3 webcam en 640x480 comme dans NCIS (Los Angeles, je précise…) ?
[^] # Re: PIV
Posté par Sytoka Modon (site web personnel) . Évalué à 2.
Il y a eu des essais de réalisé avec du 40, voire du 80 millions de pixel. Pas besoin de 3 photos pour lire une plaque ;-)
[^] # Re: PIV
Posté par David Tschumperlé (site web personnel) . Évalué à 3.
Oui je pense que c'est possible, G'MIC possède des outils d'estimation de déplacement local entre deux images, en 2D et en 3D.
[^] # Re: PIV
Posté par Sytoka Modon (site web personnel) . Évalué à 2.
Super, as tu une piste à me donner ?
A ce jour, on enregistre ces estimations dans un fichier NetCDF sous forme de tableau de réel. C'est un format d'image très pratique si on veut faire des traitements dessus dans un autre langage (scilab, matlab, fortran…). Tu choisirais quoi comme format pour ces estimations ?
Éventuellement, on peux basculer en mode privé pour ne pas fagocité la news, je suis au CNRS moi aussi ;-)
[^] # Re: PIV
Posté par David Tschumperlé (site web personnel) . Évalué à 3.
Oui, il faudrait que je puisse voir le type des données d'entrées, et ce que tu veux en faire exactement. Je pourrais aviser ensuite. Effectivement on peut continuer en e-mail :p
[^] # Re: PIV
Posté par freejeff . Évalué à 3.
Bonjour,
J'encadre un post-doc qui a developpé un protoype de PIV/DIC/"recalage d'image" en 2D en utilisant cimg. Son travail est basé sur l'estimation du flot optique global en utilisant des éléments bilinéaire. Cela ressemble un peu à ce qui est fait ici ftp://ftp-sop.inria.fr/athena/Team/David.Tschumperle/CImg/examples/optflow.c
tout est fait en GPL, cela peut évidemment être partagé.
[^] # Re: PIV
Posté par David Tschumperlé (site web personnel) . Évalué à 3.
L'algo d'estimation de déplacement de G'MIC est exactement celui là (G'MIC est basé sur CImg..).
Donc à priori, on peut utiliser G'MIC pour l'appeller depuis la ligne de commande.
[^] # Re: PIV
Posté par freejeff . Évalué à 6.
C'est un peu différent tout de même. Dans ce que tu fais tu définis une grille de type différence finies à la taille du pixel, et tu régularises en pénalisant une énergie de type laplacien du déplacement, ce qui évites d'avoir des fortes variations du déplacement. Nous avons implémenté un technique basée sur les éléments finis, qui assure une interpolation bilinéaire par élément avec une grille de taille allant de 16x16 à 64x64 (en général), il y a dans ce cas moins besoin de pénaliser l’énergie associée à l'image.
Pour expliquer un peu le problème de manière plus générale, associer déplacement et images est un thème abordé par plusieurs communautés.
Les pionnier sont la mécanique des fluide avec la Particule Image Velocimetry :
Il s'agit d'observer des particules et de prendre deux images successives à des temps très courts. La technique classique consiste à prendre des petites fenêtres et à chaque fenêtre rechercher le déplacement de corps rigide qui entraîne la meilleur corrélation entre les deux imagettes. Comme le déplacement est pris entre deux temps très courts on peut avoir une image fidèle de la vitesse. On notera le logiciel libre osiv http://osiv.sourceforge.net/ ainsi que jpiv http://www.jpiv.vennemann-online.de/ qui répondent à cette problématique
On appelle cette méthode en mécanique des solides déformables, Digital Images Correlation. La différence principale vient du fait que les images sont prises avec des temps plus grands entre deux images successives. On a donc des déplacements. Beaucoup de techniques sont identiques à celles de la PIV. On ne s’intéresse toujours pas au recalage entre l'image initiale et l'image finale. Il n'existe pas chez nous de Logiciels Libre pour répondre à ce besoin, mais ceux de la PIV fonctionnent bien.
A noter que les techniques utilisant le flot optique sont aussi couramment utilisées sur des imagettes, il existe une communauté en analyse d'images qui utilise massivement ces méthodes, on peut se référer à l'implémentation de l'algorithme de Lucas-Kanade dans OpenCV (https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/c/lkdemo.c?rev=1429) pour plus de détails.
Il y a eu en 2006 l'apparition de méthodes appelées globales, qui sont celles que j'ai expliqué au début. Dans ces méthodes on recale l'image finale sur l'image initiale. Elles sont également basées sur le flot optique, mais c'est sur toute l'image que s'opère la minimisation et non sur une imagette.
Dans la communauté d'imagerie médicale, il existe depuis bien plus longtemps (1995) des techniques appelées Image Registration (ou recalage d'images), qui cherchent à rendre le plus semblables possible deux images en déformant l'image finale. Il y a plusieurs catégories, le recalage rigide, on l'on cherche à trouver la meilleurs translations et rotations (en 2D ou 3D) le recalage par similarité (on cherche le grossissement en +), il y a ensuite ce qui s'appelle le recalage déformable ou élastique. Il existe beaucoup de logiciels libres permettant de faire du recalage d'images, le plus complet est elastix (http://elastix.isi.uu.nl/) là où nous utilisons une base élément finis pour les déplacements ils utilisent des BSplines. Il existe également plastimatch (http://plastimatch.org/) qui a moins d'options que elastix ne fonctionne qu'en 3D mais est massivement // peut faire du OpenMP ou du Cuda ce qui le rend dans ce contexte très intéressant.
De notre cotés nous essayons de développer une plate-forme permettant de balayer tout ces domaines avec la contrainte de tout penser pour que ce soit massivement // du fait de l'arrivée prochaine d'un µtomographe qui nous permettra d'avoir ds images de 2000³ ce qui est infaisable aujourd'hui sur un laptop. et prend beaucoup de temps sur des machines performantes ou des HPC si ce n'est pas parallélisé.
Je rebondirais également sur l’aspect données, nous essayons également de travailler le plus possible avec netCDF car il permet d'avoir des données pérennes d'acceder aux fichiers en // et de stocker beaucoup plus que des pixels.
[^] # Re: PIV
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
Je ne sais pas si la lib c++ a changé, mais j'avais déjà vu que c'était dommage que la structure des images et les fonctions de traitement ne soit pas plus séparé. Il est donc difficile de faire du SIMD, de l'openMP et encore plus dure de faire de l'opencl.
"La première sécurité est la liberté"
[^] # Re: PIV
Posté par zonder . Évalué à 3.
Ce qu'il faudrait pour rendre cette discussion agréable, c'est qqs images représentatives du problème, comme ça on pourrait jouer avec plutôt que de parler dans l'abstrait.
[^] # Re: PIV
Posté par Sytoka Modon (site web personnel) . Évalué à 6.
Il y a dans cette archive deux image PNG d'un des logiciels qu'on utilise actuellement. Comme c'est déjà tout pré-maché, je ne vais pas refaire le monde ;-)
http://coriolis.legi.grenoble-inp.fr/IMG/gz/EX_1-tar-2.gz
Attention, ce sont des images PNG 16 bits. Ces images font partie du tutoriel du logiciel UVMAT que l'on trouve ici http://coriolis.legi.grenoble-inp.fr/spip.php?article105
[^] # Re: PIV
Posté par zonder . Évalué à 1.
merci.
[^] # Re: PIV
Posté par gasche . Évalué à 10.
Par ailleurs, voir des chercheurs se mettre à travailler ensemble suite à une news sur LinuxFR, c'est sans doute ce qui peut arriver de plus intéressant dans des commentaires de news; le titre de "pollution" est bien pessimiste !
# G'MIC Online
Posté par Olivier Serve (site web personnel) . Évalué à 8.
Un truc qui serait pratique sur G'MIC Online serait d'avoir l'image originale quand on passe la souris sur l'image et la preview de l'effet quand la souris est ailleurs (façon ShowPhoto).
Sur des effets subtils ça permet de mieux visualiser les différences.
# Amélioration
Posté par David Tschumperlé (site web personnel) . Évalué à 10.
Sébastien a déjà mis en place quelques améliorations du site, avec :
Je trouve la proposition du commentaire précédente très pertinente, on va voir si c'est possible à faire.
[^] # Re: Amélioration
Posté par Nicolas Boulay (site web personnel) . Évalué à 1.
Il faudrait aussi des courbes manipulables par souris pour les courbes de niveau.
"La première sécurité est la liberté"
[^] # Re: Amélioration
Posté par zonder . Évalué à 1.
Il faudrait un moteur de recherche pour les filtres.
[^] # Re: Amélioration
Posté par Olivier Serve (site web personnel) . Évalué à 1.
J'ai vu que ma proposition ci-dessus a été mise en place. C'est un petit peu lent, mais merci !
[^] # Re: Amélioration
Posté par David Tschumperlé (site web personnel) . Évalué à 4.
Utilises-tu Chrome ?
Nous avons un problème avec Chrome pour le switch des images, c'est effectivement un peu lent, par contre sous Firefox ou IE ça turbine.
[^] # Re: Amélioration
Posté par Olivier Serve (site web personnel) . Évalué à 2.
Argh, je suis démasqué ! J'utilise Chromium la plupart du temps.
En effet, avec Firefox la vitesse est normale, well done !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.