OpenCV-Python의 간단한 숫자 인식 OCR

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

OpenCV-Python(cv2)에서 "Digit Recognition OCR"을 구현하려고 합니다. 학습 목적일 뿐입니다. OpenCV에서 KNearest와 SVM 기능을 모두 배우고 싶습니다.

각 숫자에 대해 100개의 샘플(예: 이미지)이 있습니다. 그들과 함께 훈련하고 싶습니다.

OpenCV 샘플과 함께 제공되는 샘플 letter_recog.py가 있습니다. 그러나 나는 여전히 그것을 어떻게 사용하는지 알 수 없었습니다. 나는 샘플, 응답 등이 무엇인지 이해하지 못합니다. 또한 처음에는 txt 파일을로드하여 처음에는 이해하지 못했습니다.

나중에 조금 검색하면 cpp 샘플에서 letter_recognition.data를 찾을 수 있습니다. 그것을 사용하여 letter_recog.py 모델에서 cv2.KNearest에 대한 코드를 만들었습니다(테스트용):

numpy를 np로 가져오기 import cv2 fn = "letter-recognition.data" a = np.loadtxt(fn, np.float32, delimiter=",", converters={ 0 : 람다 ch : ord(ch)- ord("A") }) 샘플, 응답 = a[:,1:], a[:,0] 모델 = cv2.KNearest() retval = model.train(샘플, 응답) retval, 결과, neigh_resp, dist = model.find_nearest(samples, k = 10) print results.ravel() 

크기가 20000인 배열을 제공했는데 이게 무엇인지 모르겠습니다.

질문:

1) letter_recognition.data 파일이란? 내 데이터 세트에서 해당 파일을 빌드하는 방법은 무엇입니까?

2) results.reval()은 무엇을 의미합니까?

3) letter_recognition.data 파일(KNearest 또는 SVM)을 사용하여 간단한 숫자 인식 도구를 작성하는 방법은 무엇입니까?