วิธีการคำนวณ mAP (หมายถึงความแม่นยำเฉลี่ย) สำหรับภารกิจตรวจจับสำหรับผู้นำ Pascal VOC ได้อย่างไร http://host.robots.ox.ac.uk:8080/leaderboard/displaylb.php?challengeid=11&compid=4
มีการกล่าว - ที่หน้า 11 : http://homepages.inf.ed.ac.uk/ckiw/postscript/ijcv_voc09.pdf
ความแม่นยำเฉลี่ย (AP) สำหรับความท้าทาย VOC2007 ความแม่นยำเฉลี่ยแบบสอดแทรก (Salton และ Mcgill 1986) ถูกใช้เพื่อประเมินทั้งการจำแนกและการตรวจจับ สำหรับงานและคลาสที่กำหนดเส้นโค้งความแม่นยำ / การเรียกคืนถูกคำนวณจากเอาต์พุตอันดับของวิธีการ การเรียกคืนถูกกำหนดให้เป็นสัดส่วนของตัวอย่างเชิงบวกทั้งหมดที่จัดอันดับอยู่เหนืออันดับที่กำหนด ความแม่นยำคือสัดส่วนของตัวอย่างทั้งหมดข้างต้นที่อยู่ในระดับบวก AP สรุปรูปร่างของเส้นโค้งความแม่นยำ / การเรียกคืนและถูกกำหนดเป็นความแม่นยำเฉลี่ยที่ชุดของสิบเอ็ดระดับการเรียกคืนที่เว้นระยะเท่ากัน
AP = 1/11 ∑ r∈{0,0.1,...,1} pinterp(r)
ความแม่นยำในการเรียกคืนแต่ละระดับ r ถูกสอดแทรกโดยการวัดความแม่นยำสูงสุดสำหรับวิธีที่การเรียกคืนที่สอดคล้องกันเกินกว่า r:
pinterp(r) = max p(r˜)
โดยที่ p (r˜) คือความแม่นยำที่วัดได้ที่การเรียกคืน ˜r
เกี่ยวกับ mAP: http://0agr.ru/wiki/index.php/Precision_and_Recall#Average_Precision
ดังนั้นมันหมายความว่า:
เราคำนวณความแม่นยำและการเรียกคืน :
- A) สำหรับที่แตกต่างกัน
IoU
> {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}
เราคำนวณค่า True / False Positive / Negative
ที่ไหน
True positive = Number_of_detection with IoU > {0, 0.1,..., 1}
ตามที่กล่าวไว้ที่นี่: /datascience//a/16813/37736จากนั้นเราคำนวณ:Precision = True positive / (True positive + False positive)
Recall = True positive / (True positive + False negative)
- A) สำหรับที่แตกต่างกัน
B) หรือสำหรับอัลกอริธึมการตรวจจับที่แตกต่างกันมากมายที่เราคำนวณ:
Precision = True positive / (True positive + False positive)
Recall = True positive / (True positive + False negative)
ที่
True positive = Number_of_detection with IoU > 0.5
กล่าวไว้ที่นี่: /programming//a/43168882/1558037
C) หรือสำหรับอัลกอริทึมการตรวจจับที่แตกต่างกันมากมายที่เราคำนวณ:
Precision = Intersect / Detected_box
Recall = Intersect / Object
ตามที่แสดงไว้ที่นี่? https://en.wikipedia.org/wiki/Precision_and_recall
- จากนั้นเราคำนวณ AP (ความแม่นยำเฉลี่ย) เป็นค่าเฉลี่ย 11 ค่าของ
Precision
ที่จุดที่Recall = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}
เช่นAP = 1/11 ∑ recall∈{0,0.1,...,1} Precision(Recall)
(โดยทั่วไปสำหรับแต่ละจุดเช่น 0.3 เราจะได้รับ MAX of Precision for Recall <= 0.3 แทนที่จะเป็นค่าความแม่นยำ ณ จุดนี้ Recall = 0.3)
- และเมื่อเราคำนวณ AP เพียง 1 ชั้นวัตถุบางอย่างในภาพทั้งหมด - แล้วเราจะได้รับAP (ความแม่นยำเฉลี่ย)
air
สำหรับชั้นนี้เช่นเพียงเพื่อ
ดังนั้น AP จึงเป็นส่วนประกอบ (พื้นที่ใต้เส้นโค้ง): /stats//a/157019/111998
แต่เมื่อเราคำนวณ AP สำหรับคลาสอ็อบเจ็กต์ทั้งหมดในทุกรูปภาพ - จากนั้นเราจะได้รับmAP (หมายถึงความแม่นยำเฉลี่ย)สำหรับชุดข้อมูลรูปภาพทั้งหมดตัวอย่างเช่น88.6
สำหรับ R4D_faster_rcnn: http://host.robots.ox.ac.uk:8080/leaderboard /displaylb.php?challengeid=11&compid=4
คำถาม:
- ถูกต้องหรือไม่ถ้าไม่วิธีการคำนวณ mAP สำหรับ Pascal VOC Challenge
- และสูตรใดใน 3 สูตร (A, B หรือ C) ที่ถูกต้องสำหรับการคำนวณความแม่นยำและการเรียกคืนในวรรค 1
คำตอบสั้น ๆ :
- mAP = AVG (AP สำหรับแต่ละคลาสอ็อบเจ็กต์)
- AP = AVG (ความแม่นยำสำหรับการเรียกคืน 11 รายการ {ความแม่นยำ = 0, 0.1, ... , 1})
- PR-curve = ความแม่นยำและการเรียกคืน (สำหรับแต่ละเกณฑ์ที่อยู่ในกล่องการคาดการณ์)
- ความแม่นยำ = TP / (TP + FP)
- เรียกคืน = TP / (TP + FN)
- TP = จำนวนการตรวจจับด้วย IoU> 0.5
- FP = จำนวนการตรวจจับด้วย IoU <= 0.5 หรือตรวจพบมากกว่าหนึ่งครั้ง
- FN = จำนวนวัตถุที่ตรวจไม่พบหรือตรวจพบด้วย IoU <= 0.5