[PYTHON] Reconnaissance d'image avec Keras + OpenCV

Abstract

J'ai fait un programme prototype pour classer les images en utilisant Keras et OpenCV. Vous pouvez juger du résultat du dé de précision du backgammon. La précision est également raisonnable.

Related work

J'ai fait la même chose l'année dernière. À cette époque, c'était Caffe + OpenCV.

Cela fonctionnait assez bien, mais je me suis vite lassé parce que Caffe était difficile et qu'il était devenu difficile d'écrire en C ++. Cependant, j'ai utilisé les mêmes données d'apprentissage que j'ai créées à ce moment-là. Dans un sens, la tâche de créer des données d'apprentissage est la plus difficile, donc cette fois c'est le travail que j'ai eu sur mon épaule l'année dernière.

Former le modèle

J'ai utilisé le modèle de exemple CIFAR10. Pour charger les données d'entraînement et de validation à partir d'un fichier image, cliquez ici (http://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html) Il est facile d'utiliser ImageDataGenerator.flow_from_directory () comme indiqué dans.

Prédire avec l'image OpenCV

Classifions les images en utilisant le modèle terminé. Si vous souhaitez lire et classer des fichiers JPEG, vous pouvez utiliser le code du blog précédent.

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

Vous pouvez appeler model.predict () avec ce x comme argument.

Cependant, il a fallu quelques efforts pour utiliser les données au format OpenCV. Les données d'image d'OpenCV étaient déjà un tableau de numpy, mais comme l'ordre des couleurs est BGR, il doit être converti en RVB. De plus, j'irai dans le tableau pour correspondre à la forme.

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

J'étais frustré par Caffe, mais Keras l'est tout à fait. Le programme vidéo YouTube au début est d'environ 100 lignes. Je suis vraiment content de me souvenir de Python.

Future work

Je pense essayer de reconnaître le vérificateur du back gammon.

Acknowlegements

Je me suis référé à la page suivante.

Recommended Posts

Reconnaissance d'image avec Keras + OpenCV
Reconnaissance d'image avec keras
Reconnaissance faciale avec OpenCV de Python
Obtenez des fonctionnalités d'image avec OpenCV
Reconnaissance faciale / coupe avec OpenCV
Reconnaissance d'image
Principes de base du traitement d'image en temps réel avec opencv
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
Essayez la reconnaissance faciale avec python + OpenCV
Trouver la similitude d'image avec Python + OpenCV
Essayez de brouiller l'image avec opencv2
Reconnaissance d'objets avec openCV par traincascade
J'ai essayé la reconnaissance faciale avec OpenCV
Reconnaissance faciale des personnages d'anime avec Keras
Traitement d'image avec Python et OpenCV [Tone Curve]
Acquisition d'images depuis une caméra avec Python + OpenCV
[python, openCV] base64 Reconnaissance faciale dans les images
J'ai essayé la reconnaissance d'image simple avec Jupyter
Traitement d'image léger avec Python x OpenCV
Traitement d'image avec Lambda + OpenCV (création d'image grise)
J'ai essayé de "lisser" l'image avec Python + OpenCV
XavierNX accélère le traitement d'image OpenCV avec GPU (CUDA)
J'ai essayé de "différencier" l'image avec Python + OpenCV
J'ai essayé la reconnaissance d'image de CIFAR-10 avec la reconnaissance d'image Keras-
Comment recadrer une image avec Python + OpenCV
J'ai essayé de "binariser" l'image avec Python + OpenCV
Reconnaissance d'image avec le modèle Caffe Chainer Yo!
[Petite histoire] Tester la génération d'images avec Python / OpenCV
Reconnaissance faciale avec Edison
Détecter le retour du chat avec OpenCV
Binarisation avec OpenCV / Python
Tutoriel CIFAR-10 avec Keras
Tutoriel Pepper (7): Reconnaissance d'image
Faire pivoter les sprites avec OpenCV
Traitement d'image avec Python
LSTM multivarié avec Keras
Principes de base de la reconnaissance d'image CNN 1
Augmentation des données avec openCV
TopView facile avec OpenCV
Trébucher avec opencv3 de homebrew
Traitement d'image avec PIL
[OpenCV / Python] J'ai essayé l'analyse d'image de cellules avec OpenCV
Capture d'image / comparaison de la vitesse OpenCV avec et sans GPU
Challenge classification des images par TensorFlow2 + Keras 3 ~ Visualiser les données MNIST ~
Créez diverses vidéos Photoshop avec Python + OpenCV ② Créez une image fixe Photoshop
Jusqu'à ce que vous puissiez faire une reconnaissance d'image simple avec Jupyter
Téléchargement d'image avec l'API Flickr
Traitement d'image avec Python (partie 2)
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
Lire les coordonnées de l'image avec Python-matplotlib
Traitement d'image avec PIL (Pillow)
Reconnaissance faciale en temps réel avec vidéo acquise par getUserMedia [HTML5, openCV]
Installation de Keras (utilisée par Anaconda)
Essayez la détection des bords avec OpenCV
Classification d'images avec un réseau de neurones auto-fabriqué par Keras et PyTorch
Analyse de régression multiple avec Keras
Reconnaissance d'image par apprentissage profond 1 théorie
Notes AutoEncodder avec Keras
Reconnaissance faciale par Amazon Rekognition
Implémentation de word2vec avec Theano + Keras