[PYTHON] Bilderkennung mit Keras + OpenCV

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.

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.

Trainiere das Modell

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.

Vorhersage mit OpenCV-Image

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

Bilderkennung mit Keras + OpenCV
Bilderkennung mit Keras
Gesichtserkennung mit OpenCV von Python
Holen Sie sich Bildfunktionen mit OpenCV
Gesichtserkennung / Schneiden mit OpenCV
Bilderkennung
Grundlagen der Echtzeit-Bildverarbeitung mit opencv
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Finden Sie Bildähnlichkeit mit Python + OpenCV
Versuchen Sie, das Bild mit opencv2 zu verwischen
Objekterkennung mit openCV durch traincascade
Ich habe versucht, das Gesicht mit OpenCV zu erkennen
Gesichtserkennung von Anime-Charakteren mit Keras
Bildverarbeitung mit Python & OpenCV [Tonkurve]
Bildaufnahme von der Kamera mit Python + OpenCV
[python, openCV] base64 Gesichtserkennung in Bildern
Ich habe mit Jupyter eine einfache Bilderkennung versucht
Leichte Bildverarbeitung mit Python x OpenCV
Bildverarbeitung mit Lambda + OpenCV (graue Bilderzeugung)
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
XavierNX beschleunigt die OpenCV-Bildverarbeitung mit GPU (CUDA)
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, Bilder von CIFAR-10 mit Keras-Bilderkennung zu erkennen.
So beschneiden Sie ein Bild mit Python + OpenCV
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Bilderkennung mit Caffe Model Chainer Yo!
[Kleine Geschichte] Testen Sie die Bilderzeugung mit Python / OpenCV
Gesichtserkennung mit Edison
Katze zurück mit OpenCV erkennen
Binarisierung mit OpenCV / Python
CIFAR-10-Tutorial mit Keras
Pfeffer-Tutorial (7): Bilderkennung
Sprites mit OpenCV drehen
Bildverarbeitung mit Python
Multivariates LSTM mit Keras
Grundlagen der CNN 1-Bilderkennung
Datenerweiterung mit openCV
Einfache TopView mit OpenCV
Stolpern Sie mit opencv3 von Homebrew
Bildverarbeitung mit PIL
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
Fordern Sie die Bildklassifizierung mit TensorFlow2 + Keras 3 heraus ~ Visualisieren Sie MNIST-Daten ~
Erstellen verschiedener Photoshop-Videos mit Python + OpenCV ② Erstellen Sie Photoshop-Standbilder
Bis Sie mit Jupyter eine einfache Bilderkennung durchführen können
Bild herunterladen mit Flickr API
Bildverarbeitung mit Python (Teil 2)
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Lesen Sie die Bildkoordinaten mit Python-matplotlib
Bildverarbeitung mit PIL (Pillow)
Gesichtserkennung in Echtzeit mit von getUserMedia [HTML5, openCV] aufgenommenem Video
Keras-Installation (von Anaconda verwendet)
Versuchen Sie die Kantenerkennung mit OpenCV
Bildklassifizierung mit selbst erstelltem neuronalen Netzwerk von Keras und PyTorch
Multiple Regressionsanalyse mit Keras
Deep Learning Bilderkennung 1 Theorie
AutoEncodder-Notizen mit Keras
Gesichtserkennung durch Amazon Rekognition
Word2vec mit Theano + Keras implementiert