بسمه تعالی

یکی از مهم ترین گام ها پس از طراحی یک سیستم مبتنی بر روشهای یادگیری ماشین، ارزیابی خروجی های آن روی مجموعه داده های دیده نشده (hold out) یا آزمایشی (test set) است. مثلا برای ارزیابی روشهای دسته بندی (classification) معمولا مقدار معیارهایی مانند Accuracy و Precision گزارش می شود.

برای ارزیابی دقت (accuracy) روشهای object detection مهم ترین معیار mean Average Precision (mAP) است. این معیار بطور گسترده درمقاله های پژوهشی و مسابقاتی مانند PASCAL VOC،ImageNet و COCO بکار می رود.  اگر گمان می کنید برای محاسبه ی AP می توانید همانند مساله ی دسته بندی چند مرتبه معیار Precision را حساب کنید (مثلا با تغییر مقدار آستانه ی روش) و سپس میانگین بگیرید، بهتر است این مقاله را مطالعه کنید.

مقایسه object detection و image classification

 

شکل 1: مقایسه ی مساله ی image classification و مساله ی object detection

بطور کلی، یک روش 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 ترسیم می شود:

 

شکل 3: منحنی 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 پیشگویی شده مشخص می کند:

 

شکل 4: معیار IoU

تعریف TP، FP و FN در object detection

یک detection زمانی درست تلقی می شود که مقدار معیار IoU برای آن بیشتر از یک مقدار آستانه ی از پیش تعیین شده باشد.

مثال: یک مقدار آستانه معمول برای معیار IoU مقدار 0.5 است. در این صورت، وقتی که bbox خروجی با bbox مرجع پنجاه درصد یا بیشتر رویهم افتادگی داشته باشد یک detection درست (True Positive) رخ داده است. بر این مبنا سایر مواردی که برای محاسبه ی Precision و Recall نیاز است تعریف می شود:

 

شکل 5: تعریف درایه های ماتریس confusion با در نظر گرفتن معیار IoU در مساله ی object detection

محاسبه ی 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 را با هدف آشکارسازی تصاویر چهره روی یک مجموعه ی آزمایشی با تنها دو تصویر ارزیابی کنیم:

 

شکل 6: مثال ساختگی. خروجی object detector روی دو تصویر آزمایشی به همراه bbox های مرجع


خروجی object detector را برحسب امتیاز هر bbox مرتب کنید:

 

شکل 7: مرتب سازی امتیاز bbox های detect شده

Precision و Recall را به صورت تجمعی محاسبه کنید:

 

شکل 8: محاسبه ی Precision و Recall برای خروجی های یک روش object detection


نمودار Precision-Recall را ترسیم کنید:

 

شکل 9: نمودار Precision-Recall برای مثال object detection

شکل 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 وجود ندارد:

 

شکل 10: نمودار Precision-Recall


بنابراین مقادیر precision طبق رابطه ی زیر درونیابی می شود:

حاصل این درونیابی شکل زیر است:

 

شکل 11: نمودار Precision-Recall درونیابی شده

حالا می توانیم مقدار Precision را در 11 نقطه ی مذکور محاسبه کنیم:

البته امروزه از روش یازده نقطه ای استفاده نمی شود. از سال 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خیلی خیلی بزرگتر خواهد شد.