پیشپردازش تصویر

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