OpenCV-Python’da Basit Rakam Tanıma OCR

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

OpenCV-Python'da (cv2) bir "Rakam Tanıma OCR'si" uygulamaya çalışıyorum. Sadece öğrenme amaçlıdır. OpenCV'de hem KNearest hem de SVM özelliklerini öğrenmek istiyorum.

Her rakamdan 100 örnek (yani resim) var. Onlarla antrenman yapmak istiyorum.

OpenCV örneği ile birlikte gelen bir letter_recog.py örneği var. Ama yine de nasıl kullanılacağını çözemedim. Örnekler, yanıtlar vs. nedir anlamadım. Ayrıca ilk başta anlamadığım bir txt dosyası yüklüyor.

Daha sonra biraz araştırdıktan sonra cpp örneklerinde bir letter_recognition.data bulabildim. Onu kullandım ve letter_recog.py modelinde cv2.KNearest için bir kod yaptım (sadece test için):

numpy as np import cv2 fn = "letter-recognition.data" a = np.loadtxt(fn, np.float32, delimiter=",", converters={ 0 : lambda ch : ord(ch)- ord("A") }) örnekler, yanıtlar = a[:,1:], a[:,0] model = cv2.KNearest() retval = model.train(örnekler,yanıtlar) geri dönüş, sonuçlar, neigh_resp, dists = model.find_nearest(samples, k = 10) print result.ravel() 

Bana 20000 boyutunda bir dizi verdi, ne olduğunu anlamıyorum.

Sorular:

1) letter_recognition.data dosyası nedir? Bu dosyayı kendi veri kümemden nasıl oluşturabilirim?

2) results.reval() neyi ifade eder?

3) letter_recognition.data dosyasını (KNearest veya SVM) kullanarak basit bir rakam tanıma aracını nasıl yazabiliriz?