Sanaz Khalili
Sanaz Khalili
خواندن ۳ دقیقه·۳ سال پیش

معیار (mean average precision) mAP

به نام خدا

معیار mAP یا میانگین متوسط دقت، یکی از مهمترین معیارهایی است که برای سنجش دقت مدل های تشخیص شی یا object detection استفاده می شود. سعی دارم در این پست به صورت خیلی خلاصه نکات اصلی آن را توضیح بدهم. قبل از بررسی مفهموم mAP نیاز است تا مفاهیم دیگری را بررسی کنیم.

معیار precision و recall:

مقادیر پیش بینی و واقعی در یک مسئله نسبت به هم ممکن است حالت های زیر را داشته باشد:

شکل1(منبع)
شکل1(منبع)

معیار precision نشان دهنده ی این است که چه تعداد نمونه هایی که مثبت پیش بینی شده اند، درست پیش بینی شده اند و رابطه ی آن از روش زیر قابل محاسبه است(منظور از حروف مثلا TP همان True Positiveدر جدول بالا است):

رابطه1(منبع)
رابطه1(منبع)

معیار recall مشخص می کند که چه تعداد از نمونه هایی که مثبت بوده اند درست پیش بینی شده اند.

رابطه2(منبع)
رابطه2(منبع)

برای محاسبه ی mAP از معیارهای بالا استفاده می شود. اما سوالی که این جا پیش می آید در مسئله ی تشخیص شی چه طور می توان مقادیر ماتریس confusion را محاسبه کرد؟ این کار براساس IoU جعبه های پیش بینی شده و جعبه ی اصلی محاسبه می شود.( اطلاعات بیشتر معیار IoU )

برای محاسبه ی mAP سعی داریم آن را با یک مثال توضیح دهیم.

محاسبه ی mAP

فرض کنید می خواهیم برای 7 تصویر زیر mAP را محاسبه کنیم.

شکل2(منبع)
شکل2(منبع)

در ابتدا مشخص می کنیم که هر جعبه پیش بینی شده TP یا FP است. این تصاویر، جعبه های اصلی یا ground truth را با رنگ سبز و جعبه های پیش بینی شده را با رنگ قرمز نشان می دهند. ابتدا تصویر Image1 را در نظر می گیریم. در این تصویر، 3 جعبه ی A, B, C پیش بینی شده اند. اگر جعبه ی پیش بینی شده با جعبه ی اصلی متناظرش میزان همپوشانی بیشتر از مثلا 30 درصد داشته باشد(این حد آستانه معمولا 50، 75 یا 95 درصد در نظر گرفته می شود.) در دسته ی TP(مثل جعبه یB) و اگر کمتر از 50 درصد باشد(مثل جعبه ی A) یا جعبه اشتباهی پیش بینی شده باشد(مثل جعبه ی C)، FP خواهد بود. برای تک تک تصاویر وضعیت TP , FP جعبه ها را در جدولی مثل جدول1 مشخص می کنیم.

جدول1(منبع)
جدول1(منبع)

بعد از آن، جدول1 را براساس Confidence(احتمال وجود شی) هر جعبه به صورت نزولی مرتب می کنیم و فراوانی تجمعی TP , FP را مانند جدول2 محاسبه می کنیم. حال می توانیم مقادیر Precision و Recall را طبق رابطه ی 1و2 با استفاده از فراوانی تجمعی TP , FP محاسبه کنیم. برای مثال در سطر سوم مقدار Precision عبارت است از (1+2)/2 که می شود 0.6666 و مقدار Recall نیز 2/15 که 0.1333خواهد بود(مخرج در معیار Recall تعداد تمام ground truth های کل تصاویر است).

جدول2(منبع)
جدول2(منبع)

بعد از محاسبه ی Precision و Recall، نمودار مربوط به این دو را مطابق شکل3 رسم می کنیم.

شکل3) نمودار recall , precision
شکل3) نمودار recall , precision

برای بدست آوردن AP دو روش استفاده می شود:

روش اول

درون یابی یا interpulate مقادیر متناظر precision در 11 نقطه از recall که معمولا نقاط 0، 0.1، 0.2، 0.3،..0.9و1 در نظر گرفته می شود. شکل4 این 11 نقطه را نمایش می دهد.

شکل4
شکل4

در رابطه ی زیر منظور از p با زیروند interp(r) یعنی مقدار precision متناظر Recall در نقطه ی r.

روش دوم

درون یابی برای همه ی نقاط انجام شود. شکلی مثل شکل5 خواهیم داشت.

شکل5
شکل5

این نمودار از 4 ناحیه مثل شکل6 تشکیل شده است.

شکل6
شکل6

پس به شکل زیر AP را بدست می آوریم.

برای بدست آوردن mAP در واقع میانگین AP هر کلاس را در آن مجموعه داده باید محاسبه کنیم تا این معیار محاسبه شود.


منبع:

GitHub - rafaelpadilla/Object-Detection-Metrics: Most popular metrics used to evaluate object detection algorithms.

نمونه کد محاسبه ی mAP:

https://github.com/sanazkhalili/YOLOv3/blob/master/codes/Calculate_mAP.ipynb



mapobject detection
https://github.com/sanazkhalili - https://www.kaggle.com/skhalili
شاید از این پست‌ها خوشتان بیاید