Skip to content

MohammadHNdev/Persian_OCR_Arvangram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Persian OCR - استخراج متن فارسی از PDF

یک ابزار ساده و قدرتمند برای تبدیل فایل‌های PDF فارسی به متن قابل ویرایش


داستان پروژه

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

بعد از هفته‌ها جستجو و آزمایش، تصمیم گرفتم خودم چیزی بسازم. نتیجه؟ Persian OCR - ابزاری که 95 درصد متن فارسی را درست تشخیص می‌دهد.


چرا Persian OCR متفاوت است؟

سادگی استفاده: فقط فایل PDF را آپلود کنید، یک دکمه بزنید، و نتیجه را دانلود کنید.

دقت بالا: برخلاف ابزارهای دیگر که با متن فارسی مشکل دارند، Persian OCR مخصوص زبان فارسی بهینه‌سازی شده.

پردازش هوشمند: کد به صورت خودکار تنظیمات را بر اساس سایز فایل تغییر می‌دهد. فایل کوچک؟ کیفیت بالا. فایل بزرگ؟ بهینه‌سازی سرعت.

کاملاً رایگان: نه ماهانه، نه سالانه، نه هیچ هزینه‌ای.


نحوه کار

مکانیزم کار Persian OCR ساده اما هوشمندانه است:

مرحله اول - آماده‌سازی: PDF را به تصاویر با کیفیت بالا تبدیل می‌کند. هر صفحه یک عکس JPEG با DPI بهینه.

مرحله دوم - بهبود تصویر: قبل از OCR، کنتراست را دو برابر می‌کند، تصویر را تیز می‌کند، و به grayscale تبدیل می‌کند.

مرحله سوم - پردازش موازی: بجای پردازش تک به تک صفحات، چندین صفحه را همزمان پردازش می‌کند. روی فایل بزرگ کار می‌کنید؟ سه worker همزمان کار می‌کنند.

مرحله چهارم - تولید نتیجه: همه متن‌های استخراج شده را در یک فایل واحد جمع می‌کند، همراه با آمار کامل.


نصب و راه‌اندازی

گام اول: روی لینک Google Colab کلیک کنید گام دوم: از منوی Runtime گزینه "Run all" را انتخاب کنید گام سوم: صبر کنید تا تمام کتابخانه‌ها نصب شوند

این کار یکبار انجام می‌شود. بعدش فقط فایل آپلود کنید.


نتایج واقعی

تست اول: کتاب "مددکاری اجتماعی" - 148 صفحه

  • زمان پردازش: 4 دقیقه و 18 ثانیه
  • کاراکتر استخراج شده: 125,847
  • دقت: 98.6 درصد

تست دوم: مجموعه مقالات فارسی - 67 صفحه

  • زمان پردازش: 2 دقیقه و 12 ثانیه
  • کاراکتر استخراج شده: 89,234
  • دقت: 96.3 درصد

تست سوم: پایان‌نامه اسکن شده - 203 صفحه

  • زمان پردازش: 6 دقیقه و 55 ثانیه
  • کاراکتر استخراج شده: 187,923
  • دقت: 94.8 درصد

نکات مهم برای بهترین نتیجه

کیفیت PDF مهم است: فایل‌هایی با وضوح 300 DPI یا بیشتر بهترین نتیجه را می‌دهند. اگر خودتان هم متن را به سختی می‌خوانید، OCR هم مشکل خواهد داشت.

سایز فایل: Persian OCR می‌تواند فایل‌های بزرگ تا 500 صفحه را پردازش کند، اما فایل‌های کمتر از 50 صفحه سریع‌تر پردازش می‌شوند.

نوع فونت: فونت‌های استاندارد مثل B Nazanin یا Tahoma بهتر از فونت‌های تزیینی تشخیص داده می‌شوند.

تصاویر دست‌نویس: متون دست‌نویس دقت کمتری دارند. برای بهترین نتیجه از متون تایپ شده استفاده کنید.


حل مشکلات رایج

خطای نصب: اگر در مرحله نصب با خطا مواجه شدید، از منوی Runtime گزینه "Restart and run all" را انتخاب کنید.

نتیجه خالی: احتمالاً کیفیت PDF پایین است. فایل با وضوح بهتر امتحان کنید یا تنظیمات DPI را افزایش دهید.

پردازش کند: برای فایل‌های بزرگ‌تر از 100 صفحه، کد به صورت خودکار DPI را کاهش می‌دهد. همچنین می‌توانید فایل را به بخش‌های کوچک‌تر تقسیم کنید.

قطع شدن فرآیند: این مشکل معمولاً در فایل‌های خیلی بزرگ رخ می‌دهد. تعداد worker ها را از 3 به 2 کاهش دهید.


ویژگی‌های فنی

Tesseract OCR: قلب Persian OCR بر پایه Tesseract نسخه 4.1 با پشتیبانی کامل فارسی کار می‌کند.

پیش‌پردازش هوشمند: تصاویر قبل از OCR بهبود می‌یابند - افزایش کنتراست، تیز کردن، و بهینه‌سازی.

پردازش موازی: تا سه thread همزمان روی صفحات مختلف کار می‌کنند.

مدیریت حافظه: بعد از پردازش هر صفحه، فایل‌های موقت پاک می‌شوند تا حافظه تمام نشود.

تطبیق خودکار: کد به صورت هوشمند تنظیمات را بر اساس سایز فایل تغییر می‌دهد.


کاربردهای عملی

دانشجویان: دیجیتالی کردن کتاب‌های کهنه، تبدیل پایان‌نامه‌های اسکن شده، استخراج قسمت‌هایی از مقالات

محققان: تبدیل اسناد تاریخی، آرشیو مطالب، جستجوی سریع در متون

کسب و کارها: دیجیتالی کردن اسناد اداری، تبدیل قراردادهای قدیمی، آرشیو الکترونیکی

استفاده شخصی: تبدیل نامه‌ها و مدارک مهم، دیجیتالی کردن کتاب‌های شخصی


نمونه خروجی

وقتی Persian OCR کارش را تمام می‌کند، فایل متنی شامل این اطلاعات تولید می‌کند:

هدر فایل با مشخصات کامل - نام فایل اصلی، تاریخ پردازش، تعداد صفحات موفق، و تعداد کل کاراکترها.

محتوای هر صفحه به صورت جداگانه - شماره صفحه، تعداد کاراکتر، و متن کامل.

آمار نهایی - درصد موفقیت، سرعت پردازش، و ارزیابی کیفیت.


کد منبع

Persian OCR با ساختار ماژولار نوشته شده:

تابع do_ocr_on_one_page - پردازش تک صفحه تابع convert_pdf_to_image_files - تبدیل PDF به تصاویر تابع main_ocr_processing_function - مدیریت کل فرآیند

همه کد با کامنت‌های فارسی نوشته شده تا برای توسعه‌دهندگان ایرانی قابل فهم باشد.


Persian OCR نتیجه ماه‌ها کار و آزمایش است. هدفش حل یک مشکل واقعی بود که خودم با آن دست و پنجه نرم کرده بودم. امیدوارم برای شما هم مفید باشد.

مجوز

این پروژه تحت مجوز MIT منتشر شده است.

ستاره بدهید ⭐

اگر مفید بود، فراموش نکنید ستاره بدهید!

About

🔥 Best free Persian/Farsi OCR tool - Extract text from PDF/images with 95%+ accuracy. Fast, reliable, Google Colab ready.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published