OCR فارسی چرا سختتر است

اگر با OCR انگلیسی کار کرده باشید و بعد سراغ فارسی بیایید، اولین چیزی که میبینید افت محسوس دقت است.
این نه از ضعف ابزار است و نه از بیدقتی شما. خط فارسی از نظر ساختاری برای تشخیص نوری سختتر است، و دانستن دلایلش تعیین میکند کدام راهحل جواب میدهد.
پنج دلیل ساختاری
۱. خط متصل است
در لاتین، هر حرف جداست. الگوریتم میتواند حروف را از هم جدا کند و هرکدام را مستقل تشخیص دهد.
در فارسی حروف به هم میچسبند. مرز بین دو حرف در یک کلمهٔ متصل، مبهم است — و در خطهای فشرده یا اسکن بیکیفیت، عملاً قابل تشخیص نیست.
نتیجه: روشهای مبتنی بر جداسازی حرف، برای فارسی کار نمیکنند. باید کل کلمه یا کل خط را یکجا تشخیص داد.
۲. هر حرف چند شکل دارد
بیشتر حروف فارسی چهار شکل دارند: ابتدایی، میانی، پایانی و منفرد. «ه» در «هوا»، «مهم»، «راه» و «ه» تنها، چهار تصویر متفاوت است.
یعنی مدل باید بهجای ۳۲ کلاس، چیزی نزدیک به صد شکل را تشخیص دهد.
۳. نقطهها تفاوت را میسازند
«ب»، «پ»، «ت»، «ث» بدنهٔ یکسانی دارند و فقط در تعداد و جای نقطه فرق میکنند. همینطور «ج/چ/ح/خ» و «ر/ز/ژ» و «س/ش».
در اسکن با کیفیت پایین، نقطهها اولین چیزی هستند که از بین میروند — و با رفتنشان، کلمه بهکلی عوض میشود. این تنها بزرگترین منبع خطا در OCR فارسی است.
۴. اعراب و علائم اختیاری
فتحه و کسره و تشدید معمولاً نیستند و گاهی هستند. اگر مدل برای متن بدون اعراب آموزش دیده باشد، متن اعرابدار را بد میخواند و برعکس.
۵. تنوع فونت و کمبود داده
فونتهای فارسی تفاوت شکلی بیشتری با هم دارند تا فونتهای لاتین. و دادهٔ آموزشی برچسبخوردهٔ فارسی بهمراتب کمتر از انگلیسی است — که یعنی مدلهای عمومی، فارسی را کمتر دیدهاند.
این آخری ریشهٔ عملی بیشتر مشکلات است.
مسائلی که خاص اسناد ایرانیاند
فراتر از خط:
اعداد سهگانه. فارسی، عربی و لاتین در یک سند. سند مالی که مبلغ را فارسی و شمارهٔ فاکتور را لاتین نوشته، رایج است.
تاریخ شمسی. استخراج تاریخ باید بداند ۱۴۰۵/۰۵/۱۲ تاریخ است، و در چه
تقویمی.
مهر و امضا روی متن. مهر دایرهای که روی نوشته افتاده، هم متن را میپوشاند و هم خودش شبیه متن تشخیص داده میشود.
فرمهای دستساز. جدولهایی که با خودکار خطکشی شدهاند.
کیفیت اسکن. بخش زیادی از اسناد با موبایل عکس گرفته میشوند: کج، با سایه، با تاشدگی. مسیر رفعش در پیشپردازش تصویر.
متن مختلط. نام محصول انگلیسی وسط جملهٔ فارسی. مدلی که برای یک زبان تنظیم شده، اینجا خطا میکند.
چه چیزی واقعاً دقت را بالا میبرد
به ترتیب بازده:
۱. کیفیت ورودی. بیشترین اثر، بدون رقیب. تصویر صاف، با نور یکنواخت و تفکیکپذیری کافی، از هر بهبود مدلی مؤثرتر است. اگر ورودی از کاربر میآید، راهنمای عکسگرفتن و بررسی کیفیت در همان لحظه بگذارید — نه اینکه بعداً با تصویر بد بجنگید.
۲. تشخیص خط، نه حرف. روشهایی که کل خط را دنبالهای میبینند، با خط متصل سازگارند.
۳. مدل زبانی در لایهٔ بعد. اگر خروجی «سلام دنبا» است، دانش زبانی میگوید احتمالاً «سلام دنیا» بوده. این لایه در فارسی ارزش نامتناسبی دارد، چون بیشتر خطاها نقطهایاند و کلمهٔ حاصل معمولاً بیمعنی است.
۴. تنظیم مدل روی دادههای خودتان. اگر همیشه یک نوع سند را پردازش میکنید — فاکتور یک تأمینکننده، فرم یک سازمان — تنظیم روی چند صد نمونه، جهش دقت میدهد.
۵. قواعد اعتبارسنجی پس از تشخیص. کد ملی الگوریتم کنترلی دارد. شمارهٔ شبا ساختار مشخصی دارد. مبلغ باید با جمع اقلام بخواند. هر خطایی که با قاعده قابل تشخیص باشد، نباید به کاربر برسد.
آن مورد آخر ارزانترین و کماستفادهترین است.
انتظار واقعبینانه از دقت
عددی که فروشندگان میگویند معمولاً روی متن چاپی تمیز است. در عمل:
- متن چاپی تمیز، فونت متعارف: دقت بالا، قابل اتکا.
- اسکن معمولی اداری: خوب، با خطاهای پراکنده.
- عکس موبایل: متغیر، بهشدت وابسته به کیفیت.
- متن روی زمینهٔ رنگی یا مهرخورده: ضعیف.
- دستخط: موضوع دیگری است — تشخیص دستخط فارسی.
و یک نکتهٔ مهم دربارهٔ سنجش: دقت در سطح کاراکتر، عدد گمراهکنندهای است. دقت ۹۸٪ در سطح کاراکتر یعنی در یک سند ۵۰۰ کلمهای، حدود ده کلمه غلط است. آنچه اهمیت دارد دقت در سطح فیلد است: آیا مبلغ فاکتور درست خوانده شد یا نه. روشهای سنجش در بالا بردن دقت OCR.
بازبینی انسانی، که حذف نمیشود
در هیچ سامانهٔ جدیای OCR بدون بازبینی به کار نمیرود. سؤال این نیست که بازبینی باشد یا نه؛ این است که چقدر و کجا.
الگویی که جواب میدهد:
- درجهٔ اطمینان هر فیلد را نشان دهید. فیلدی که مدل مطمئن نیست، علامت بخورد.
- آستانه بر اساس ریسک. مبلغ بالای حد مشخص، همیشه بازبینی. توضیحات، نه.
- تصویر اصلی کنار داده نمایش داده شود، تا بازبینی چند ثانیهای باشد نه چند دقیقه.
همان چارچوبی که در خودکارسازی پردازش اسناد گفتیم — و هدفش حذف کار نیست، تبدیل تایپ به تأیید است.
و یک تصمیم معماری
پردازش روی سرور یا روی خود دستگاه؟ برای اسناد حساس و کار میدانی، این تصمیم مهمتر از انتخاب مدل است. مقایسهاش در پردازش روی دستگاه یا سرور.