بسمه تعالی
یکی از مهم ترین گام ها پس از طراحی یک سیستم مبتنی بر روشهای یادگیری ماشین، ارزیابی خروجی های آن روی مجموعه داده های دیده نشده (hold out) یا آزمایشی (test set) است. مثلا برای ارزیابی روشهای دسته بندی (classification) معمولا مقدار معیارهایی مانند Accuracy و Precision گزارش می شود.
برای ارزیابی دقت (accuracy) روشهای object detection مهم ترین معیار mean Average Precision (mAP) است. این معیار بطور گسترده درمقاله های پژوهشی و مسابقاتی مانند PASCAL VOC،ImageNet و COCO بکار می رود. اگر گمان می کنید برای محاسبه ی AP می توانید همانند مساله ی دسته بندی چند مرتبه معیار Precision را حساب کنید (مثلا با تغییر مقدار آستانه ی روش) و سپس میانگین بگیرید، بهتر است این مقاله را مطالعه کنید.
مقایسه object detection و image classification
بطور کلی، یک روش image classification بایستی فقط محتوای تصویر را تشخیص دهد و یک برچسب (label) به تصویر انتساب دهد.
اما در Object detection باید به ازای هر نمونه از یک شی مکان (location) و نام دسته (class) گزارش شود. ضمنا محدودیتی روی تعداد اشیا در یک تصویر وجود ندارد و معمولا مکان هر شی با یک bounding box (bbox) مشخص می شود.
در شکل 1 برای تصویر بالا سمت راست، ممکن است خروجی یک Object detector که همه ی اشیا را detect کرده چنین باشد:
Class name |
height |
width |
y |
x |
Score |
CAT |
80 |
50 |
100 |
10 |
0.9 |
CAT |
…. |
…. |
…. |
…. |
0.85 |
DOG |
…. |
…. |
…. |
…. |
0.72 |
DUCK |
…. |
…. |
…. |
…. |
0.65 |
score یا objectness score یا confidence: درون bbox چقدر محتمل است یک شی وجود داشته باشد.
x,y: نقطه ی بالا - سمت چپ هر bbox را مشخص می کند
Width: پهنای bbox را مشخص می کند.
Height: ارتفاع bbox را مشخص می کند.
Class name: برچسب bbox
تعریف Precision و Recall و محاسبه ی آنها در مساله ی Classification
یک مساله ی دسته بندی با دو دسته را در نظر بگیرید.
برای ارزیابی کاررایی یک دسته بند معمولا درایه های ماتریس confusion محاسبه می شود و برمبنای آنها، معیارهایی مانند accuracy، precision و recall گزارش می شود: (مقادیر در شکل ساختگی هستند)
شکل 2: ماتریس confusion و معیارهای ارزیابی مختلف برای ارزیابی خروجی های یک روش دسته بندی. |
تغییر در مقدار آستانه (threshold) روش دسته بندی منجر به خروجی های مختلف می شود. پس مقادیر مختلفی برای معیارهای ارزیابی بدست می آید.
می توان مقدار آستانه را آنقدر تغییر داد تا یکی از معیارها (مثلا accuracy) بیشینه یا کمینه شود. اما معیار accuracy برای وقتی که توزیع مثال ها از هر دسته درداده ها نامتوازن باشد، معیار مطمئنی نیست (مثال: دسته ی اول حاوی 5 مثال و دسته ی دوم حاوی 1000 مثال است).
راه بهتر آن است که با تغییر مقدار آستانه در روش دسته بندی، منحنی تغییرات precision-recall ترسیم می شود:
معیارهای Precision وRecall در مساله ی object detection
برای ارزیابی یک روش object detection بایستی توانایی آن هم در classification و هم در localization ارزیابی شود.
در object detection معمولا توزیع داده های هر دسته نسبت به تعداد کل داده ها نامتوازن است. مثلا تعداد نمونه ها از شی "بستنی" ممکن است بسیار کمتر از تعداد نمونه های شی "انسان" باشد. بنابراین برای ارزیابی توانایی classification یک روش object detection، معیارهای Precision و Recall مورد استفاده قرار می گیرند.
برای محاسبه ی Precision و Recall نیاز است TP، FP و FN را برای object detection تعریف کنیم. اینکار با درنظر گرفتن دقت localization انجام می شود.
معیار Intersection over Union (IoU)
معیار IoU دقت localization را با مقایسه ی میزان رویهم افتادگی bbox مرجع و bbox پیشگویی شده مشخص می کند:
تعریف TP، FP و FN در object detection
یک detection زمانی درست تلقی می شود که مقدار معیار IoU برای آن بیشتر از یک مقدار آستانه ی از پیش تعیین شده باشد.
مثال: یک مقدار آستانه معمول برای معیار IoU مقدار 0.5 است. در این صورت، وقتی که bbox خروجی با bbox مرجع پنجاه درصد یا بیشتر رویهم افتادگی داشته باشد یک detection درست (True Positive) رخ داده است. بر این مبنا سایر مواردی که برای محاسبه ی Precision و Recall نیاز است تعریف می شود:
محاسبه ی Precision وRecall در مساله ی object detection
دیدیم که برای ترسیم نمودار Precision-Recall در مساله ی دسته بندی بایستی مقدار آستانه ی دسته بند را تغییر دهیم و مقادیر Precision و Recall را حساب کنیم. سپس می توانیم منحنی PR را ترسیم کنیم.
برای یک روش object detection می توان دو مقدار آستانه در نظر گرفت: 1- مقدار آستانه برای امتیاز(score) 2- مقدار آستانه برای معیار IoU
اگرچه معیارهندسی IoU و تعیین یک مقدار آستانه برای آن به راحتی قابل استاندارد سازی است، اما تعیین یک مقدار آستانه برای امتیاز هر bbox کار راحتی نیست. مثلا ممکن است روش شماره ی یک با مقدار آستانه ی 0.5 مشابه روش شماره ی دو با مقدار آستانه ی 0.7 عمل کند. به همین دلیل هم هست که در تعیین TP یا FP بودن یک bbox فقط IoU ملاک قرار گرفته است.
برای حذف نقش مقدار آستانه امتیاز bbox ها در ترسیم منحنی PR، طراحان مسابقه ی PASCAL VOC از یک روش دیگر برای محاسبه ی Precision و Recall و ترسیم منحنی PR استفاده کرده اند. این روش پیشتر در زمینه ی بازیابی اسناد متنی (document retrieval) بکار برده می شده است. در ادامه این روش را گام به گام روی یک مثال ساختگی توضیح خواهم داد.
مثال: محاسبه ی Precision و Recall در مساله ی object detection
فرض کنید می خواهیم یک روش object detection را با هدف آشکارسازی تصاویر چهره روی یک مجموعه ی آزمایشی با تنها دو تصویر ارزیابی کنیم:خروجی object detector را برحسب امتیاز هر bbox مرتب کنید:
Precision و Recall را به صورت تجمعی محاسبه کنید:
نمودار Precision-Recall را ترسیم کنید:
شکل 3 و 9 را با هم مقایسه کنید. برخلاف نمودار PR در مساله ی دسته بندی (شکل 3)، این روش ترسیم نمودار PR منجر به یک نمودار zig zag می شود. البته ترسیم نمودار پس از مرتب سازی امتیازها، منجر به این می شود که تاحدی رابطه ی معکوس بین Precision و Recall حفظ شود.
محاسبه ی Average Precision
مقایسه ی نمودار Precision-Recall روش های مختلف و بخصوص در یک مسابقه ی بزرگ مانند PASCAL VOC بسیار دشوار است. بنابراین برگزار کنندگان PASCAL VOC بدنبال راهی بودند که بتوان نمودار PR را با عددی خلاصه کرد. حاصل این تلاش آنها معیار Average Precision است.
برای محاسبه ی Average Precision ابتدا نمودار PR کمی درونیابی و نرم می شود. سپس میانگین مقدار Precision به ازای 11 مقدار recall محاسبه می شود.
مقادیر recall که بایستی برای آنها precision از روی نمودار بدست آید عبارتند از: 0، 0.1، 0.2، 0.3، ...،1. در شکل زیر مشاهده می شود که برای همه ی این مقادیر precision وجود ندارد:
البته امروزه از روش یازده نقطه ای استفاده نمی شود. از سال 2010 به بعد، از همه ی نقاط برای محاسبه ی AP استفاده می شود. یعنی بجای فقط استفاده از 11 مقدار recall و مقادیر precision متناظر با آنها، کل مساحت زیر منحنی درونیابی شده برای محاسبه ی AP در نظر گرفته می شود.
توجه کنید طبق قوانین PASCAL VOC، در صورتی که object detector چندین bbox برای یک شی شناسایی کند، فقط یکی از آنها (bbox با بیشترین IoU) به عنوان TP قلمداد می شود و بقیه FP هستند.
محاسبه ی mAP
در مسابقات PASCAL VOC، با میانگین گیری از AP برای دسته های مختلف mean AP بدست می آید. همچنین معیار تشخیص یک bbox به عنوان TP آن است که IoU>=0.5 باشد. بنابراین نتیجه نهایی به صورت mAP@0.5 گزارش می شود.
در COCO Challenge، رنجی از مقادیر IoU در نظر گرفته می شود. پس میانگین گیری با در نظر گرفتن مقادیر AP برای دسته های و مقادیر AP برای IoU های مختلف محاسبه می شود. بطور مشخص نتیجه نهایی به صورت mAP@[0.5:0.05:0.95] گزارش می شود. این یعنی برای محاسبه ی مقادیر AP، مقدار آستانه ی IoU از 0.5 تا 0.95 با طول گام 0.05 تغییر داده شده است.
منابع
Understanding the mAP Evaluation Metric for Object Detection
mAP (mean Average Precision) for Object Detection
Most popular metrics used to evaluate object detection algorithms
Everingham, Mark, et al. "The pascal visual object classes (voc) challenge." International journal of computer vision 88.2 (2010): 303-338.
[بروزرسانی]
یک دلیل دیگر برای استفاده از Precision و Recall بجای معیار accuracy در object detection آن است که در فرمول محاسبه accuracy نیاز به مقدار TN وجود دارد. در آشکارسازی شی همه ی بخشهای تصویر غیر از اشیا مورد نظر TN تلقی می شوند و این مقدار نسبت به TPخیلی خیلی بزرگتر خواهد شد.
سلام
درود بر شما
بسیار عالی بود.
براتون آرزوی موفقیت می کنم