ओपनसीवी-पायथन में सरल अंक पहचान ओसीआर

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

मैं ओपनसीवी-पायथन (सीवी2) में "डिजिट रिकग्निशन ओसीआर" को लागू करने की कोशिश कर रहा हूं। यह सिर्फ सीखने के उद्देश्यों के लिए है। मैं OpenCV में KNearest और SVM दोनों विशेषताओं को सीखना चाहूंगा।

मेरे पास प्रत्येक अंक के 100 नमूने (अर्थात चित्र) हैं। मैं उनके साथ प्रशिक्षण लेना चाहता हूं।

एक नमूना letter_recog.py है जो OpenCV नमूने के साथ आता है। लेकिन मैं अभी भी यह नहीं समझ पाया कि इसका उपयोग कैसे किया जाए। मुझे समझ में नहीं आता कि नमूने, प्रतिक्रियाएं आदि क्या हैं। साथ ही, यह पहली बार में एक txt फ़ाइल लोड करता है, जिसे पहले मुझे समझ नहीं आया।

बाद में थोड़ी खोज करने पर, मुझे cpp नमूनों में एक पत्र_रिकग्निशन.डेटा मिला। मैंने इसका इस्तेमाल किया और cv2.KNearest के लिए letter_recog.py (सिर्फ परीक्षण के लिए) के मॉडल में एक कोड बनाया:

np के रूप में numpy आयात करें cv2 fn = "लेटर-रिकग्निशन.डेटा" a = np.loadtxt(fn, np.float32, delimiter=",", कन्वर्टर्स = {0: लैम्ब्डा ch: ord(ch)- ord("A") }) नमूने, प्रतिक्रियाएँ = a[:,1:], a[:,0] मॉडल = cv2.KNearest() retval = model.train(नमूने, प्रतिक्रिया) retval, परिणाम, neigh_resp, dists = model.find_nearest(नमूने, k = 10) प्रिंट results.ravel() 

इसने मुझे आकार 20000 दिया, मुझे समझ नहीं आया कि यह क्या है।

प्रश्न:

1) पत्र_रिकग्निशन.डेटा फ़ाइल क्या है? मेरे अपने डेटा सेट से उस फ़ाइल को कैसे बनाया जाए?

2) results.reval() क्या दर्शाता है?

3) हम किस प्रकार पत्र_रिकग्निशन.डेटा फ़ाइल (या तो निकटतम या एसवीएम) का उपयोग करके एक साधारण अंक पहचान उपकरण लिख सकते हैं?