मैं Tesseract और OpenCV के बीच कैसे चयन करूं? [बन्द है]


93

मैं हाल ही में भर में आया था Tesseract और OpenCV । ऐसा लगता है कि Tesseract एक पूर्ण विकसित OCR इंजन है और OpenCV का उपयोग OCR एप्लिकेशन / सेवा बनाने के लिए एक रूपरेखा के रूप में किया जा सकता है।

मैंने अपनी कुछ छवियों पर Tesseract का उपयोग करने की कोशिश की और इसकी सटीकता सभ्य लगती है। बाद में, मैंने ओटीसी प्रदर्शन करने के लिए ओपनसीवी का उपयोग करते हुए पायथन का उपयोग करके एक बहुत ही सरल ट्यूटोरियल को देखा और प्रभावित हुआ। कुछ ही मिनटों में, मैंने सिस्टम का प्रशिक्षण पूरा कर लिया और इसकी सटीकता अच्छी थी। लेकिन निश्चित रूप से, इस दृष्टिकोण को लेने का मतलब है कि मुझे एक बड़े प्रशिक्षण सेट का उपयोग करके अपने सिस्टम को बड़े पैमाने पर प्रशिक्षित करने की आवश्यकता है।

मेरे विशिष्ट प्रश्न निम्नलिखित हैं:

  • कस्टम OCR ऐप बनाने के लिए Tesseract और OpenCV का उपयोग करने के बीच कोई कैसे चयन करता है?
  • विभिन्न भाषाओं के लिए टेसेरैक्ट के लिए प्रशिक्षण डेटासेट उपलब्ध हैं। क्या ओपनसीवी में ऐसा ही कुछ है ताकि मुझे ओसीआर प्राप्त करने के लिए जमीन शुरू न करनी पड़े?
  • कौन सा एक व्यावसायिक अनुप्रयोग के लिए बेहतर है?

कोई सुझाव?


8
नीचे दिए गए उत्तर वास्तव में बहुत अच्छे हैं, लेकिन जैसा कि OCR के साथ काम कर चुका है, मैं आपको बता सकता हूं कि Tesseract में मान्यता गुणवत्ता एक व्यावसायिक ऐप उपयोगकर्ता की अपेक्षाओं से कम है। Tesseract महान है, लेकिन OCR मुश्किल है - ऑनलाइन प्रशिक्षण, या मक्खी पर सुधार जैसे चीजें हम्मम हैं ... अभी भी अनुसंधान। टीएस के पीछे के बड़े प्रायोजक Google ने हाल ही में अपना खुद का इंजन - OCROpus बनाने का फैसला किया है। और जब उसने इसे खोलने का वादा किया, तो कोर मान्यता इंजन अभी तक उपलब्ध नहीं है - उन्होंने केवल एक रूपरेखा प्रकाशित की - यह एक तुच्छता के लिए एपीआई है।
सैम

3
@ स्वास्तिक: यह बहुत जानकारीपूर्ण है। मुझे OCROpus की जानकारी नहीं थी। धन्यवाद। क्या आपके पास विकल्प के लिए कोई सुझाव होगा यदि मेरा अंतिम उद्देश्य एक व्यावसायिक कार्ड OCR लिखना है (या कहें, एक जो कि गैस स्टेशन प्राप्तियों को पढ़ता है जैसे मैं जुड़ा हुआ है: upload.wikimedia.org/wikipedia/en/3/34/-… )? मैं पूछ रहा हूँ क्योंकि मैं बस उत्सुक हूँ कि इसे प्राप्त करने के लिए कई मोबाइल एप्लिकेशन क्या उपयोग करते हैं। मुझे सर्वर-साइड पर OCR करने में कोई आपत्ति नहीं है। मुझे इस कूल डेमो को देखने के बाद OpenCV का उपयोग करने के लिए लुभाया गया: youtube.com/watch?v=OkcOfS1lTxs
लेजेंड

6
कई वाणिज्यिक OCR इंजन हैं, बस Google OCR accuracy testsऔर आपको कुछ चार्ट मिलेंगे। और मोबाइल एप्स की बात करें तो उनमें से ज्यादातर टीज़र का इस्तेमाल करते हैं। लेकिन अगर आप उनमें से कुछ को डाउनलोड करने के लिए परेशान हैं तो आप देखेंगे कि परिणाम वादों से थोड़ा अलग हैं। वे आमतौर पर सावधानीपूर्वक नियंत्रित वातावरण में एक वीडियो डेमो बनाते हैं और इसे youtube पर पोस्ट करते हैं, लेकिन जंगली में, यदि आप एक पृष्ठ / नुस्खा / कार्ड / स्कैन करते हैं, तो आपको कुछ मजेदार परिणाम मिलेंगे।
सैम

1
@ स्वास्तिक: धन्यवाद। आज रात मुझे व्यस्त रखने के लिए कुछ। वास्तव में अपने समय की सराहना करते हैं।
लेजेंड

जवाबों:


77
  • Tesseract एक OCR इंजन है। इसका उपयोग, Google द्वारा विशेष रूप से छवियों से पाठ पढ़ने, मूल दस्तावेज़ विभाजन करने और विशिष्ट छवि इनपुट (एक शब्द, लाइन, पैराग्राफ, पृष्ठ, सीमित शब्दकोशों, आदि) पर काम करने के लिए किया जाता है।

  • दूसरी ओर, OpenCV एक कंप्यूटर विज़न लाइब्रेरी है जिसमें ऐसी विशेषताएं शामिल हैं जो आपको कुछ फीचर निष्कर्षण और डेटा वर्गीकरण करने देती हैं। आप एक साधारण अक्षर सेगमेंट और क्लासिफायर बना सकते हैं जो मूल OCR का प्रदर्शन करता है, लेकिन यह एक बहुत अच्छा OCR इंजन नहीं है (मैंने स्क्रैच से पहले पायथन में एक बना दिया है। यह वास्तव में इनपुट के लिए गलत है जो आपके प्रशिक्षण डेटा से भटक जाता है)।

यदि आप OCR कितना कठिन है, इसकी बुनियादी समझ प्राप्त करना चाहते हैं, तो OpenCV आज़माएँ। Tesseract असली OCR के लिए है।


3
यह आपके इनपुट चित्रों पर निर्भर करता है। टेसरेक्ट सबसे अच्छा काम करता है जब पत्र एक कुरकुरा होते हैं, एक क्षैतिज रेखा में, बाहर फैला हुआ, जुड़ा नहीं और पूरी तरह से काला-सफेद। मैंने लगभग एक साल तक DIY बुक स्कैनिंग / संरक्षण समुदाय में टिंकर किया और प्रक्रिया को आसान बनाने के लिए अपने खाली समय में सॉफ्टवेयर पर काम किया। पाठ के साथ किसी भी चित्र को पोस्ट-प्रोसेस करने के लिए वहां का सबसे अच्छा सॉफ्टवेयर (वाणिज्यिक या नहीं) स्कैन टेलर है । इसके पास कुछ सीएलआई विकल्प हैं, लेकिन अगर आप यह देखने के लिए कुछ समय लेते हैं कि यह कैसे काम करता है, तो यह काफी आश्चर्यजनक है।
ब्लेंडर

2
मैंने स्कैन टेलर के सोर्स कोड पर थोड़ा सा काम किया और यह आंतरिक रूप से OpenCV का उपयोग नहीं करता है, लेकिन बनाए गए कई एल्गोरिदम को OpenCV के कार्यों के साथ फिर से आसानी से लिखा जा सकता है। यदि आपकी छवियों को विकृत नहीं किया गया है और अपमानित नहीं किया गया है, तो आपको वास्तव में अपनी छवि को टेसरैक्ट में खिलाने से पहले अनुकूली द्विनेद्रीकरण और कुछ सरल निराकरण को लागू करने की आवश्यकता है।
ब्लेंडर

1
आपके प्रश्न के बारे में, मैं कल ही कुछ यादृच्छिक इनपुट छवियों का परीक्षण कर रहा था। मैंने एक गैस स्टेशन से एक रसीद की कोशिश की: upload.wikimedia.org/wikipedia/en/3/34/…। इसने ($ 20.00 के कुल में) के 0रूप में मान्यता दी 8। मैं स्वीकार करता हूं कि मेरे लिए निर्णय लेने के लिए भी अंक कठिन था, लेकिन मुझे यकीन नहीं था कि इन स्थितियों के लिए टेसरैक्ट को अनुकूलित करने के लिए और क्या किया जा सकता है या शायद एक सीखने के घटक को पेश कर सकता हूं अगर मेरे पास सक्रिय उपयोगकर्ता आधार होगा।
लीजेंड

5
Tesseract को विशिष्ट फ़ॉन्ट सेट पढ़ने के लिए प्रशिक्षित किया जाता है। उन अवरुद्ध पत्र उनमें से एक नहीं हैं। आपको Google को एक पशु बलिदान पेश करना होगा और स्वयं Tesseract का प्रशिक्षण लेने की कोशिश करनी होगी: code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3
Blender

1
इसके अलावा, इससे पहले कि आप उन पत्रों को पढ़ने के लिए एक कस्टम ओसीआर इंजन लिखने पर विचार करें, सटीक होने की उम्मीद न करें। मैंने फॉर्च्यून के व्हील को स्वचालित करने के लिए एक लिखा था और नमूना चित्र (एक ऑनलाइन गेम के स्क्रीनशॉट) जेपीईजी थे। जेपीईजी संपीड़न से कलाकृतियाँ छवि क्लासिफायर को पेंच करने के लिए पर्याप्त थीं जब तक कि मैं हर एक चरित्र के लगभग 10-20 नमूना चित्र प्रदान नहीं करता।
ब्लेंडर

65

मैं आपके द्वारा उल्लिखित उस अंकों की पहचान के ट्यूटोरियल का लेखक हूं , और मैं कहूंगा कि यह टेसरेक्ट के लिए कोई विकल्प नहीं है।

Tesseract एक बहुत अच्छा OCR इंजन है, सबसे अच्छा OpenSource OCR इंजन हो सकता है।

आपके द्वारा उल्लिखित ट्यूटोरियल OCR के सबसे सरल काम को समझने के लिए सिर्फ एक कोशिश है।

इसलिए, यदि आप OCR ऐप की तलाश कर रहे हैं, तो मैं आपको इमेज को प्रीप्रोसेस करने के लिए OpenCV का उपयोग करने और फिर टेसरैक्ट इंजन लगाने की सलाह दूंगा।


1
+1 धन्यवाद। सबसे पहले, आप ट्यूटोरियल के लिए धन्यवाद :) यह वास्तव में दिलचस्प पढ़ा गया था। क्या आप Tesseract के साथ OpenCV का उपयोग करने के बारे में किसी भी संदर्भ / ट्यूटोरियल से अवगत हैं? इंटरफेसिंग के बारे में बात नहीं कर रहे हैं लेकिन टेसरैक्ट की सटीकता में सुधार के लिए किस प्रकार की छवि परिवर्तन या पूर्व-प्रसंस्करण की आवश्यकता है?
लीजेंड

2
केवल इतना कहना चाहूंगा, कि जब टेसेरैक्ट दूसरों की तुलना में एक अच्छा ओसीआर इंजन है, तो यह अभी भी काफी गलत है, मुझे सही पाठ पहचानने में लगभग 40% सफलता दर मिली है। उम्मीद है, यह कुछ वर्षों में बेहतर होगा।
गैंगस्टाग्राम

4
@GangstaGraham आपको बस टे्रसेर को प्रशिक्षित करने की आवश्यकता है और आप कुछ घंटों या दिनों में नहीं वर्षों में बेहतर परिणाम प्राप्त कर सकते हैं। opensource.newmediaist.com/tesseract-training.html
valentt

1
मैं वास्तविक समय पाठ निष्कर्षण के लिए PyTesseract का उपयोग करता हूं। यह लिनक्स पीसी पर ठीक काम करता है लेकिन रास्पबेरी पाई पर्यावरण पर यह बहुत धीमा है ... हल्के संस्करण को स्थापित करने का कोई तरीका? उदाहरण के लिए, अंग्रेजी वर्णमाला के केवल अंकों और पूंजी पत्रों को संसाधित करें?
युरी चेर्निशोव

9

दोनों पूरक हो सकते हैं। यदि आप OpenCV पर पेपर पढ़ते हैं: https://github.com/tesseract-ocr/docs/blob/master/tesseracticdar2007.pdf

यह रेखांकित करता है कि "चूंकि एचपी के पास स्वतंत्र रूप से विकसित पेज लेआउट विश्लेषण तकनीक थी जिसका उपयोग उत्पादों में किया गया था, (और इसलिए ओपन-सोर्स के लिए जारी नहीं किया गया) टेसरैक्ट को कभी भी अपने स्वयं के पेज लेआउट विश्लेषण की आवश्यकता नहीं थी। टेसरैक्ट इसलिए मानता है कि इसका इनपुट एक द्विआधारी छवि है। वैकल्पिक बहुभुज पाठ क्षेत्र परिभाषित किए गए हैं। "

इस प्रकार का कार्य OpenCV द्वारा किया जा सकता है और परिणामी छवि Tesseract को सौंप दी जा सकती है। आप Git repo में इस प्रकार के कोड का एक नमूना पा सकते हैं: https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples नमूने पाठ रूपांतरण के लिए छवि बनाने के लिए Tesseract API का उपयोग करते हैं।


3

ओपनसीवी सीवी के लिए एक पुस्तकालय है , जिसका उपयोग सामान्य रूप से छवियों का विश्लेषण और प्रक्रिया करने के लिए किया जाता है। Tesseract OCR के लिए एक लाइब्रेरी है , जो CV का एक विशेष उपसमूह है जो छवियों से पाठ निकालने के लिए समर्पित है।

से OpenCV.org

..... चेहरे का पता लगाने और पहचानने, वस्तुओं को पहचानने, वीडियो में मानवीय कार्यों को वर्गीकृत करने, कैमरा आंदोलनों को ट्रैक करने, वस्तुओं को ट्रैक करने, वस्तुओं के 3 डी मॉडल निकालने, स्टीरियो कैमरों से 3 डी पॉइंट क्लाउड का उत्पादन करने, एक साथ एक उच्च उत्पादन के लिए छवियों को सिलाई करने के लिए उपयोग किया जाता था। संपूर्ण दृश्य की रिज़ॉल्यूशन छवि, एक छवि डेटाबेस से समान छवियां ढूंढें, फ्लैश का उपयोग करके ली गई छवियों से लाल आँखें हटाएं, आंखों के आंदोलनों का पालन करें, दृश्यों को पहचानें और संवर्धित वास्तविकता के साथ इसे ओवरले करने के लिए मार्कर स्थापित करें, आदि।

से Tesseract Github :

..... सीधे, या प्रोग्रामर के लिए) छवियों से टाइप, हस्तलिखित या मुद्रित पाठ निकालने के लिए एपीआई का उपयोग किया जा सकता है। यह विभिन्न प्रकार की भाषाओं का समर्थन करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.