چگونه با استفاده از موتور Tesseract OCR و پایتون، متن را از تصاویر استخراج کنیم؟

شکل ۱:استخراج متن از عکس
شکل ۱:استخراج متن از عکس


منتشر‌شده در: towardsdatascience به تاریخ ۲ مارس ۲۰۲۱
لینک منبع: How To Extract Text From Images Using Tesseract OCR Engine and Python

ابتدا باید بدانید، Tesseract چیست؟ این یک موتور OCR منبع باز (تشخیص مشخصات نوری) است که می‌تواند بیش از ۱۰۰زبان را با پشتیبانی یونی‌کد تشخیص دهد. هم چنین، می‌تواند برای تشخیص زبان‌های دیگر آموزش داده شود. یک موتور OCR می‌تواند با دیجیتالی کردن اسناد به جای تایپ کردن دستی محتوای سند در زمان صرفه‌جویی کند. از این پس، نحوه استخراج متن از تصاویر را با استفاده از موتور Tesseract OCR و پایتون یاد خواهید گرفت.

مطالعه مقاله چرا ماژول‌های WebAssembly می‌تواند واحد واقعی جدید محاسبه باشد؟ توصیه می‌شود.

تنظیمات

برای آماده‌سازی، من از موتورTesseract OCR، پایتون، و OS استفاده خواهم کرد. اول، ما باید موتور Tesseract OCR را نصب کنیم. فرمان زیر را در ترمینال خود تایپ کنید.

brew install tesseract

شما می‌توانید دستور زیر را برای دیدن این که کدام نسخه از Tesseract را بر روی دستگاه خود اجرا می‌کنید، به کار ببرید.

tesseract --version

از دستور جاری برای لیست کردن زبان‌های موجود برای موتور Tesseract OCR استفاده کنید.

tesseract --list-langs

در این مورد، من سه زبان دارم.

eng   #English

osd   #Special data file for orientation and script detection

snum  #Serial number identification

اگر می‌خواهید زبان‌های اضافی را دانلود کنید، می‌توانید آن‌ها را از اینجا دریافت کنید. من می‌خواهم داده‌های قطار را برای زبان بنگالی دانلود کنم. زمانی که این فایل را در دستگاه خود دانلود کردید، باید آن فایل را در پوشه زیر جا به جا کنید.

/usr/local/Cellar/tesseract/4.1.1/share/tessdata/

حالا اگر پایتون را ندارید، از اینجا آن را نصب کنید. پس از آن، Python-tesseract را نصب خواهیم کرد که پوششی برای موتور Tesseract OCR است. همچنین، ما نیاز به نصب کتابخانه تصویربرداری پایلو داریم. فرمان‌های زیر را در ترمینال خود تایپ کنید.

pip install pytesseract

pip install Pillow

برای هدف نمایش، من یک مخزن Github ایجاد کردم، که می‌توانید از اینجا آن را به دست آورید. در داخل مخزن، من دو تصویر آزمایشی برای زبان انگلیسی و بنگالی قرار دادم. علاوه بر این، من یک اسکریپت پایتون به نام main.py دارم. اجازه دهید، لایه‌های جداگانه فایل main.py را از بین ببریم.

main.py

در اینجا من یک روشprocess_image را ایجاد کرده‌ام، که نام تصویر و کد زبانی را به عنوان پارامترها در نظر می‌گیرد. در داخل این روش، من از یک روش pytesseraction image_to_string استفاده می‌کنم، که خروجی تغییر نیافته را به عنوان یک رشته از Tesseract OCR برمی‌گرداند. علاوه بر این، من دو روش کمکی اضافه کرده‌ام. روشprint_data خروجی رشته را چاپ می‌کند و روش output_file خروجی رشته را به یک فایل متنی می‌نویسد. در زیر، من خروجی‌های رشته را دارم.

خروجی برای فایل test _ eng.png.

_ The’quick brown fox’ .

-jumps over the lazy:

dog.

خروجی برای فایل تست _ ben.png.

পথের দেবতা প্রসন্ন হাসিয়া বলেন-মূর্খ বালক, পথ তো

আমার শেষ হয়নি তোমাদের গ্রামে, বাশের বনে, ঠ্যাঙাড়ে

'বীরু রায়ের বটতলায় কি ধলচিতের খেয়াঘাটের সীমানায়.

তোমাদের সোনাডাঙা মাঠ ছাড়িয়ে ইচ্ছামতী পার হয়ে

পদ্মফুলে ভরা মধূখালি বিলের পাশ কাটিয়া বেত্রবতীর

খেয়ায় পাড়ি দিয়ে, পথ আমার চলে গেল সামনে, সামনে,

'শুধুই সামনে...দেশ ছেড়ে দেশান্তরের দিকে, সূর্যোদয় ছেড়ে

সূর্যাস্তের দিকে, জানার গন্ডী এড়িয়ে অপরিচয়ের উদ্দেশে.

نتیجه‌گیری

دیجیتالی کردن اسناد، قابلیت خواندن ماشین را ممکن می‌سازد. برای مثال، ما می‌توانیم اسناد اسکن شده مهم را برای انجام جستجو، ترجمه و پردازش کلمه تبدیل کنیم. همچنین می‌توانیم از آن برای دریافت خودکار و تشخیص پلاک خودرو استفاده کنیم. پتانسیل OCR بی‌پایان است.

این متن با استفاده از ربات ترجمه مقالات علوم داده ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.
مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.