Regardez la vidéo et soutenez-moi sur YouTube !
Cet article ne porte pas sur une nouvelle technologie en soi. Il présente plutôt une nouvelle application fascinante des GANs. Oui, vous avez vu le titre, et ce n’était pas un clickbait. Cette IA peut transférer une coiffure sur votre portrait pour vous montrer le résultat avant de vous engager dans ce changement. Nous savons tous qu’il peut être difficile de changer de coiffure, même lorsqu’on en a envie. Du moins, c’est mon cas. Je garde la même coupe depuis des années et je dis à mon coiffeur « comme la dernière fois » tous les 3 ou 4 mois, même si j’aimerais changer. Je n’arrive tout simplement pas à me lancer, de peur que le résultat paraisse étrange et inhabituel. Bien sûr, tout cela est dans notre tête puisque nous sommes les seuls à autant nous soucier de notre coupe, mais cet outil pourrait changer la donne pour certains d’entre nous. Il nous aiderait à décider si nous voulons vraiment faire ce changement en nous donnant une très bonne idée du résultat. Cela dit, les occasions de voir l’avenir avant de se lancer sont rares. Même si le résultat n’est pas parfaitement exact, c’est quand même plutôt cool d’obtenir une aussi bonne approximation de ce à quoi pourrait ressembler une nouvelle coupe. On réduit ainsi une partie du stress lié à l’essai de quelque chose de nouveau, tout en conservant le côté excitant. Évidemment, les coupes de cheveux sont très superficielles comparativement à des applications plus utiles. Néanmoins, il s’agit d’un pas vers la possibilité de « voir l’avenir » avec l’IA, ce qui est plutôt cool. Cette nouvelle technique nous permet en quelque sorte de prédire l’avenir, même s’il ne s’agit que de celui de notre coiffure. Mais avant de voir comment elle fonctionne, je suis curieux de savoir ce que vous en pensez. Dans tout autre domaine :
Quelle autre application aimeriez-vous voir utiliser l’IA pour « voir l’avenir » ?
Exemples de Barbershop. Peihao Zhu et al., (2021)
La méthode peut changer non seulement le style de vos cheveux, mais aussi leur couleur à partir de plusieurs images de référence. Vous pouvez essentiellement fournir trois éléments à l’algorithme :
- une photo de vous
- une photo d’une personne avec la coiffure que vous aimeriez avoir et
- une autre photo (ou la même) avec la couleur de cheveux que vous aimeriez essayer
et l’algorithme fusionne le tout sur votre portrait de manière réaliste.
Les résultats sont franchement impressionnants. Si vous ne faites pas confiance à mon jugement, ce que je comprendrais parfaitement vu mon niveau artistique, les chercheurs ont également mené une étude auprès de 396 participants. Leur solution a été préférée dans 95 pour cent des cas ! Vous trouverez bien sûr plus de détails sur cette étude dans les références ci-dessous si ce résultat vous semble difficile à croire.
Résultats quantitatifs de Barbershop. Peihao Zhu et al., (2021)
Comme vous pouvez vous en douter, nous travaillons ici avec des visages. La méthode utilise donc un processus très semblable à celui des articles précédents que j’ai présentés, qui transforment les visages en dessins animés ou dans d’autres styles à l’aide de GANs. Puisque le fonctionnement est extrêmement similaire, je vous laisse regarder mes autres vidéos où j’explique les GANs en détail. Je vais plutôt me concentrer sur ce que cette méthode apporte de nouveau et sur la raison pour laquelle elle fonctionne aussi bien.
Une architecture GAN peut apprendre à transposer des caractéristiques ou des styles précis d’une image sur une autre. Le problème, c’est que les résultats paraissent souvent irréalistes à cause des différences d’éclairage, des occlusions ou même simplement de la position de la tête, qui change entre les deux photos. Tous ces petits détails rendent le problème très difficile et produisent des artéfacts dans l’image générée. Voici un exemple simple pour mieux le visualiser. Si vous prenez les cheveux d’une personne sur une photo prise dans une pièce sombre et essayez de les placer sur votre portrait photographié dehors en plein jour, le résultat paraîtra quand même étrange, même si les cheveux sont parfaitement transposés sur votre tête. Habituellement, les autres techniques fondées sur les GANs essaient d’encoder l’information des photos, puis d’identifier explicitement dans cet encodage la région associée aux attributs des cheveux afin de les échanger. Cela fonctionne bien lorsque les deux photos sont prises dans des conditions semblables, mais le résultat ne semblera pas réel la plupart du temps pour les raisons que je viens de mentionner. Il fallait ensuite utiliser un autre réseau pour corriger le rééclairage, les trous et les autres artéfacts étranges causés par la fusion. L’objectif était donc de transposer la coiffure et la couleur d’une photo précise sur votre propre portrait, tout en adaptant le résultat à l’éclairage et aux propriétés de votre photo afin de le rendre convaincant et réaliste en une seule étape. On réduit ainsi le nombre d’étapes et les sources d’erreurs.
Si ce dernier paragraphe n’était pas clair, je vous recommande fortement de regarder la vidéo à la fin de cet article. Vous y trouverez plus d’exemples visuels pour faciliter la compréhension.
Architecture de StyleGAN2 et emplacement où sont extraites les informations de structure et d’apparence. Peihao Zhu et al., (2021)
Pour y arriver, Peihao Zhu et al. ont ajouté aux GANs une étape d’alignement qui manquait, mais qui est essentielle. Plutôt que de simplement encoder les images et de les fusionner, la méthode modifie légèrement l’encodage selon un masque de segmentation différent afin de rapprocher les codes latents des deux images. Comme je l’ai mentionné, elle peut modifier à la fois la structure et le style, ou l’apparence, des cheveux.

L’espace latent de l’apparence. Peihao Zhu et al., (2021)
Ici, la structure correspond bien sûr à la géométrie des cheveux. Elle nous indique s’ils sont bouclés, ondulés ou raides. Si vous avez vu mes autres vidéos, vous savez déjà que les GANs encodent l’information à l’aide de convolutions. Ils utilisent donc des noyaux pour réduire l’échelle de l’information à chaque couche et la rendre de plus en plus compacte. Ils retirent ainsi progressivement les détails spatiaux tout en accordant une valeur croissante à l’information générale dans l’output obtenu. Comme toujours, cette information structurelle provient des premières couches du GAN, avant que l’encodage devienne trop général et, disons-le, trop encodé pour représenter des caractéristiques spatiales.
L’apparence désigne l’information encodée en profondeur, notamment la couleur et la texture des cheveux ainsi que l’éclairage. Vous savez maintenant d’où provient l’information des différentes images. Mais comment la méthode la fusionne-t-elle pour produire un résultat plus réaliste que les approches précédentes ?

Processus de Barbershop. Peihao Zhu et al., (2021)
Elle utilise pour cela les cartes de segmentation des images. Plus précisément, elle génère la nouvelle image souhaitée à partir d’une version alignée de notre image cible et de notre image de référence. L’image de référence est notre propre photo, tandis que l’image cible contient la coiffure que nous voulons appliquer. Ces cartes de segmentation nous indiquent ce que l’image contient et où se trouvent les cheveux, la peau, les yeux, le nez, etc.
Cartes de segmentation. Peihao Zhu et al., (2021)
À l’aide de cette information tirée des différentes images, la méthode peut aligner les têtes selon la structure de l’image cible avant d’envoyer les images au réseau pour les encoder avec une architecture modifiée fondée sur StyleGAN2. Une architecture dont j’ai déjà parlé à plusieurs reprises. Cet alignement rend l’information encodée beaucoup plus facile à comparer et à reconstruire.
Ensuite, pour résoudre le problème de l’apparence et de l’éclairage, la méthode trouve un ratio de mélange approprié entre les encodages d’apparence des images cible et de référence pour les mêmes régions segmentées, afin de produire le résultat le plus réaliste possible. Voici les résultats sans l’alignement dans la colonne de gauche, puis ceux de leur approche à droite.
À gauche, sans alignement. À droite, leur méthode. Peihao Zhu et al., (2021)
Bien sûr, ce processus est un peu plus complexe, et vous trouverez tous les détails dans l’article scientifique lié dans les références. Notez que, comme pour la plupart des implémentations de GANs, l’architecture devait être entraînée. Les chercheurs ont utilisé ici un réseau StyleGAN2-base entraîné sur le dataset FFHQ. Puisqu’ils ont apporté de nombreuses modifications, comme nous venons de le voir, ils ont entraîné une seconde fois leur réseau StyleGAN2 modifié avec 198 paires d’images servant d’exemples de transfert de coiffure. Cet entraînement optimise les décisions du modèle à la fois pour le ratio de mélange des apparences et pour les encodages structurels.
Comme vous pouvez vous y attendre, certaines imperfections demeurent. Dans ces exemples, leur approche n’arrive pas à aligner les masques de segmentation ou à reconstruire le visage. Malgré tout, les résultats sont extrêmement impressionnants, et c’est excellent que les chercheurs présentent ouvertement les limites de leur méthode.
Exemples d’échecs. Peihao Zhu et al., (2021)
Comme ils l’indiquent dans l’article scientifique, le code source de leur méthode sera rendu public après une éventuelle publication de l’article. Le lien vers le répertoire GitHub officiel se trouve dans les références ci-dessous. Espérons qu’il sera bientôt publié.
Merci d’avoir lu cet article !
Venez discuter avec nous dans notre communauté Discord : Learn AI Together et partagez vos projets, vos articles scientifiques et vos meilleurs cours, trouvez des coéquipiers pour Kaggle, et bien plus encore !
Si vous aimez mon travail et souhaitez rester au courant des dernières nouvelles en IA, suivez-moi sur mes autres réseaux sociaux (LinkedIn, Twitter) et abonnez-vous à mon infolettre hebdomadaire sur l’IA, la newsletter !
Pour me soutenir :
- La meilleure façon de me soutenir est de devenir membre de ce site ou de vous abonner à ma chaîne YouTube si vous aimez le format vidéo.
- Soutenez financièrement mon travail sur Patreon
Références
- Peihao Zhu et al., (2021), Barbershop, https://arxiv.org/pdf/2106.01505.pdf
- Lien du projet : https://zpdesu.github.io/Barbershop/
- Code : https://github.com/ZPdesu/Barbershop
FAQ
Que peut modifier Barbershop dans un portrait ?
Il peut transférer la coiffure, la forme des cheveux et leur couleur à partir d’une ou de plusieurs images de référence.
Pourquoi le transfert de coiffure est-il plus difficile que de copier des pixels ?
La pose de la tête, les occlusions, l’éclairage et la géométrie du visage diffèrent entre les portraits source et cible.
Comment l’éclairage affecte-t-il une coiffure transférée ?
Des cheveux photographiés dans une pièce sombre auront l’air collés si le portrait cible a été pris dehors.
La méthode peut-elle combiner plusieurs références ?
Oui. Des images distinctes peuvent fournir différents attributs de style et de couleur pour la modification finale.
À quoi ce modèle sert-il concrètement ?
Il permet de prévisualiser une coiffure ou une couleur avant de s’engager dans un changement physique.
Pourquoi l’alignement des segmentations est-il au cœur de Barbershop ?
Il aligne les cheveux, le visage et les autres régions avant que StyleGAN encode les références, ce qui facilite le transfert de la structure et de la couleur avec moins d’artéfacts.


