J'ai fait un générateur Hanko avec GAN

introduction

«Abolition de Hanko» que M. Kono a commencé par une réforme administrative D'autre part, le Conseil Hanko n'est pas d'accord avec "les moyens les plus efficaces de vérification d'identité" (Référence «Hanko Council» Les mentions légales sont efficaces pour la vérification d'identité «Request for abolition»)

Très bien ... osons demander! "** Hanko a-t-il vraiment la possibilité de vérifier votre identité? **" Afin de vérifier ce paradoxe, j'ai réalisé un "générateur de hanko" avec GAN (Generative Adversarial Network).

Préparation

Exemple de création de données

«Pour le moment, j'ai essayé de faire une signature manuscrite et un échantillon de Hanko par la force.

hanko.jpg

―― D'une manière ou d'une autre, quand vous le regardez comme ça, il est manquant, incliné ou mince, et même si la même personne pousse le même format de trois phrases, il y a pas mal de variations.

Mise en œuvre du GAN

  def make_datapath_list():
    train_img_list = list()
    img_num = 140 #Le nombre d'échantillons
    for img_idx in range(img_num):
        img_path = "../data/low/hanko/hanko{:0=3}.jpg ".format(img_idx)
        train_img_list.append(img_path)
    return train_img_list
  import sys
  args = sys.argv
  num_epochs = int(args[1]) if len(args)>1 else 300 
  G_update, D_update = train_model(
      G, D, dataloader=train_dataloader, num_epochs=num_epochs)

Apprendre et exécuter

Implémentation DCGAN (Deep Convolutional GAN)

DCGAN_hanko_epoch300.png

Implémentation SAGAN (Self-Attention GAN)

―― Regardez la carte d'auto-attention à ce moment (plus la couleur est foncée, plus vous portez attention lors de la génération de l'image).

SAGAN_hanko_epoch300_map.png

―― D'une certaine manière, il semble qu'il s'enflamme autour de Hanko

-Je peux le voir! Tu peux le voir! ... Ensuite, c'est le double de 1000 époques!

SAGAN_hanko_epoch1000.png

――Il semble que la partie sombre en haut à droite du tampon fonctionne. Vous voyez peut-être l'habitude d'atterrir en haut à droite lorsque vous appuyez sur le timbre (interprétation arbitraire)

Conclusion

Maintenant c'est un problème. A et B hanko. Quel est le vrai?

logo.png

Peux tu le repérer?

Vous pourrez peut-être dire par la profondeur de la couleur, mais cela peut être impossible à distinguer à première vue.

Peut-être dit-on que "Si vous dupliquez avec ce type de traitement d'image, ce sera un seul coup", Le générateur Hanko a fait cette fois juste entrer un nombre aléatoire L'endroit où vous pouvez faire "** infini faux hanko **" est le miso.

Ce n'est pas seulement une copie, mais tout comme mes variations push, GAN crée une variété de hanko.

Cette fois, c'est ce niveau avec un petit nombre d'échantillons préparés au premier plan miso et un programme de base. Le dernier GAN, Deepfake, est destiné aux vrais et faux visages, même en ciblant le «visage» qui aurait la plus grande discrimination humaine. Il a atteint un niveau où il est presque impossible de le distinguer.

Alors, je suis arrivé à la conclusion que "** A l'ère de l'IA, la capacité d'Hanko à prouver son identité est déjà douteuse **".

(Ne faites pas un tsukkomi naïf que vous pouvez dire à l'encre ou à la viande rouge!)

À propos, la bonne réponse est B. A était un faux généré par GAN.

Aperçu de la prochaine fois?

Même si l'œil humain peut être trompé, il peut être possible de le détecter dans des calculs informatiques. Par conséquent, je voudrais calculer la similitude entre les images Hanko réelles et fausses en utilisant la «correspondance des points caractéristiques» utilisée dans le jugement des empreintes digitales. Je publierai un article s'il y a un besoin.

Recommended Posts

J'ai fait un générateur Hanko avec GAN
J'ai fait un robot de remplacement de tampon avec une ligne
J'ai fait une loterie avec Python.
J'ai créé un démon avec Python
J'ai fait un compteur de caractères avec Python
J'ai fait une carte hexadécimale avec Python
J'ai fait un jeu de vie avec Numpy
J'ai fait un jeu rogue-like avec Python
J'ai fait un simple blackjack avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait une application WEB avec Django
J'ai fait un simulateur de neurones avec Python
〇✕ J'ai fait un jeu
J'ai fait une prévision météo de type bot avec Python.
J'ai créé une application graphique avec Python + PyQt5
J'ai essayé de créer un bloqueur de filles pourries sur Twitter avec Python ①
[Python] J'ai créé un téléchargeur Youtube avec Tkinter.
J'ai fait un simple portefeuille de Bitcoin avec pycoin
J'ai créé un Bot LINE avec Serverless Framework!
J'ai fait un graphique de nombres aléatoires avec Numpy
J'ai fait un jeu de cueillette avec Python
Made Mattermost Bot avec Python (+ Flask)
J'ai fait GAN avec Keras, donc j'ai fait une vidéo du processus d'apprentissage.
Je veux un générateur de mox
[AWS] J'ai créé un BOT de rappel avec LINE WORKS
J'ai fait un Twitter BOT avec GAE (python) (avec une référence)
J'ai créé un bot de livre de compte de ménage avec LINE Bot
J'ai créé un serveur syslog prêt à l'emploi avec Play with Docker
J'ai fait un jeu d'éclairage de sapin de Noël avec Python
J'ai créé une fenêtre pour la sortie du journal avec Tkinter
J'ai fait un blackjack avec du python!
J'ai créé une application de notification de nouvelles en ligne avec Python
J'ai créé un environnement Python3 sur Ubuntu avec direnv.
J'ai essayé de faire LINE BOT avec Python et Heroku
Je veux un générateur mox (2)
J'ai fait un texte Python
J'ai fait un robot discord
J'ai créé COVID19_simulator avec JupyterLab
J'ai créé Word2Vec avec Pytorch
J'ai fait un blackjack avec Python.
J'ai fait un jeu mono tombé avec Sense HAT
J'ai créé wordcloud avec Python.
Une histoire qui a trébuché lorsque j'ai créé un bot de chat avec Transformer
J'ai fait un jeu de frappe simple avec tkinter de Python
J'ai créé un package pour filtrer les séries chronologiques avec python
J'ai créé une application de livre simple avec python + Flask ~ Introduction ~
J'ai créé un moniteur de ressources pour Raspberry Pi avec une feuille de calcul
J'ai fait une minuterie pomodoro dure qui fonctionne avec CUI
J'ai fait une caméra de surveillance avec Raspberry PI pour la première fois.
J'ai créé un plug-in qui peut faire "Daruma-san tombé" avec Minecraft
J'ai fait un générateur de réseau neuronal qui fonctionne sur FPGA
[AWS] J'ai créé un BOT de rappel avec LINE WORKS (implémentation)
J'ai créé un site d'apprentissage C ++
J'ai fait un Line-bot avec Python!
J'ai créé un script de traduction basé sur CUI (2)
J'ai créé un script de traduction basé sur CUI
J'ai créé une bibliothèque qui lit facilement les fichiers de configuration avec Python
J'ai fait un package qui peut comparer des analyseurs morphologiques avec Python
J'ai créé un serveur Web avec Razpai pour regarder des anime