خداحافظ پارامتر اضافی! RANSAC جدید بدون دردسر امتیازدهی

Fall Back

اگه تا حالا با الگوریتم RANSAC کار کردی، حتماً می‌دونی یکی از دنگ‌وفنگ‌هاش اینه که باید پارامترهایی مثل «مقیاس درونی» (Inlier Scale) رو دستی تعیین کنی. حالا مقیاس درونی چیه؟ یعنی اینکه تو باید تصمیم بگیری کدوم نقاط داده تو مدلت به حساب میان و کدوم نه، و این مرز رو معمولاً طبق یه حد آستانه (Threshold) تعیین می‌کنن. خلاصه باید خودت حدس بزنی چه مقداری خوبه، و اگه داده‌هات کلی نویز یا اشتباه دارن، این حدس زدن می‌تونه خیلی دردسرساز بشه.

تو حالت استاندارد، RANSAC و مدل‌های مثلش میان کاندید مدل‌ها (مثلاً خطایابی یا تطبیق دو تصویر) رو با شمردن تعداد نقاط “درون‌بر” (همون inlierها، یعنی داده‌هایی که به مدل می‌خورن) یا جمع زدن نمره هر نقطه ارزیابی می‌کنن. هر دوی این روش‌ها به یه پارامتر وابسته‌ان که تعیین‌کننده اون مقیاس درونیه. مشکل اینجاست که چون داده‌ها پر از نویز یا خطاهای مختلف‌ان، این پارامتر خیلی سخت دقیق انتخاب میشه.

حالا خبر خوب اینکه تو این مقاله اومدن کلاً این پارامتر رو حذف کردن! یعنی چی؟ یعنی دیگه لازم نیست قبلش مقیاس درونی مدل رو تخمین بزنی و بعد حالا طبق اون امتیاز بدی، بلکه ترتیب کارو برعکس کردن: اول رو فرضیه‌های انتخاب نقاط درونی (همون partition-بندی داده‌ها) تمرکز می‌کنن و بعد با یه ترفند ریاضی، این مقیاس درونی رو به طور تحلیلی و ریاضی از معادله حذف می‌کنن (که بهش marginalization میگن، یعنی تأثیر یه متغیر رو بدون اینکه مقدارشو دقیق بدونی حساب می‌کنی).

برای این ابزار از یه «پریور معکوس گاما» (Inverse-Gamma Prior) استفاده می‌کنن. حالا پریور چیه؟ تو آمار اینو می‌گن “اطلاعات اولیه” یا به انگلیسی prior که تو مدل‌های بیزین (Bayesian) میاد وسط. معکوس گاما هم یه نوع توزیع احتمالاتیه که اجازه می‌ده اثر اون پارامتر مقیاسو حذف کنی و با یه عبارت ریاضی ساده جاشو پر کنی.

نکته جالب اینه که این فرمول پیشنهادی همه جور حالت رو پوشش می‌ده، چه داده کم داشته باشی (مثلاً دیتاست جدید و ناشناخته) و چه کلی داده با سابقه دستت باشه. تو هر دو حالت، فرمول عوض نمی‌شه و لازم نیست پارامتر جدید بهش بدی. این یعنی یه امتیاز «همه‌کاره» که هر وقت خواستی همونطور که هست می‌تونی استفاده‌ش کنی و لازم نیست خودتو درگیر پارامتر تنظیم کردن بکنی.

از نظر سرعت و کارایی حسابی بهینه است: می‌گن با مرتب‌سازی و یه جور «رو جارو کردن» (sort-and-sweep)، امتیازدهی رو با مرتبه زمانی O(N log N) انجام می‌دن. این یعنی خیلی سریع‌تر و قابل مقیاس‌تر میشه روی داده‌های بزرگ اجراش کرد.

توی ارزیابی‌هاشون، این روش جدید رو روی حدود ۷۰ هزار جفت تصویر امتحان کردن که توش انواع مسائل تطابق دو نما (two-view estimation، همون پیدا کردن ارتباط بین دو تصویر از یک صحنه) بوده و هم داده‌های مهندسی‌شده (engineered) و هم یادگرفته شده توسط مدل‌های یادگیری ماشین (learned feature pipelines) رو پوشش داده. نتیجه چی بوده؟ این مدل جدید قشنگ از همه مدل‌های قبلی مثل RANSAC، MSAC، GaU، و MAGSAC بهتر عمل کرده.

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

در آخر، این مدل هر چی داده تست کمتر باشه، خودش پریورها شو سفت‌تر (regularize) می‌کنه یعنی نتیجه رو محافظه‌کارانه‌تر برآورد می‌کنه که تو شرایط داده کم خیلی باحاله.

خلاصه اگه با RANSAC سروکله می‌زنی و همیشه درگیر انتخاب اون حد آستانه درست بودی، این خبر ساختارشکن به کارت میاد: الان یه راه جدید هست که کل ماجرا رو هوشمندتر و راحت‌تر میکنه، بدون اینکه خودتو درگیر پارامتر اضافی کنی!

منبع: +