
तैयार-उपयोग OCR जिसमें 80+ समर्थित भाषाएँ और लैटिन, चीनी, अरबी, देवनागरी, सिरिलिक आदि सहित सभी लोकप्रिय लेखन लिपियाँ शामिल हैं।
80+ समर्थित भाषाओं और सभी लोकप्रिय लेखन लिपियों सहित उपयोग के लिए तैयार OCR, जिनमें शामिल हैं: Latin, Chinese, Arabic, Devanagari, Cyrillic, आदि।
Gradio का उपयोग करके Huggingface Spaces 🤗 में एकीकृत। वेब डेमो आज़माएँ:
24 September 2024 - Version 1.7.2



pip का उपयोग करके स्थापित करें
नवीनतम स्थिर रिलीज़ के लिए:
pip install easyocr
नवीनतम विकास रिलीज़ के लिए:
pip install git+https://github.com/JaidedAI/EasyOCR.git
नोट 1: Windows के लिए, कृपया पहले यहाँ दिए गए आधिकारिक निर्देशों https://pytorch.org का पालन करके torch और torchvision स्थापित करें। pytorch वेबसाइट पर, सुनिश्चित करें कि आप अपने पास मौजूद सही CUDA संस्करण का चयन करें। यदि आप केवल CPU मोड में चलाने का इरादा रखते हैं, तो CUDA = None चुनें।
नोट 2: हम एक Dockerfile भी प्रदान करते हैं यहाँ.
import easyocr
reader = easyocr.Reader(['ch_sim','en']) # this needs to run only once to load the model into memory
result = reader.readtext('chinese.jpg')
आउटपुट सूची प्रारूप में होगा, प्रत्येक आइटम क्रमशः एक बाउंडिंग बॉक्स, पहचाना गया पाठ और विश्वास स्तर दर्शाता है।
[([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436),
([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9989598989486694),
([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.8125889301300049),
([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.4971577227115631),
([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd.', 0.8261902332305908),
([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.9848111271858215),
([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.8405593633651733)]
नोट 1: ['ch_sim','en'] उन भाषाओं की सूची है जिन्हें आप पढ़ना चाहते हैं। आप एक साथ कई भाषाएँ पास कर सकते हैं लेकिन सभी भाषाओं का एक साथ उपयोग नहीं किया जा सकता। अंग्रेज़ी हर भाषा के साथ संगत है और जो भाषाएँ सामान्य वर्ण साझा करती हैं वे आमतौर पर एक-दूसरे के साथ संगत होती हैं।
नोट 2: फ़ाइलपथ chinese.jpg के बजाय, आप एक OpenCV इमेज ऑब्जेक्ट (numpy array) या बाइट्स के रूप में एक इमेज फ़ाइल भी पास कर सकते हैं। कच्ची छवि का URL भी स्वीकार्य है।
नोट 3: लाइन reader = easyocr.Reader(['ch_sim','en']) मॉडल को मेमोरी में लोड करने के लिए है। इसमें कुछ समय लगता है लेकिन इसे केवल एक बार चलाने की आवश्यकता होती है।
सरल आउटपुट के लिए आप detail=0 भी सेट कर सकते हैं।
reader.readtext('chinese.jpg', detail = 0)
परिणाम:
['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']
चुनी गई भाषा के लिए मॉडल वेट स्वचालित रूप से डाउनलोड हो जाएंगे या आप उन्हें model hub से मैन्युअल रूप से डाउनलोड करके '~/.EasyOCR/model' फ़ोल्डर में रख सकते हैं
यदि आपके पास GPU नहीं है, या आपके GPU की मेमोरी कम है, तो आप gpu=False जोड़कर मॉडल को केवल-CPU मोड में चला सकते हैं।
reader = easyocr.Reader(['ch_sim','en'], gpu=False)
अधिक जानकारी के लिए, ट्यूटोरियल और API दस्तावेज़ पढ़ें।
$ easyocr -l ch_sim en -f chinese.jpg --detail=1 --gpu=True
पहचान मॉडल के लिए, यहाँ पढ़ें.
डिटेक्शन मॉडल (CRAFT) के लिए, यहाँ पढ़ें.
reader = easyocr.Reader(['en'], detection='DB', recognition = 'Transformer')
विचार यह है कि किसी भी अत्याधुनिक मॉडल को EasyOCR में प्लग करने में सक्षम होना चाहिए। बेहतर डिटेक्शन/पहचान मॉडल बनाने की कोशिश करने वाले कई प्रतिभाशाली लोग हैं, लेकिन हम यहाँ प्रतिभाशाली बनने की कोशिश नहीं कर रहे हैं। हम केवल उनके काम को जनता के लिए ... मुफ्त में तेज़ी से सुलभ बनाना चाहते हैं। (वैसे, हम मानते हैं कि अधिकांश प्रतिभाशाली लोग चाहते हैं कि उनका काम जितनी जल्दी/जितना बड़ा संभव हो सकारात्मक प्रभाव पैदा करे) पाइपलाइन नीचे दिए गए आरेख जैसी कुछ होनी चाहिए। ग्रे स्लॉट परिवर्तनीय हल्के नीले मॉड्यूल के लिए प्लेसहोल्डर हैं।

यह प्रोजेक्ट कई शोध पत्रों और ओपन-सोर्स रिपॉजिटरी के शोध और कोड पर आधारित है।
सभी डीप लर्निंग निष्पादन Pytorch पर आधारित है। ❤️
डिटेक्शन निष्पादन इस आधिकारिक रिपॉजिटरी और उनके पेपर से CRAFT एल्गोरिदम का उपयोग करता है (@clovaai से @YoungminBaek को धन्यवाद)। हम उनके प्रीट्रेंड मॉडल का भी उपयोग करते हैं। प्रशिक्षण स्क्रिप्ट @gmuffiness द्वारा प्रदान की गई है।
पहचान मॉडल एक CRNN (पेपर) है। यह 3 मुख्य घटकों से बना है: फीचर निष्कर्षण (हम वर्तमान में Resnet और VGG का उपयोग कर रहे हैं), अनुक्रम लेबलिंग (LSTM) और डिकोडिंग (CTC)। पहचान निष्पादन के लिए प्रशिक्षण पाइपलाइन deep-text-recognition-benchmark फ्रेमवर्क का एक संशोधित संस्करण है। (@clovaai से @ku21fan को धन्यवाद) यह रिपॉजिटरी एक रत्न है जो अधिक पहचान का हकदार है।
बीम सर्च कोड इस रिपॉजिटरी और उनके ब्लॉग पर आधारित है। (@githubharald को धन्यवाद)
डेटा संश्लेषण TextRecognitionDataGenerator पर आधारित है। (@Belval को धन्यवाद)
और distill.pub से CTC के बारे में एक अच्छा लेख यहाँ.
आइए AI को सभी के लिए उपलब्ध कराकर मिलकर मानवता को आगे बढ़ाएँ!
योगदान करने के 3 तरीके:
कोडर: छोटे बग/सुधारों के लिए कृपया एक PR भेजें। बड़े बदलावों के लिए, पहले एक issue खोलकर हमसे चर्चा करें। 'PR WELCOME' टैग से चिह्नित संभावित बग/सुधार issues की एक सूची है।
उपयोगकर्ता: आगे के विकास को प्रोत्साहित करने के लिए हमें बताएं कि EasyOCR आपको/आपके संगठन को कैसे लाभ पहुँचाता है। भविष्य के मॉडलों को बेहतर बनाने में मदद करने के लिए Issue अनुभाग में विफलता के मामले भी पोस्ट करें।
टेक लीडर/गुरु: यदि आपको यह लाइब्रेरी उपयोगी लगी, तो कृपया इस बारे में बात फैलाएँ! (EasyOCR के बारे में Yann Lecun की पोस्ट देखें)
नई भाषा का अनुरोध करने के लिए, हमें आपको निम्नलिखित 2 फ़ाइलों के साथ एक PR भेजने की आवश्यकता है:
यदि आपकी भाषा में अद्वितीय तत्व हैं (जैसे 1. अरबी: एक-दूसरे से जुड़ने पर वर्णों का रूप बदल जाता है + दाएँ से बाएँ लिखा जाता है 2. थाई: कुछ वर्णों को पंक्ति के ऊपर और कुछ को नीचे होना चाहिए), तो कृपया हमें अपनी पूरी क्षमता से शिक्षित करें और/या उपयोगी लिंक दें। वास्तव में काम करने वाली प्रणाली प्राप्त करने के लिए विवरण का ध्यान रखना महत्वपूर्ण है।
अंत में, कृपया समझें कि हमारी प्राथमिकता लोकप्रिय भाषाओं या ऐसी भाषाओं के समूहों को जानी होगी जो अपने अधिकांश वर्ण एक-दूसरे के साथ साझा करती हैं (यदि आपकी भाषा के साथ ऐसा है तो हमें भी बताएं)। नया मॉडल विकसित करने में हमें कम से कम एक सप्ताह लगता है, इसलिए नए मॉडल के जारी होने के लिए आपको कुछ समय इंतजार करना पड़ सकता है।
विकास में भाषाओं की सूची देखें
सीमित संसाधनों के कारण, 6 महीने से पुराना issue स्वचालित रूप से बंद कर दिया जाएगा। यदि यह महत्वपूर्ण है, तो कृपया फिर से एक issue खोलें।
एंटरप्राइज़ समर्थन के लिए, Jaided AI कार्यान्वयन, प्रशिक्षण/फाइन-ट्यूनिंग और परिनियोजन से लेकर कस्टम OCR/AI सिस्टम के लिए पूर्ण सेवा प्रदान करता है। हमसे संपर्क करने के लिए यहाँ क्लिक करें।