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