[PYTHON] Ich untersuchte die Gesichtszüge von Yuki Kashiwagi, um TensorFlow zu verstehen [Teil 1]

Ich untersuchte Yuki Kashiwagis Gesichtszüge, um TensorFlow und CNN (Convolutional Neural Network) zu verstehen. Ich bin kein Fan von Yuki Kashiwagi, aber ich kenne mich nicht mit Idolen und Schauspielerinnen aus. Der Grund, warum ich mich für diese Person entschieden habe, war, dass ich mir das Gesicht einer Person ausgedacht habe, die Eigenschaften zu haben scheint. Es konzentriert sich auf den Lernteil mit TensorFlow Teil 2 und erläutert den Beurteilungsteil [Teil 2](http: // qiita). Weiter zu .com / FukuharaYohei / items / 3f26bfe71fdb5720ce7e).

Fazit

Yuki Kashiwagis ** Feature für TensorFlow war nicht die Nase **. Um ehrlich zu sein, war ich mir nicht sicher, welche Eigenschaften TensorFlow hatte. Um die Merkmale einzugrenzen, habe ich versucht, ein Lernmodell zu erstellen, um die Beurteilungsmethode etwas verständlicher zu machen, ohne die Beurteilungsgenauigkeit zu verbessern. Ich betrachte ein Modell mit einer Genauigkeit von 68% gegenüber den Testdaten (die geringe Genauigkeit ist auch bei dem von mir zusammengestellten Modell und den Trainingsdaten problematisch). Das Bild des Ergebnisses des Pooling-Prozesses der 2. Schicht ist prädiktiv und macht einen solchen Unterschied. 10.Summary01.JPG Da es jedoch das Ergebnis der Ausführung eines Anfängers ist, kann es möglich sein, so etwas wie einen hochpräzisen "Nasenrichter" zu machen, wenn eine ausgezeichnete Person es zusammenbaut.

Gesamtfluss ausgeführt

Wir haben diese Umfrage zu Gesichtsmerkmalen gemäß dem folgenden Ablauf durchgeführt. 10.Summary00.JPG

1. Bildaufnahme

Wir verwenden die Bing Image Search API, um Bilder zu suchen und zu sammeln. Die Gesamtzahl der gesammelten Bilder beträgt 2471, und die Aufteilung ist in der folgenden Abbildung dargestellt. Ich suchte nach Schauspielerinnen und Idolen, die viele Bilder zu haben scheinen. 20.ImageSearch01.JPG Weitere Informationen zum Laufzeitcode und zu den Anweisungen finden Sie im Artikel "Aufrufen der Bing Image Search API v5 von Python zum Sammeln von Bildern".

2. Gesichtserkennung + Ausschnitt + falsch positive Entfernung

"Gesichtserkennung + Ausschnitt" wurde mit OpenCV durchgeführt, und "falsch positive Entfernung" wurde manuell durchgeführt. Zusätzlich zu "1. Bildsuche" wird die folgende Anzahl von Blättern verarbeitet. Die Gesichtserkennungsrate beträgt etwa 60% bis 70%. 30.openCV01.JPG Ich habe die in diesem Teil gewonnenen Erkenntnisse in den Artikel ["Tipps zum effizienten Erkennen einer großen Anzahl von Bildern mit openCV"] geschrieben (http://qiita.com/FukuharaYohei/items/1e15d79c87f1de513eac). Bitte beachten Sie, dass die manuelle "falsch positive Entfernung" lange dauert.

3. Lernen

Ich lerne mit TensorFlow. Es ist fast das gleiche Modell wie das TensorFlow Expert Tutorial Deep MNIST für Experten. Eine Erklärung finden Sie im Artikel ["[Erklärung für Anfänger] TensorFlow-Tutorial Deep MNIST"] Bitte beziehen Sie sich auf (http://qiita.com/FukuharaYohei/items/0aef74a0411273705512). 10.Summary02_model.JPG Für das Bild des Teils "Schlussfolgerung" wird das Bild des Pooling-Prozessergebnisses der zweiten Ebene mit TensorBoard aufgenommen (Artikel ["[Einführung in TensorBoard: Bild] Die TensorFlow-Bildverarbeitung wird visualisiert, um das Verständnis zu vertiefen"](http: //qiita.com/FukuharaYohei/items/fae6896e041235033454)). 10.Summary02_model_02.JPG

Ich wünschte, ich hätte mein Bestes getan, um Lehrerdaten zu erstellen, aber alle Daten sehen so aus. Um ehrlich zu sein, ist es schrecklich, auch wenn Genauigkeit nicht das Ziel ist. Wenn Sie die Hyperparameter usw. rechts neben der Tabelle als "Aus Genauigkeitsgründen" einstellen, ist dies etwas besser.

Artikel Inhalt Bemerkungen Aus Gründen der Genauigkeit
Lehrerdaten Über 1600 Blatt(Etwa 600 von ihnen sind korrekt(Yuki Kashiwagi)Bild) es gibt nur wenig ··· Ungefähr 2500 Blatt
Trainingsdaten Ungefähr 1350 zufällig Zufällig mit EXCEL-Funktion aufgenommen Ungefähr 2250 Blatt
Testdaten Ungefähr 250 zufällig Zufällig mit EXCEL-Funktion aufgenommen Über 250 Blatt
Richtige Antwortrate für Trainingsdaten 74% Niedrig··· 85%
Richtige Antwortrate für Testdaten 70% Auch niedrig ... 84%

Die folgende Abbildung zeigt den Übergang der richtigen Antwortrate und des richtigen Lernfehlers. Informationen zur Ausgabe an TensorBoard finden Sie im Artikel "[Einführung in TensorBoard] Visualisieren der TensorFlow-Verarbeitung zur Vertiefung des Verständnisses". 40.DeepLearning01.JPG

Das Lernen wird im zweiten Teil einschließlich des Codes ausführlich erläutert.

4. Urteil

Zur Bildbeurteilung werden die Gesichtserkennung + Zuschneiden mit OpenCV und die Bildbeurteilung mit TensorFlow in der in der folgenden Abbildung gezeigten Form fortgesetzt. Die im Prozess von "3. Lernen" gespeicherten gelernten Parameter werden bei der Beurteilung des Bildes verwendet. 50.Judge01.JPG

Umgebung

Die Ausführungsumgebung ist wie folgt.

Art Ausführung
OS Windows 10 64bit Pro
Anaconda Anaconda 4.4.0
Python Python3.5
TensorFlow TensorFlow 1.3
OpenCV OpenCV 3.3

Recommended Posts

Ich untersuchte die Gesichtszüge von Yuki Kashiwagi, um TensorFlow zu verstehen [Teil 2]
Ich untersuchte die Gesichtszüge von Yuki Kashiwagi, um TensorFlow zu verstehen [Teil 2]
Ich untersuchte die Gesichtszüge von Yuki Kashiwagi, um TensorFlow zu verstehen [Teil 1]
Ich möchte systemd grob verstehen
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich möchte mit dem Reim Teil1 umgehen
Ich möchte mit dem Reim part3 umgehen
Ich habe versucht, Text mit TensorFlow zu klassifizieren
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
DQN mit TensorFlow implementiert (ich wollte ...)
Ich habe die Größenänderung von TensorFlow nicht verstanden und sie daher visuell zusammengefasst.