Est-il possible de former un réseau neuronal pour dessiner l'image dans un certain style?

10

Est-il possible de former un réseau neuronal pour dessiner l'image dans un certain style? (Il prend donc une image et la redessine dans un style pour lequel elle a été formée.)

Existe-t-il une technologie approuvée pour ce genre de chose? Je connais l'algorithme DeepArt. Il est bon de remplir l'image principale avec un certain motif (par exemple, une image vangoghify), mais je cherche quelque chose de différent - par exemple, faire une bande dessinée dans un certain style à partir du portrait d'entrée.

zavg
la source
3
Un obstacle à la formation d'un réseau neuronal de photographie à dessin animé peut être de trouver un ensemble de données d'entraînement. Il semble que l'ensemble de données devrait contenir des photographies et des dessins animés que les humains ont dessinés sur la base de ces photographies. Je ne connais aucun de ces ensembles de données.
Tanner Swett
@TannerSwett Comment pensez-vous combien d'images est nécessaire pour ce type de formation?
zavg
Je ne suis pas un expert, donc je ne peux que faire une supposition sauvage. Je pense que vous auriez besoin d'au moins mille images. Vous pourriez avoir besoin de beaucoup plus que cela. Au fait, je suggère de regarder cet outil: github.com/hardmaru/sketch-rnn Cet outil a été utilisé pour générer des imitations de caractères chinois; peut-être qu'un outil similaire pourrait générer des imitations de dessins animés.
Tanner Swett
Je suis peut-être un peu dépassé, car ma formation NN était il y a quelque temps, mais si vous envisagez de former un réseau avec quelques milliers d'images et que vous vous attendez à ce qu'il puisse rendre des images dans un style que vous atteignez peut-être trop loin - si vous pensez que c'est un bon projet de démarrage, alors ne le faites pas. Pour réaliser ce que vous décrivez, il faudrait «beaucoup» de violon manuel. Pensez aux connaissances nécessaires pour interpréter une image et pas seulement à la correspondance de motifs.
Peter Scott
Il convient également de regarder vox.com/2016/6/1/11787262/blade-runner-neural-network-encoding
Peter Scott

Réponses:

12

Il existe un article pertinent: LA Gatus, AS Ecker, M Bethge, 2015, A Neural Algorithm of Artistic Style . Citant l'abstrait,

Ici, nous introduisons un système artificiel basé sur un réseau de neurones profonds qui crée des images artistiques de haute qualité perceptuelle. Le système utilise des représentations neuronales pour séparer et recombiner le contenu et le style d'images arbitraires, fournissant un algorithme neuronal pour la création d'images artistiques.

Voici la figure 2 de cet article:

entrez la description de l'image ici

Il y a aussi une très populaire implémentation open source basé sur la torche ici qui est très facile à utiliser. Voir le lien pour plus d'exemples.

Gardez à l'esprit que les calculs sont lourds et donc le traitement d'images uniques est la portée de ce travail.

Edit: après avoir vérifié votre projet DeepArt mentionné, il semble qu'il utilise les mêmes techniques. Je ne sais pas pourquoi ce n'est pas ce que vous voulez, car le concept de transfert de style est aussi général que possible.

sascha
la source
4
Les dessins animés exagèrent et simplifient les caractéristiques de tout ce qu'ils représentent, produisant des formes qui sont très différentes des formes d'une photographie. Je ne crois pas que les réseaux neuronaux de transfert de style existants aient jamais fait cela.
Tanner Swett
@TannerSwett Regardez les exemples ici: imgur.com/a/ue6ap . Certains d'entre eux sont tout à fait des dessins animés.
amoeba
@amoeba Ils ont l'air caricaturaux, oui, mais aucun d'entre eux n'a les proportions déformées de la plupart des vrais dessins animés.
Tanner Swett
Nous parlons ici de transfert de style. Tous les exemples utilisent un style choisi a priori, où aucun d'entre eux n'a été caricatural (pourquoi la sortie devrait-elle être caricaturale, quand elle a appris sur Van Gogh). Peut-être pourriez-vous simplement lancer le projet open-source (je n'ai eu aucun problème dans le passé) et l'essayer avec cartoon-input.
sascha
7

C'est un problème assez difficile à résoudre. Vous pouvez voir ici quelques exemples sur la façon dont un style de bande dessinée, par exemple de Simpson a été appliqué à une image.

Une image de dessin animé n'a généralement pas la structure qui donne cet effet artistique . La façon la plus simple d'essayer de l'appliquer d'une manière ou d'une autre serait d'avoir un suivi de visage, puis d'essayer d'aligner deux visages, par exemple un visage de dessin animé et un visage humain, puis de l'appliquer. Cela pourrait vous mener quelque part, mais cela pourrait aussi sembler bizarre. Vous pouvez ensuite annoter des points de repère dans les images pour vous aider davantage et effectuer un enregistrement non rigide avant cela. C'est encore un peu une solution de shitmix, mais le plus proche que je puisse penser qui pourrait fonctionner pour les visages.

Éditer:

Le commentaire de @TannerSwett ajoute quelque chose à cela, il est possible d'aller sur certaines pages Web d'artistes et d'essayer de trouver leurs illustrations et d'apprendre "leur" style. Je ne pense toujours pas que cela satisfera ou fournira suffisamment de données, mais ce serait une chose intéressante à tester. Il n'y a pas de solution généralement disponible en ce moment, mais je pense que certaines personnes y travaillent, et nous verrons bientôt de meilleurs résultats.

Je pense que la voie à suivre n'est peut-être pas l'approche du réseau neuronal artistique. Il est peut-être préférable d'avoir un réseau capable de classer les objets dans une image, puis d'apprendre les correspondances entre les objets et leurs homologues de dessins animés, puis de mélanger les résultats de manière significative.

Gumeo
la source
1
Cet exemple de Simpson me semble plutôt génial @Gumeo
FabricioG
1

Cela ne devrait pas être trop compliqué à faire. Vous n'avez pas lu l'article mentionné, voici ma recette:

Encodeurs automatiques variationnels

Démo en ligne avec morphing des visages: http://vdumoulin.github.io/morphing_faces/online_demo.html

et https://jmetzen.github.io/2015-11-27/vae.html pour le codez.

Fondamentalement, cela vous permet de paramétrer le `` style '' dans votre cas, par exemple, disons à quel point le coup de pinceau doit être large ou flou. Des trucs qui dépendent du style particulier que vous essayez d'émuler.

Dans l'exemple ci-dessus, différentes faces «morphées» ou «imaginées» sont fonction des paramètres de l'espace latent. Dans l'image ci-dessous, c'est ce que vous obtenez en changeant des choses au niveau du «code».

Voici l'idée de base: image originale à gauche, version stylisée de la même image à droite:

entrez la description de l'image ici

Maintenant, en théorie, si vous entraîniez un tel modèle sur une image normale et une image stylisée comme cible et ajoutiez des circonvolutions, vous devriez pouvoir apprendre les filtres du noyau qui correspondent au type de "coups de pinceau" que l'artiste utilise. .

Bien sûr, cela signifie que vous devez avoir quelques exemples d'images dans les versions originales et stylisées. Un tel ensemble de données serait bien à faire un don à la communauté - si vous finissez par le faire, je serais très heureux de voir ce genre de travail.

Bonne chance!

L'article wiki sur les encodeurs automatiques serait un bon point de départ: https://en.wikipedia.org/wiki/Autoencoder

shuriken x bleu
la source