"Abschaffung von Hanko", die Herr Kono mit einer Verwaltungsreform begann Auf der anderen Seite ist der Hanko-Rat nicht mit "dem effektivsten Mittel zur Identitätsprüfung" einverstanden. (Referenz "Hanko Council" -Impressum ist wirksam für die Identitätsprüfung "Antrag auf Abschaffung")
Also gut ... lasst uns wagen zu fragen! "** Hat Hanko wirklich die Möglichkeit, Ihre Identität zu überprüfen? **" Um dieses Paradoxon zu verifizieren, habe ich mit GAN (Generative Adversarial Network) einen "Hanko-Generator" erstellt.
»Vorerst habe ich versucht, mit Gewalt eine handschriftliche Unterschrift und eine Probe von Hanko zu machen --A4-Papier ist in Raster von 2 cm x 2 cm unterteilt und ** insgesamt 140 Stempel von 14 x 10 werden gestempelt ** ―― Ernsthaft bedruckt! Impressum! Impressum! Impressum! I ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (Ich habe das Gefühl, die Nöte einer sehr großen Person zu verstehen)
――Wenn Sie es so betrachten, fehlt es, ist geneigt oder dünn, und selbst wenn dieselbe Person dasselbe Drei-Satz-Format verwendet, gibt es eine ganze Reihe von Variationen.
Teilen Sie als nächstes jeden Stempel ――Die manuelle Arbeit mit Bildverarbeitungssoftware ist schwierig, und ich möchte die Datenspezifikationen mit 64 * 64 Pixel MNIST abgleichen, daher habe ich ein einfaches Programm erstellt. (Referenz)
import os
import glob
import numpy as np
import skimage.util
import skimage.io
import skimage.transform
out_size = 64 #Endgültige Ausgabegröße (horizontal, vertikal)
img = skimage.io.imread('data/low/hanko.jpg')
print(img.shape)
# (3307, 2340, 3)
#Wenn die Größe auf halber Strecke liegt und hier nicht geteilt werden kann, tritt ein Fehler auf. Ändern Sie daher die Größe
img_ = skimage.transform.resize(img, (64*14, 64*10), anti_aliasing=True)
img_gray = skimage.color.rgb2gray(img_) #Graustufenumwandlung
print(img_gray.shape)
#(3307, 2340)
blocks = skimage.util.view_as_blocks(img_gray, (img_gray.shape[0]//14, img_gray.shape[1]//10)).squeeze()
print(blocks.shape)
# (14, 10, 64, 64)
path_to_out = 'data/low/hanko/' #Ausgabeziel
os.makedirs(path_to_out, exist_ok=True) #Erstellen Sie, wenn nicht
file_list = glob.glob(path_to_out + "hanko*jpg") #Existenzprüfung & Löschen
for f in file_list: os.remove(f)
idx = 0
for i in range(14):
for j in range(10):
skimage.io.imsave(path_to_out + 'hanko{:0=3}.jpg'.format(idx), blocks[i,j])
idx += 1
Das Programm ist im Grunde das gleiche wie das im folgenden Buch vorgestellte. (Detaillierte Inhaltsprinzipien werden hier weggelassen)
"Lernen Sie, während Sie machen! Entwicklung tiefes Lernen von PyTorch" --Kapitel 5 Bilderzeugung durch GAN (DCGAN, Self-Attention GAN)
Buch: https://www.amazon.co.jp/dp/4839970254
Beispielprogramm: https://github.com/YutaroOgawa/pytorch_advanced/tree/master/3_semantic_segmentation
Teilweise geändert wie unten
Schreiben Sie den Ordnerpfad entsprechend um und passen Sie die Anzahl der Datenproben an. ―― Im Fall des ursprünglichen MNIST (handschriftlicher Nummerndatensatz) waren es 200, diesmal jedoch 140, was 60 weniger ist. Ist es in Ordnung?
def make_datapath_list():
train_img_list = list()
img_num = 140 #Anzahl von Beispielen
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)
Quellcode
https://github.com/ishihara-jp/HankoGenerator/tree/main/SAGAN
Ausführungsergebnis »Oh, ich kann ein bisschen sehen! (Die Lernzeit auf der GPU beträgt ca. 10 Minuten.)
Sehen Sie sich zu diesem Zeitpunkt die Self-Attention Map an (je dunkler die Farbe, desto mehr achten Sie beim Generieren des Bildes).
»Irgendwie scheint es, als würde es sich um Hanko entzünden
Versuchen Sie, die Epoche (Anzahl der Lernversuche) von 300 auf 500 zu erhöhen
-Ich kann es sehen! Du kannst es sehen! ... Dann ist es doppelte 1000 Epoche!
Der Kontrast der Self-Attention Map ist deutlich geworden.
――Es scheint, dass der dunkle Teil oben rechts auf dem Stempel funktioniert. Vielleicht sehen Sie die Angewohnheit, von oben rechts zu landen, wenn Sie auf den Stempel drücken (willkürliche Interpretation)
Jetzt ist es ein Problem. A und B hanko. Welches ist das echte?
Kannst du es erkennen?
Sie können es vielleicht an der Farbtiefe erkennen, aber es ist auf den ersten Blick nicht zu unterscheiden.
Vielleicht heißt es: "Wenn Sie mit dieser Art der Bildverarbeitung duplizieren, ist es eine Aufnahme", Der Hanko-Generator hat diesmal nur eine Zufallszahl eingegeben Der Ort, an dem Sie "** unendliches falsches Hanko **" machen können, ist das Miso.
Es ist nicht nur eine Kopie, sondern genau wie meine Push-Variationen kreiert GAN eine Vielzahl von Hanko.
Diesmal ist es dieses Level mit einer kleinen Anzahl von Samples, die im Vordergrund Miso und einem Basisprogramm vorbereitet wurden. Das neueste GAN, Deepfake, ist für echte und falsche Gesichter gedacht, selbst wenn es auf das "Gesicht" abzielt, das angeblich die höchste menschliche Diskriminierung aufweist. Es hat ein Niveau erreicht, in dem es fast unmöglich ist, es zu unterscheiden.
Also kam ich zu dem Schluss, dass "** In der KI-Ära ist Hankos Fähigkeit, ihre Identität zu beweisen, bereits zweifelhaft **".
(Machen Sie kein naives Tsukkomi, das Sie an Tinte oder rotem Fleisch erkennen können!)
Die richtige Antwort lautet übrigens B. A war eine von GAN erzeugte Fälschung.
Selbst wenn das menschliche Auge getäuscht werden kann, kann es möglicherweise in Computerberechnungen erkannt werden. Daher möchte ich die Ähnlichkeit zwischen echten und gefälschten Hanko-Bildern mithilfe des "Feature Point Matching" berechnen, der bei der Beurteilung von Fingerabdrücken verwendet wird. Ich werde einen Artikel veröffentlichen, wenn es nötig ist.
Recommended Posts