Я пытаюсь реализовать «Распознавание цифр» в OpenCV-Python (cv2). Это просто для обучения. Я хотел бы изучить функции KNearest и SVM в OpenCV .
У меня есть 100 образцов (т.е. изображений) каждой цифры. Я хотел бы потренироваться с ними.
Есть образец letter_recog.py
, который поставляется с образцом OpenCV. Но я все равно не смог Я не понимаю, как его использовать. Я не понимаю, что это за образцы, ответы и т. д. Кроме того, он сначала загружает текстовый файл, который я сначала не понял.
Позже немного поищу , Я смог найти letter_recognition.data в примерах cpp. Я использовал его и создал код для cv2.KNearest в модели letter_recog.py (только для тестирования):
import numpy as np
import cv2
fn = 'letter-recognition.data'
a = np.loadtxt(fn, np.float32, delimiter=',', converters={ 0 : lambda ch : ord(ch)-ord('A') })
samples, responses = a[:,1:], a[:,0]
model = cv2.KNearest()
retval = model.train(samples,responses)
retval, results, neigh_resp, dists = model.find_nearest(samples, k = 10)
print results.ravel()
Он дал мне массив размером 20000, я не Не понимаю, что это.
Вопросы:
1) Что такое файл letter_recognition.data? Как создать этот файл из моего собственного набора данных?
2) Что означает results.reval ()
?
3) Как мы можем написать простой инструмент распознавания цифр, используя файл letter_recognition.data (либо KNearest, либо SVM)?