Tesseract OCR Tips - قم بإنشاء المفردات الخاصة بك لتحسين أداء OCR

هذا هو أول وظيفة لي على التعرف الضوئي على الحروف (OCR) باستخدام Tesseract. Tesserast هي مكتبة مفتوحة المصدر شائعة جدًا لـ OCR تدعمها Google ، والتي تعطي نتائج عالية الدقة وتدعم أكثر من 100 لغة. سوف أخبرك في هذا المنشور بكيفية العمل مع القاموس القياسي لطراز لغة Tesseract وتخصيصه ليناسب احتياجاتك. من يهتم ، من فضلك ، تحت القط.

Tesseract نماذج اللغة والقواميس


يستخدم Tesseract نماذج اللغة والقواميس للتعرف على النص بلغة معينة. يحتوي نموذج اللغة على قيم معلمات نموذج الشبكة العصبية وبيانات التعلم الأخرى. على سبيل المثال ، يتم تخزين نموذج اللغة للغة الإنجليزية في ملف eng.traineddata. يمكن للمستخدم إنشاء قائمة الكلمات الخاصة به لـ Tesseract حتى يتعلم Tesseract التعرف عليها.

يسمح لك Tesseract بتوسيع القاموس القياسي لأي لغة مدعومة بإضافة الكلمات الخاصة بك أو لتدريس نموذج اللغة عن طريق الاستعاضة تمامًا عن كلمات القاموس القياسي بكلماتك الخاصة.

يستخدم Tesseract ملفات .dawg الخاصة لفئات مختلفة من الكلمات في القاموس. على سبيل المثال ، يتم استخدام ملف .word-dawg للكلمات الرئيسية في القاموس ، ويستخدم ملف freq-dawg مع أكثر الكلمات شيوعًا. يمكن الاطلاع على مزيد من المعلومات حول هذه القضية هنا .

Tesseract التخصيص نموذج اللغة


يمكن تطبيق هذا الدليل على إصدارات Tesseract 3.0.5 و 4.0.0. الفرق الوحيد بين Tesseract 4.0.0 والإصدارات 3.0.x السابقة هو أنه في الإصدار 4 يستند Tesseract إلى طراز LSTM وملفات قاموس dawg لها الامتداد lstm - dawg (في الإصدار v3.0.5 لديهم الامتداد -dawg). على سبيل المثال ، يحتوي ملف الكلمات الأكثر شيوعًا الآن على الامتداد lstm-freq-dawg بدلاً من freq-dawg ، وتلقى ملف unicharset الامتداد lstm-unicharset (مسبقاً .unicharset).

أولاً ، قم بتثبيت مكتبة Tesseract OCR. في هذا البرنامج التعليمي ، أستخدم Ubuntu OS (اعتدت Ubuntu 18.04) و Tesseract v4. فقط قم بتثبيت Tesseract باستخدام الحزمة apt:

sudo apt update && sudo apt install tesseract-ocr 

بالإضافة إلى مكتبة Tesseract نفسها ، سيقوم هذا الفريق أيضًا بتثبيت جميع الأدوات اللازمة لتدريس نموذج اللغة (أدوات التدريب).

بادئ ذي بدء ، سنوسع نموذج اللغة بكلماتنا الخاصة. على سبيل المثال ، نريد توسيع نموذج اللغة الإنجليزية. قم بإنشاء ملف نص عادي يسمى wordlistfile وأضف إليه الكلمات التي نريد إضافتها إلى قاموس النموذج ، واحدة لكل سطر.

ثم سوف تذهب إلى مجلد tessdata. نحتاج إلى امتيازات الجذر لإجراء عمليات في مجلد النظام هذا.

 sudo su 

انسخ ملف قائمة الكلمات إلى هذا المجلد. قم بفك ضغط ملف نموذج اللغة eng.traineddata في مجلد المدربين

 combine_tessdata -u eng.traineddata traineddat_backup/eng. 

يستخلص هذا الأمر جميع الملفات اللازمة لتجميع نموذج اللغة في مجلد المدربين.

الآن قم بإنشاء ملف eng.lstm-word-dawg من wordlistfile الخاص بنا باستخدام الأداة المساعدة wordlistfile

 wordlist2dawg wordlistfile eng.lstm-word-dawg traineddat_backup/eng.lstm-unicharset 

وتجميع ملف نموذج لغة جديد eng.traineddata

 combine_tessdata -o eng.traineddata eng.lstm-word-dawg 

سنحصل على ملف نموذج اللغة eng.traineddata من كلمات القاموس الخاصة بنا.

الآن سنقوم بتدريس نموذج لغة المهندس من خلال الاستعاضة تماما عن كلمات القاموس القياسي بكلماتنا الخاصة. نحتاج أولاً إلى عمل نسخة احتياطية من جميع ملفات dawg (.lstm-word-dawg و .lstm-freq-dawg ، إلخ) الموجودة في مجلد trainingdat_backup ، حيث سنستبدلها بملفات جديدة. فقط قم بإنشاء مجلد tmp ونقل جميع ملفات dawg إليه.

بعد ذلك ، انسخ ملف eng.lstm-word-dawg الخاص بنا الذي تم إنشاؤه مسبقًا في مجلد المدربين. دعنا نذهب إلى هذا المجلد وتجميع نموذج لغة جديد

 combine_tessdata eng. </source           tessdata        ( cus - custom).   OCR  Tesseract     : <source lang="bash"> tesseract <image> -l <your_model> <output> 

حيث الإخراج هو اسم الملف النصي لكتابة نتيجة التعرف الضوئي على الحروف أو "stdout" لإخراجها إلى الجهاز.

ملفات التكوين في Tesseract OCR


يستخدم Tesseract ملفات التكوين (ملفات نصية عادية تحتوي على متغيرات وقيم قيمة المفتاح ، مفصولة بمسافات) تتيح للمستخدم التحكم في نتيجة التعرف الضوئي على الحروف. يمكنك إنشاء التكوين الخاص بك (myconf) ووضعه في مجلد configs داخل مجلد tessdata وتحديد اسم التكوين عند استخدام Tesseract:

 tesseract <image> <options> myconf 

حيث options: out هو اسم الملف لإخراج النتيجة أو "stdout" ، - l هو نموذج اللغة ، - psm هي طريقة تجزئة الصفحة .

يوفر Tesseract العديد من خيارات التحكم لتخصيص الإخراج وتحسين دقة التعرف الضوئي على الحروف. لذلك ، هناك متغيرات تتحكم في استخدام القواميس ، على سبيل المثال ، استبعاد الكلمات غير الموجودة في word_dawg / user_words (language_model_penalty_non_freq_dict_word و language_model_penalty_non_dict_word). يمكن العثور على مزيد من التفاصيل حول معلمات التحكم هنا .

لقد استخدمت القيم التالية في التكوين الخاص بي:

 language_model_penalty_non_freq_dict_word 1 language_model_penalty_non_dict_word 1 

هذا سمح لي بالتعرف على بعض الكلمات من قاموسي.

هذا كل شيء الآن. حظا سعيدا مع استخدام Tesseract لمهمة التعرف الضوئي على الحروف ونراكم قريبا!

Source: https://habr.com/ru/post/ar466571/


All Articles