[PYTHON] Ce que SinGAN ne peut pas faire dans le meilleur article de l'ICCV2019 [Pratique]

introduction

Cet article est l'entrée du 18e jour du nouvel ingénieur diplômé de CyberAgent20 Calendrier de l'Avent 2019. Je suis un étudiant diplômé faisant de la recherche en vision par ordinateur en utilisant l'apprentissage profond. twitter → https://twitter.com/revi_matsu Cette fois, c'est l'édition pratique ** SinGAN ** qui a remporté le prix du meilleur article à l'ICCV 2019 qui s'est tenue l'autre jour.

Comment lire cet article

[Ceux qui veulent avoir un aperçu approximatif] Veuillez lire cet article. [Pour ceux qui veulent connaître un peu les spécifications] Cet article → J'ai lu "SinGAN" à la légère et l'ai résumé brièvement [Ceux qui veulent connaître les détails] Cet article → “SinGAN” a été lu brièvement et résuméArticle

Qu'est-ce que SinGAN

Veuillez consulter l'article suivant pour obtenir des explications sur SinGAN. Voici un bref résumé des points. Meilleur article ICCV2019 "SinGAN" Je l'ai lu brièvement et je l'ai résumé brièvement

SinGAN est une méthode d'apprentissage unique basée sur le GAN. Ce qui est étonnant, c'est que ** une image d'apprentissage peut être appliquée à diverses tâches **. Normalement, l'apprentissage du Deep Learning, non limité au GAN, nécessite un grand nombre d'images d'apprentissage. Cependant, bien sûr, en raison de la difficulté de collecter des données, la mise en œuvre avec un petit nombre d'images d'apprentissage est devenue un thème de forte demande, mais bien sûr ce n'est pas un problème facile.

Avec SinGAN, il est possible d'apprendre des fonctionnalités qui n'ont pas pu être extraites jusqu'à présent. La figure ci-dessous est un exemple d'échantillonnage aléatoire (apprentissage avec une image d'apprentissage et génération d'un exemple d'image similaire à partir du bruit). Dans le PSGAN conventionnel et la synthèse de texture profonde, seule la ** texture (atmosphère) ** de l'image d'entraînement est conservée et l'image est générée, mais on peut voir que les informations de forme du bâtiment ou du bâtiment ne peuvent pas être conservées. D'autre part, il peut être confirmé que SinGAN reproduit également quelque chose comme un bâtiment.

SinGAN peut être appliqué à d'autres tâches à un niveau élevé, et un grand nombre d'expériences sont décrites dans l'article. Cette fois, en plus de mener réellement une expérience de l'auteur github, l'édition pratique basée sur le cas de son application à des tâches non mentionnées dans l'article J'aimerais pouvoir vous présenter. image.png

Édition pratique

Le code utilise ici. Le code utilise python3.6 et le framework utilise pytorch. Cette fois, je l'ai appliqué aux deux tâches suivantes. ・ Animation (présentée dans l'article) ・ Segmentation sémantique (non introduite dans l'article)

Animation Ici, un gif est généré à partir d'une image. Dans le journal, l'exemple du tonnerre a été utilisé, mais cette fois, j'écrivais un article indiquant que Sync était conscient de Noël avec le calendrier de l'Avent l'autre jour, alors je veux le monter lol. ・ @ Dai7Igarashi, FramerMotion pour faire quelque chose comme Noël! Implémentation d'animation Android avec @ airagu950, Lottie

Donc, Je vais créer une animation de Noël à partir d'une image d'apprentissage. </ Font> snow4.png

Image d'apprentissage

alpha=0.100000_beta=0.900000.gif

Animation générée

Vous pouvez voir comment les choses enneigées sont générées aléatoirement tout en conservant le style. Utilisons un exemple qui peut confirmer si le style est maintenu un peu plus. image.png Image d'apprentissage alpha=0.100000_beta=0.850000.gif Animation générée

** Il peut être confirmé que le bonhomme de neige conserve sa forme **. De cette façon, les informations avec de grandes caractéristiques dans l'image sont très bien conservées, et inversement, la quantité de caractéristiques est petite comme la neige. En raison du bruit aléatoire de l'entrée lors de l'échantillonnage aléatoire Vous pouvez voir que de petits changements se produisent (je me fiche de savoir comment il neige). Ne pensez-vous pas que c'est vraiment intéressant? ??

Semantic Segmentation La segmentation sémantique est une tâche non proposée dans l'article, et il est considéré comme très difficile de réaliser cette tâche avec One-shot. La raison principale en est que la segmentation utilise généralement une méthode d'attribution d'une étiquette déterminée pour chaque pixel et qu'elle n'apprend pas la conversion d'images en images de segmentation à l'aide d'une caméra embarquée. ** SinGAN est bon pour extraire des caractéristiques des images des enseignants, et il y a une forte probabilité que cette partie de l'image qui sera entrée pendant le test soit 〇〇! Je n'ai pas appris cela. ** **

Cependant, cette fois, je voulais vérifier la quantité d'extraction de fonctionnalités (je pense que l'expression de la rétention de fonctionnalités est plus appropriée), j'ai donc appliqué le SinGAN original à la segmentation sémantique. .. En termes simples, ** image à image ** est appliqué directement. Cette fois, j'ai essayé d'utiliser l'ensemble de données de la caméra embarquée et l'ensemble de données d'image de cellule. image.png

Le résultat réel de la segmentation est comme indiqué dans la figure ci-dessous. La plupart des prédictions ont été faites, mais il semble difficile d'appliquer la segmentation directement aux tâches. Cependant, dans l'image de la cellule, certaines parties où le noyau de la cellule peut être identifié peuvent être confirmées. Des données telles que des images de cellules, dans lesquelles la composition de l'image entière ne change pas facilement d'une image à l'autre, peuvent indiquer la possibilité d'une segmentation dans une certaine mesure.

Dans tous les cas, cet article supprime simplement de force la segmentation dans le modèle SinGAN existant. J'attends avec impatience le développement futur. image.png

en conclusion

Cet article portait sur la pratique de SinGAN. Il y avait de nombreuses tâches qui pouvaient être effectuées avec le SinGAN original, et toutes étaient d'un niveau élevé, et certaines d'entre elles ne semblaient pas être un apprentissage unique. J'attends avec impatience l'application et le développement à d'autres tâches car cela semble être l'un des domaines de recherche intéressants.

De plus, cette fois, j'ai publié un article sur CyberAgent 20 nouvel ingénieur diplômé Calendrier de l'Avent 2019 en tant que candidat pour CyberAgent diplômé en 2020, mais en fait, CyberAgent a commencé à embaucher 21 ingénieurs diplômés! !! </ font> J'ai décidé de rejoindre CyberAgent par le biais d'un stagiaire de longue date, mais CyberAgent a trouvé ** divers services et entreprises et leurs connexions ** très intéressants. Je pense qu'un tel environnement est un très bon endroit pour s'épanouir, n'est-ce pas passionnant de perfectionner ses compétences et de contribuer à l'entreprise? J'ai décidé de rejoindre l'entreprise en espérant que ce serait enrichissant et ma croissance. Si cela vous intéresse, venez! Une chance d'élargir considérablement vos horizons! https://www.cyberagent.co.jp/careers/special/engineer2021/?utm_source=twitter&utm_medium=sns&utm_campaign=social

Recommended Posts