[PYTHON] Ich habe mit dem TensorFlow --⑩ Gesichtsklassifizierungstest einen Dir-Grau-Gesichtsklassifikator erstellt

Einführung

»Endlich ist es Zeit, sich zu amüsieren.

Programm

eval.py


#!/usr/local/bin/python
#! -*- coding: utf-8 -*-

import sys
import numpy as np
import cv2
import tensorflow as tf
import os
import random
import main

#OpenCV-Standardpfad für Gesichtsklassifizierer
cascade_path = '/usr/local/Cellar/opencv3/3.2.0/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml'
faceCascade = cv2.CascadeClassifier(cascade_path)

#Identifikationsetikett und der Name, der jeder Etikettennummer entspricht
HUMAN_NAMES = {
  0: u"Kyo",
  1: u"Kaoru",
  2: u"Shinya"
}

#Angegebenes Bild(img_path)Lernergebnisse(ckpt_path)Beurteilung mit
def evaluation(img_path, ckpt_path):
  #Graph Reset(Anscheinend bin ich mir nicht sicher, was ich tue ...)
  tf.reset_default_graph()

  #Datei öffnen
  f = open(img_path, 'r')
  img = cv2.imread(img_path, cv2.IMREAD_COLOR)

  #In ein Schwarzweißbild konvertieren
  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  face = faceCascade.detectMultiScale(gray, 1.1, 3)

  if len(face) > 0:
    for rect in face:
      #Ich wollte dem verarbeiteten Bild einen passenden Namen geben, weil es keine Rolle spielt. Vielleicht das Datum und die Anzahl der Sekunden
      random_str = str(random.random())

      #Schreiben wir den Gesichtsteil mit einer roten Linie
      cv2.rectangle(img, tuple(rect[0:2]), tuple(rect[0:2]+rect[2:4]), (0, 0, 255), thickness=2)

      #Wo soll das Bild gespeichert werden, wobei das Gesicht von einer roten Linie umgeben ist?
      face_detect_img_path = '{Verzeichnispfad}' + random_str + '.jpg'

      #Speichern des Bildes mit dem Gesicht, das von einer roten Linie umgeben ist
      cv2.imwrite(face_detect_img_path, img)
      x = rect[0]
      y = rect[1]
      w = rect[2]
      h = rect[3]

      #Speichern Sie das Bild des erkannten Gesichtsausschnitts
      cv2.imwrite('{Verzeichnispfad}' + random_str + '.jpg', img[y:y+h, x:x+w])

      #Schneiden Sie das Gesichtsbild aus, um es an TensorFlow weiterzuleiten
      target_image_path = '{Verzeichnispfad}' + random_str + '.jpg'
  else:
    #Wird kein Gesicht gefunden, endet die Verarbeitung
    print 'image:No Face'
    return
  f.close()
  f = open(target_image_path, 'r')

  #Array zum Einfügen von Daten
  image = []
  img = cv2.imread(target_image_path)
  img = cv2.resize(img, (28, 28))

  #Nach dem Anordnen der Bildinformationen in einer Reihe wird 0-Auf einen Float-Wert von 1 setzen
  image.append(img.flatten().astype(np.float32)/255.0)
  #In das Numpy-Format konvertieren, damit es von TensorFlow verarbeitet werden kann
  image = np.asarray(image)

  #Gibt die Wahrscheinlichkeit jedes Etiketts für das Eingabebild aus und gibt sie zurück(main.Anruf von py)
  logits = main.inference(image, 1.0)

  # We can just use 'c.eval()' without passing 'sess'
  sess = tf.InteractiveSession()

  # restore(Parameter lesen)Vorbereitung von
  saver = tf.train.Saver()

  #Variable Initialisierung
  sess.run(tf.global_variables_initializer())

  if ckpt_path:
    #Parameter nach dem Lernen lesen
    saver.restore(sess, ckpt_path)

  # sess.run(logits)Gleich wie
  softmax = logits.eval()

  #Urteilsergebnis
  result = softmax[0]

  #Urteilsergebnis%Und abrunden
  rates = [round(n * 100.0, 1) for n in result]
  humans = []

  #Erstellen Sie einen Hash für Etikettennummer, Name und Prozentsatz
  for index, rate in enumerate(rates):
    name = HUMAN_NAMES[index]
    humans.append({
      'label': index,
      'name': name,
      'rate': rate
    })

  #Nach höchstem Prozentsatz sortieren
  rank = sorted(humans, key=lambda x: x['rate'], reverse=True)
  
  #Geben Sie das Ergebnis an die Konsole aus
  print rank

  #Gibt das Beurteilungsergebnis und den Pfad des verarbeiteten Bildes zurück
  return [rank, os.path.basename(img_path), random_str + '.jpg']

#Zum Testen über die Kommandozeile
if __name__ == '__main__':
  evaluation('{Verzeichnispfad}/test.jpg', '{Verzeichnispfad}/model2.ckpt')

Lauf

python eval.py

Ergänzungen und Ausreden

Alle Seitenlinks

Recommended Posts

Ich habe mit dem TensorFlow --⑩ Gesichtsklassifizierungstest einen Dir-Grau-Gesichtsklassifikator erstellt
Ich habe mit TensorFlow - (1) Introduction einen Dir en grey face-Klassifikator erstellt
Ich habe mit der TensorFlow-④-Gesichtsextraktion einen Dir en grey-Gesichtsklassifikator erstellt
Ich habe mit dem Lernprogramm TensorFlow --⑥ einen Dir en grey face-Klassifikator erstellt
Ich habe mit TensorFlow - Dir Playing (final) einen Dir en grey face-Klassifikator erstellt.
Ich habe mit TensorFlow --⑧ Learning Execution einen Dir en Grey Face Classifier erstellt
Ich habe mit TensorFlow --⑫ Web Release einen Dir en Grey Face Classifier erstellt
Ich habe mit dem TensorFlow --⑦ Lernmodell einen Dir en grey Gesichtsklassifikator erstellt
Ich habe mit der TensorFlow --② - Umgebungskonstruktion einen Dir en grey face-Klassifikator erstellt
Ich habe mit TensorFlow --⑪ Web Release Preparation einen Dir en Grey Face Classifier erstellt
Ich habe ein VGG16-Modell mit TensorFlow gemacht (unterwegs)
Erstellen Sie mit TensorFlow eine Gesichtserkennung
Gesichtserkennung mit einem Kaskadenklassifikator
Ich habe versucht, ○ ✕ mit TensorFlow zu spielen
Anfänger: Ich habe einen Launcher mit dem Wörterbuch erstellt
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Ich habe einen Anmelde- / Abmeldevorgang mit Python's Bottle durchgeführt.
[Python] Ich habe einen Klassifikator für Iris erstellt [Maschinelles Lernen]
Ich habe mit Ren’py ein Einführungsspiel für das Schulfest gemacht
〇✕ Ich habe ein Spiel gemacht
Ich habe einen schnellen Feed-Reader mit Feedparser in Python erstellt
Ich habe versucht, ein Deep-Learning-Modell von TensorFlow mit TensorFlow Serving zu hosten
Ich habe versucht, eine Gesichtsdiagnose-KI für professionelle Golferinnen zu erstellen ③
Ich habe mit dem Qore SDK eine App zum Schätzen des Muskeltrainings erstellt
Ich habe Chatbot mit LINE Messaging API und Python erstellt
Ich habe versucht, das Gesicht mit Face ++ zu erkennen
Ich habe einen Python-Text gemacht
Ich habe versucht, Magenta / TensorFlow zu verwenden
Ich habe einen Zwietrachtbot gemacht
Ich habe ein Spiel namens Battle Ship mit Pygame und Tkinter gemacht
Python> Ich habe einen Testcode für meine eigene externe Datei erstellt
Ich habe versucht, einen Transvestitenwettbewerb mit der Detect-API von Face ++ zu bewerten
Ich habe einen Pokerspielserver Chat-Holdem mit Websocket mit Python erstellt
Ich habe Chatbot mit der LINE Messaging API und Python (2) ~ Server ~ erstellt
[Kaggle] Ich habe mit dem Titanic-Tutorial eine Sammlung von Problemen erstellt