Aux États-Unis, il suffit de 40 minutes aux enquêteurs pour trouver les coupables d’un crime. Enfin, c’est ce que nous font croire les films et séries policiers qui nous viennent du pays de l’Oncle Sam. On a tous déjà entendu une phrase de ce genre : « Zoomez dans l’image. Optimisez cette partie. Oh, regardez, on voit le visage du coupable dans le reflet du rétroviseur ! »
Mais soyons un peu sérieux. La définition d’une image ne peut pas être améliorée. C’est en tout cas ce que l’on était en droit de penser jusqu’à aujourd’hui. Sauf que le projet Google Brain, dédié à l’amélioration de l’intelligence artificielle par le biais de l’apprentissage profond (deep learning), a peut-être trouvé le moyen de rendre réelle la fiction hollywoodienne.
Pousser le concept jusqu’au bout
Rappelons que les recherches de Google dans le domaine permettent déjà d’améliorer la qualité d’une photo de manière bluffante. Sauf que le concept a été poussé encore plus loin. Il s’agit désormais de reconstituer une image reconnaissable à partir d’un amas de pixels dans lequel l’œil humain ne distingue absolument rien.
Regardez sur l’illustration ci-dessous, les images de gauche en 8×8 (64 pixels) sont celles que doit traiter l’intelligence artificielle, celles du centre sont générées par la machine, en 32×32 (1024 pixels). Et à titre de comparaison, les images de droite sont les originales. On peut donc voir que le résultat n’est pas parfait.
En effet, les visages générés par l’IA sont plutôt crédibles, mais ils restent différents des versions originales en 32×32 pixels. Néanmoins, malgré ces imperfections, les résultats obtenus sont vraiment incroyables. Mais la manière dont Google Brain réussit à les obtenir l’est tout autant.
Deux réseaux de neurones
Deux réseaux de neurones sont exploités. Le premier cherche d’abord des similitudes entre l’image à 64 pixels et d’autres photos de meilleure qualité. Pour cela, il va réduire la définition de ces dernières à 8×8. Cela lui permet de comparer plus facilement les photos de base et celles qu’il a en stock. Il va ainsi combiner les images qui correspondent.
Le deuxième réseau de neurones, quant à lui, pioche dans une grande banque de données — dans cet exemple il s’agit de photos de célébrités et de chambres à coucher. Grâce à celle-ci, il est capable de créer artificiellement des éléments de bonne qualité et de les ajouter artificiellement des éléments dans l’image de 8×8.
Par exemple, s’il détecte un pixel noir dans un coin supérieur, il va pouvoir supposer qu’il s’agit d’un sourcil noir grâce à la banque de données sur laquelle il se base. Dans le détail, l’intelligence artificielle utilise une implémentation PixelCNN pour réaliser cette opération complexe.
Concrètement, on peut estimer qu’il sera bientôt possible de faire comme Les Experts et tous les autres policiers fictifs très bien caricaturés dans cette vidéo :
Si vous souhaitez en savoir plus sur le fonctionnement des intelligences artificielles, vous pouvez consulter notre dossier dédié au sujet.
Pour aller plus loin
Comment le machine learning compte-t-il révolutionner notre quotidien ?
Des invités passionnants et des sujets palpitants ! Notre émission UNLOCK est à retrouver un jeudi sur deux en direct, de 17 à 19h sur Twitch. Pensez aussi aux rediffusions sur YouTube !
C'est assez impressionant :o
Donc en fait l’algorithme donne une réponse un peu au hasard, en disant" Beuh, celle là ! Je crois", mais de manière systématique et rigoureuse !
Non car là les images sorties par le système sont totalement créées par lui-même, pixel par pixel. On ne va pas montrer la photo du visage qui se rapproche le plus de l'amas grossier de pixels, mais on va puiser dans toutes les images. Les visages qu'on veut "reconnaître" à partir des 64 pixels ne sont pas d'emblée dans la base de données d'origine mais sont un agrégat de plein de parties d'images d'origine différentes reconstituées.
oui et de fait cela ne permet absolument pas de faire comme les experts qui arrivent a trouver le visage d'une personne parfaitement inconnue à partir de quasiment rien. Car l'algo est d'autant moins précis que le nombre de différence est important, donc si le visage est hors totalement de la base, l'algo représentera un visage qui a des caractéristiques contenues dans la base... quelles que soient celles de notre inconnu...
Merci pour tes explications :)
Il ne pense pas par visages, mais par couleur et proximité. Il va réduire tous les visages de sa Bdd en images 8*8 pixels, en attribuant à chaque pixel ainsi créé la couleur "moyenne" de l'ensemble de pixels sous-jacents de l'image originale (un peu le même principe que la compression vidéo h264/h265, on regarde l'homogénéité par zone). Il aura ainsi une nouvelle base de données de photos en 64pixels avec des couleurs assez grossières, dont on connaît l'image originale mieux définie. Puis à partir de l'image qu'on veut généraliser en input, il va regarder la "couleur" de chacun des 64 pixels, puis selon cette dernière il va la transformer en zone mieux définie d'après le modèle de la Bdd source qui se rapproche le plus de cette couleur (il va regarder à quoi la couleur du pixel se rapproche le plus dans la bdd créée, puis va la relier à la zone de l'image d'origine de la bdd). Et ceci pour chacun des 64 pixels à généraliser. D'où l'intérêt d'avoir des images sources dans la bdd qui soient très nombreuses, très différentes et aussi très bruitées ! C'est un algorithme assez simple à imaginer, comme ceux de tous les réseaux de neurones, il n'y a rien de magique, ce sont l'implémentation et la vérification mathématique qui sont dures à comprendre.
Il construit, à partir d'éléments clés dans des images de référence. L'image réalisée est crée de toutes pièces par l'algo, en assemblant des trucs qui se ressemblent. Sur l'image, la colonne "NN" représente l'image de la base de données la plus proche qu'il ait pu trouver, une fois réduite en 8*8. Tu as quelques exemples d'images générées avec des paramètres légèrement différents sur l'article d'Ars Technica : https://arstechnica.com/information-technology/2017/02/google-brain-super-resolution-zoom-enhance/
Il part d'une image dans sa base puis la réduit pour faire une comparaison. Donc si le visage de 64 pixels ne fait pas partie de sa base il ne pourra donner qu'une approximation.
A qui tu poses la question? :-P
Pareil, j'ai un peu de mal, même avec beaucoup d'apprentissage, à comprendre comment il peut trancher entre 2 images similaires, et dieu sait que les visages humains le sont parfois !
Il reconstruit, ou il fait l'association avec une image qu'il a déjà dans sa bdd ? Non parce que la magie, perso, j'y crois pas.
Welcome in 1987 ! :p Le QVGA vaincra !
Ce contenu est bloqué car vous n'avez pas accepté les cookies et autres traceurs. Ce contenu est fourni par Disqus.
Pour pouvoir le visualiser, vous devez accepter l'usage étant opéré par Disqus avec vos données qui pourront être utilisées pour les finalités suivantes : vous permettre de visualiser et de partager des contenus avec des médias sociaux, favoriser le développement et l'amélioration des produits d'Humanoid et de ses partenaires, vous afficher des publicités personnalisées par rapport à votre profil et activité, vous définir un profil publicitaire personnalisé, mesurer la performance des publicités et du contenu de ce site et mesurer l'audience de ce site (en savoir plus)
En cliquant sur « J’accepte tout », vous consentez aux finalités susmentionnées pour l’ensemble des cookies et autres traceurs déposés par Humanoid et ses partenaires.
Vous gardez la possibilité de retirer votre consentement à tout moment. Pour plus d’informations, nous vous invitons à prendre connaissance de notre Politique cookies.
Gérer mes choix