[PYTHON] Erstellen Sie mit OpenCV und TensorFlow einen Sato Yohei-Diskriminator

Einführung

Yohei Sato mit mir

Der Zeitpunkt, an dem ich und Yohei Sato sich zum ersten Mal hätten treffen sollen, war die neue Absolventenausbildung der Yahoo Japan Corporation im Jahr 2008. Der Grund für den Ausdruck "sollte sein" ist, dass die Anzahl der neuen Absolventen, die zu diesem Zeitpunkt von der Yahoo Japan Corporation eingestellt wurden, 250 überstieg. Es war grob, dass ich keine Bekanntschaft hatte, es sei denn, ich wurde das gleiche Team in der Ausbildung oder die Abteilung, der ich zugeordnet war, war dieselbe.

Als ich in das Unternehmen eintrat, war ich ein Anfänger in der Programmierung und fragte nur: "Kann ich Zeiger essen?" Es wird gesagt, dass Sato sich freiwillig bereit erklärte, in die Auswahlklasse einzutreten und das Training zu überwinden. Und weil sie verschiedenen Orten zugeordnet waren, kamen sie aneinander vorbei.

Danach von @ doradora09, der die Abteilung betrat, zu der ich als Junior gehörte "Sato sponsert eine Lernsitzung namens TokyoR. Wenn Sie möchten, warum schließen Sie sich uns nicht an?" Gelegentlich trat ich bei Tokyo R auf und ging dort wiederholt aneinander vorbei.

Nach dem Jobwechsel im Jahr 2015 war ich nach weiteren Umstrukturierungen in einem ordentlichen Zustand. Als ich aus einer Laune heraus @ doradora09 kontaktierte, "Ich bin zu Datum Studio gekommen, wo Sato der Vizepräsident ist. Warum kommst du nicht und hörst mir zu?" Ich habe in der Vergangenheit an Datum Studio-Seminaren teilgenommen und dachte, es sei ein interessantes Unternehmen.

Es sollte nur eine Geschichte sein, aber es wurde eine Trinkparty, und ich konnte mich mit dem Vizepräsidenten Sato verbinden. Abgesehen davon wurde er sofort von einem Taschenrechner getroffen und beschloss, bis jetzt in das Unternehmen einzusteigen.

Was ist Yohei Sato?

Yohei Sato ist einer der führenden japanischen Datenwissenschaftler. Gleichzeitig ist er Vizepräsident von Datum Studio Co., Ltd. Wir sollten auf Yohei Sato zielen.

Erstellung des Yohei Sato Detektors

Und wenn Sie ein Datenwissenschaftler sind, müssen Sie die Eigenschaften von Yohei Sato extrahieren und verstehen. Ich denke, wir müssen uns bemühen, diesem Merkmal näher zu kommen.

Also habe ich dieses Mal aus den im Internet und in Datum Studio gesammelten Bildern extrahiert, was Sato Yohei ausmacht. Ich beschloss, einen Sato Yohei-Detektor zu entwickeln.

Hauptthema

Nutzungstechnologie und Verarbeitungsablauf

Verwenden Sie OpenCV für die Bildverarbeitung Wir verwenden Tensorflow, eine Deep-Learning-Bibliothek, um Features zu extrahieren. Für die Sprache habe ich python3 gewählt, das diese umfassend handhaben kann.

Der Verarbeitungsablauf ist wie folgt.

  1. Bildersammlung (menschliche Kraft)
  2. Bildverarbeitung (Graustufen mit OpenCV, Gesichtserkennung, Zuschneiden des Gesichtsteils, Konvertierung in ein 64 * 64-Bild)
  3. Klassifizieren Sie Bilder in Yohei Sato und andere
  4. Erstellen eines Lernenden mit Tensorflow
  5. Bewertung

Umgebung

Leihen Sie sich eine gute Instanz in AWS aus und gehen Sie davon aus, dass das Betriebssystem Amazon Linux ist.

Bei der Entwicklung mit Python3 haben wir eine virtuelle Umgebung mit anaconda3 eingeführt.

conda create -n yohei python=3.5 numpy scipy pandas jupyter scikit-learn matplotlib
source activate yohei
conda install tensorflow
conda install -c menpo opencv3=3.1.0

Ich habe ein Problem festgestellt, dass OpenCV unter Amazon Linux nicht funktioniert. Daher habe ich auf Folgendes verwiesen. http://amazarashi.me/archives/855

Bildersammlung

Wir suchen Bilder von Yohei Sato von vorne im Internet und im Datum Studio.

advent_2016_03.PNG

Bildverarbeitung

Ich habe OpenCV für die Bildverarbeitung verwendet. Alles was Sie tun müssen, ist den folgenden Code auszuführen.

import cv2, matplotlib
import numpy as np
import matplotlib.pyplot as plt
from IPython.display import display, Image
import os

def face_detector(img_path, i):
    #Bild wird geladen
    img = cv2.imread(img_path)
    
    #Graustufen
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    #Gesichtserkennung
    img_face = faceCascade.detectMultiScale(img_gray, 1.1, 3)

    #Wenn das Gesicht erkannt werden kann, fahren Sie mit der folgenden Verarbeitung fort
    if len(img_face) > 0:
        for rect in img_face:
            x = rect[0]
            y = rect[1]
            width = rect[2]
            height = rect[3]
            #Ausgeschnitten
            dst = img_gray[y:y+height, x:x+width]
            # 64*Größe auf 64 geändert
            dst_resized = cv2.resize(dst,(64, 64))
            new_image_path = 'Ausgabe Verzeichnis' + str(i) + '.png'
            cv2.imwrite(new_image_path, dst_resized)
            i += 1
        
    return(i)

i = 0

for img_file in file_list:
    full_path_name = 'Bildspeicherung'+ img_file
    i = face_detector(full_path_name, i)

Auf diese Weise können Sie ein Gesichtsbild erstellen, das grau skaliert und auf 64 * 64 ausgeschnitten wurde.

advent_2016_01.PNG

Klassifizieren Sie Bilder in Yohei Sato und andere

Die Bilder werden manuell in Yohei Sato und andere klassifiziert. Bereiten Sie außerdem eine CSV-Datei mit dem folgenden Etikett zur Beurteilung der Richtigkeit vor. (1 ist Yohei Sato, 0 ist anders als das)

img_0.png 1
img_1.png 0
img_9.png 0
︙

Erstellen eines Lernenden mit Tensorflow

Erstellen Sie einen Lernenden, indem Sie sich auf Folgendes beziehen.

Identifizieren Sie die Produktionsfirma von Anime Yuruyuri mit TensorFlow http://kivantium.hateblo.jp/entry/2015/11/18/233834

Ich werde es später von hier hinzufügen. Bitte warten Sie etwas länger.

Recommended Posts

Erstellen Sie mit OpenCV und TensorFlow einen Sato Yohei-Diskriminator
Erstellen Sie mit TensorFlow eine Gesichtserkennung
Machen Sie einen Mario mit Numpy und OpenCV
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
[Einführung in Tensorflow] Verstehen Sie Tensorflow richtig und versuchen Sie, ein Modell zu erstellen
Machen Sie einen einfachen CO2-Inkubator mit Raspberry PI und CO2-Sensor (MH-Z14A)
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Erstellen eines Markierungsblatts mit Python OpenCV (Tipps zum guten Lesen)
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Erstellen Sie einen Videoplayer mit PySimpleGUI + OpenCV
Ich habe versucht, ○ ✕ mit TensorFlow zu spielen
Lassen Sie uns mit flask-babel eine mehrsprachige Site erstellen
Ich habe versucht, eine einfache Bilderkennungs-API mit Fast API und Tensorflow zu erstellen
Eine süchtig machende Geschichte bei der Verwendung von Tensorflow unter Android
Eine Geschichte über einfaches maschinelles Lernen mit TensorFlow
Schätzung der Kopforientierung mit Python und OpenCV + dlib
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
Machen Sie einen Chat-Bot und üben Sie, beliebt zu sein.
Erstellen Sie eine Webmap mit Python und GDAL
[Chat De Tornado] Erstellen Sie einen Chat mit WebSocket in Tornado
Versuchen Sie es mit Tensorflow. ① Erstellen Sie eine Python-Umgebung und führen Sie Tensorflow ein
Lassen Sie uns mit SWIG ein Modul für Python erstellen
Schritte zum schnellen Erstellen einer umfassenden Lernumgebung auf einem Mac mit TensorFlow und OpenCV