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.
Backgammon dice recognition with Keras https://t.co/XO8vibXdBy via @YouTube
— Masahiro Kisono (@mkisono) July 16, 2016
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.
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.
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