Abstract
Ich habe ein Prototyp-Programm erstellt, um Bilder mit Keras und OpenCV zu klassifizieren. Sie können die Rolle des Präzisionswürfels des hinteren Schinkens beurteilen. Die Genauigkeit ist auch angemessen.
Backgammon dice recognition with Keras https://t.co/XO8vibXdBy via @YouTube
— Masahiro Kisono (@mkisono) July 16, 2016
Related work
Ich habe das gleiche letztes Jahr gemacht. Zu dieser Zeit war es Caffe + OpenCV.
Es funktionierte einigermaßen gut, aber ich wurde es bald leid, weil Caffe schwierig war und es schwierig wurde, in C ++ zu schreiben. Ich habe jedoch dieselben Lerndaten verwendet, die ich zu diesem Zeitpunkt erstellt habe. In gewisser Hinsicht ist die Aufgabe, Lerndaten zu erstellen, am schwierigsten. Diesmal war es also der Job, den ich letztes Jahr auf die Schulter bekommen habe.
Ich habe das Modell von CIFAR10 Sample verwendet. Klicken Sie hier, um Trainings- und Validierungsdaten aus einer Bilddatei zu laden (http://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html). Es ist einfach, ImageDataGenerator.flow_from_directory () wie in gezeigt zu verwenden.
Lassen Sie uns die Bilder anhand des fertigen Modells klassifizieren. Wenn Sie JPEG-Dateien lesen und klassifizieren möchten, können Sie den Code aus dem vorherigen Blog verwenden.
img = load_img('data/train/cats/cat.0.jpg') # this is a PIL image
x = img_to_array(img) # this is a Numpy array with shape (3, 150, 150)
x = x.reshape((1,) + x.shape) # this is a Numpy array with shape (1, 3, 150, 150)
x /= 255
Sie können model.predict () mit diesem x als Argument aufrufen.
Die Verwendung von Daten im OpenCV-Format war jedoch mit einigen Anstrengungen verbunden. Die Bilddaten von OpenCV waren bereits ein Array von Numpy, aber da die Reihenfolge der Farben BGR ist, müssen sie in RGB konvertiert werden. Außerdem gehe ich zum Array, um die Form anzupassen.
x = cv2.cvtColor(img, cv2.COLOR_BGR2RGB).astype(np.float32)
x = x.transpose((2, 0, 1))
x = x.reshape((1,) + x.shape)
x /= 255
Conclusions
Ich war frustriert von Caffe, aber Keras ist ganz so. Das YouTube-Videoprogramm am Anfang umfasst ungefähr 100 Zeilen. Ich bin wirklich froh, dass ich mich an Python erinnert habe.
Future work
Ich denke darüber nach, den Checker von Back Gammon zu erkennen.
Acknowlegements
Ich habe auf die folgende Seite verwiesen.
Recommended Posts