OCR de reconnaissance de chiffres simples dans OpenCV-Python

| | | | | | | | | | | | | | | |

J'essaie d'implémenter un "OCR de reconnaissance de chiffres" dans OpenCV-Python (cv2). C'est juste à des fins d'apprentissage. J'aimerais apprendre les fonctionnalités KNearest et SVM dans OpenCV.

J'ai 100 échantillons (c'est-à-dire des images) de chaque chiffre. J'aimerais m'entraîner avec eux.

Il existe un exemple de letter_recog.py fourni avec l'exemple OpenCV. Mais je n'arrivais toujours pas à comprendre comment l'utiliser. Je ne comprends pas quels sont les exemples, les réponses, etc. De plus, il charge un fichier txt au début, ce que je n'ai pas compris au départ.

p>Plus tard, en cherchant un peu, j'ai pu trouver un fichier letter_recognition.data dans les échantillons cpp. Je l'ai utilisé et j'ai créé un code pour cv2.KNearest dans le modèle de letter_recog.py (juste pour tester) :

import numpy as np import cv2 fn = "letter-recognition.data" a = np.loadtxt(fn, np.float32, delimiter=",", convertisseurs={ 0 : lambda ch : ord(ch)- ord("A") }) échantillons, réponses = a[:,1:], a[:,0] modèle = cv2.KNearest() retval = model.train(échantillons,réponses) retval, résultats, neigh_resp, dists = model.find_nearest(samples, k = 10) print results.ravel() 

Cela m'a donné un tableau de taille 20000, je ne comprends pas ce que c'est.

Questions :

1) Qu'est-ce que le fichier letter_recognition.data ? Comment créer ce fichier à partir de mon propre ensemble de données ?

2) Que signifie results.reval() ?

3) Comment pouvons-nous écrire un simple outil de reconnaissance de chiffres en utilisant le fichier letter_recognition.data (soit KNearest ou SVM) ?