पर ओसीआर प्रदर्शन में सुधार करना मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जिसमें पीडीएफ प्रारूप में संग्रहीत टेक्स्ट वैज्ञानिक पेपर निकालने शामिल हैं। अधिकांश कागजात के लिए, यह पीडीएफएमनर का उपयोग करके काफी आसानी से पूरा किया जाता है, लेकिन कुछ पुराने कागजात अपने टेक्स्ट को बड़ी छवियों के रूप में संग्रहीत करते हैं। संक्षेप में, एक पेपर स्कैन किया जाता है और वह छवि फ़ाइल (आमतौर पर पीएनजी या जेपीईजी) में संपूर्ण पृष्ठ शामिल होता है।मल्टी-पैराग्राफ स्कैन
मैंने टेसरेक्ट इंजन का उपयोग python-tesseract बाइंडिंग के माध्यम से करने का प्रयास किया, लेकिन परिणाम काफी निराशाजनक हैं।
मेरे पास इस लाइब्रेरी के साथ प्रश्नों में डाइविंग करने से पहले, मैं यह उल्लेख करना चाहता हूं कि मैं ओसीआर पुस्तकालयों के लिए सुझावों के लिए खुला हूं। कुछ देशी पायथन समाधान प्रतीत होते हैं।
Here ऐसी एक छवि (जेपीईजी) है जिस पर मैं टेक्स्ट निकालने की कोशिश कर रहा हूं। मैं उपरोक्त से जुड़े पायथन-टेसेरैक्ट Google कोड पेज पर उदाहरण स्निपेट में प्रदान किया गया सटीक कोड। मुझे जिक्र करना चाहिए कि दस्तावेज थोड़ा विचित्र है, इसलिए यह काफी संभव है कि मेरे कोड में कई विकल्पों में से एक गलत कॉन्फ़िगर किया गया है। कोई सलाह (या गहराई से ट्यूटोरियल के लिंक) की बहुत सराहना की जाएगी।
Here ओसीआर में मेरे प्रयास से आउटपुट है।
- वहाँ कोड मैं उपयोग कर रहा हूँ में कुछ भी करने से इनकी है:
मेरे सवालों का इस प्रकार हैं? क्या ऐसा करने का कोई बेहतर तरीका है? शायद एक अलग पुस्तकालय?
- पहचान का सुधार करने के लिए मैं किस प्रकार का प्रीप्रोसेसिंग कर सकता हूं? छवियां सभी बी & डब्ल्यू हैं, लेकिन क्या मुझे शायद एक थ्रेसहोल्ड सेट करना चाहिए और इसके ऊपर कुछ भी एक सिंगल-वैल्यू ब्लैक कलर और उसके नीचे सब कुछ शून्य-मूल्य वाले सफेद रंग में सेट करना चाहिए? और कुछ?
- एक और विशिष्ट प्रश्न: एकल शब्दों पर ओसीआर प्रदर्शन करके प्रदर्शन में सुधार किया जा सकता है? यदि हां, तो क्या कोई छवि फ़ाइल में एक शब्द को सीमित करने का एक तरीका सुझा सकता है (उदाहरण: ऊपर से जुड़ा हुआ) और उन्हें अलग-अलग छवियों में निकालने का तरीका जिसे स्वतंत्र रूप से इलाज किया जा सकता है?
- पीडीएफ पेज छवि में एम्बेडेड ग्राफ और अन्य छवियों की उपस्थिति ओसीआर में हस्तक्षेप कर सकती है? क्या मुझे इन्हें हटा देना चाहिए? यदि हां, तो क्या कोई भी स्वचालित रूप से उन्हें हटाने के लिए एक विधि सुझा सकता है?
संपादित करें: सादगी के लिए, यहाँ कोड मैं प्रयोग किया जाता है।
import tesseract
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetPageSegMode(tesseract.PSM_AUTO)
mImgFile = "eurotext.jpg"
mBuffer=open(mImgFile,"rb").read()
result = tesseract.ProcessPagesBuffer(mBuffer,len(mBuffer),api)
print "result(ProcessPagesBuffer)=",result
और यहां परिवर्तन कोड है (जिसका परिणाम इस प्रश्न में नहीं दिखाया गया है, हालांकि प्रदर्शन काफी समान प्रतीत होता है)।
import cv2.cv as cv
import tesseract
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetPageSegMode(tesseract.PSM_AUTO)
image=cv.LoadImage("eurotext.jpg", cv.CV_LOAD_IMAGE_GRAYSCALE)
tesseract.SetCvImage(image,api)
text=api.GetUTF8Text()
conf=api.MeanTextConf()
क्या कोई इन दो स्निपेट के बीच अंतर को समझा सकता है?
Ozvald के लिए अपने प्रश्न को अग्रेषित करने का स्वागत करते हैं सकता है, बहुत बढ़िया सलाह, धन्यवाद! मैं वास्तव में आपका कोड जांचने में रूचि रखूंगा। क्या आपके पास जिथब रिपोजिटरी या कुछ है? छवि फ़ाइल प्रकार के संबंध में, क्या यह जेपीईजी छवियों को पीएनजी में परिवर्तित करने के लिए स्वीकार्य है, या क्या नुकसान पहले से ही किया गया है? मैं पूछता हूं क्योंकि मैंने जिन पीडीएफ का सामना किया है, वे छवियों को जेपीईजी के रूप में आंतरिक रूप से स्टोर करते हैं, इसलिए यदि समस्या हानिकारक संपीड़न में से एक है, तो मैं अपने पास जो कुछ भी है उसके साथ अटक गया हूं। – blz
कोई जिथब रेपो, मुझे एक मेल भेजें (ianozsvald com पर ian) और मैं इसे खोद दूंगा (मैं वास्तव में इसे गिटूब करने के लिए बाहर ...)। –
यदि यह पहले से ही जेपीईजी है तो मैं इसे * अतिरिक्त * कलाकृतियों को जोड़ने से बचने के लिए इसे टीआईएफएफ के रूप में सहेज दूंगा। अतिरिक्त शोर जोड़ना वह है जिसे आप टालना चाहते हैं। –