Làm cách nào để tính mAP cho nhiệm vụ phát hiện cho Thử thách PASCAL VOC?


22

Làm cách nào để tính mAP (có nghĩa là Độ chính xác trung bình) cho nhiệm vụ phát hiện cho bảng xếp hạng Pascal VOC? http://host.robots.ox.ac.uk:8080/leaderboard/displaylb.php?challengeid=11&compid=4

Có nói - tại trang 11 : http://homepages.inf.ed.ac.uk/ckiw/postscript/ijcv_voc09.pdf

Độ chính xác trung bình (AP). Đối với thử thách VOC2007, độ chính xác trung bình được nội suy (Salton và Mcgill 1986) đã được sử dụng để đánh giá cả phân loại và phát hiện. Đối với một nhiệm vụ và lớp nhất định, đường cong chính xác / thu hồi được tính từ đầu ra được xếp hạng của phương thức. Nhớ lại được định nghĩa là tỷ lệ của tất cả các ví dụ tích cực được xếp hạng trên một thứ hạng nhất định. Độ chính xác là tỷ lệ của tất cả các ví dụ trên xếp hạng đó là từ lớp tích cực. AP tóm tắt hình dạng của đường cong chính xác / thu hồi và được định nghĩa là độ chính xác trung bình tại một tập hợp mười một mức thu hồi cách đều nhau [0,0.1, ..., 1]: AP = 1/11 ∑ r∈{0,0.1,...,1} pinterp(r)

Độ chính xác ở mỗi mức thu hồi r được nội suy bằng cách lấy độ chính xác tối đa được đo cho phương pháp mà độ thu hồi tương ứng vượt quá r : pinterp(r) = max p(r˜), trong đó p (r˜) là độ chính xác đo được khi thu hồi ˜r

Giới thiệu về mAP: http://0agr.ru/wiki/index.php/Precision_and_Recall#Alusive_Precision


Vậy có nghĩa là:

  1. Chúng tôi tính toán Chính xác và Nhớ lại :

    • A) Đối với nhiều loại khác nhau,IoU > {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1} chúng tôi tính toán các giá trị Tích cực / Sai dương / Sai

    Ở đâu True positive = Number_of_detection with IoU > {0, 0.1,..., 1}, như đã nói ở đây: /datascience//a/16813/37736 và sau đó chúng tôi tính toán:

    Precision = True positive / (True positive + False positive)

    Recall = True positive / (True positive + False negative)


  • B) Hoặc cho nhiều ngưỡng thuật toán phát hiện khác nhau, chúng tôi tính toán:

    Precision = True positive / (True positive + False positive)

    Recall = True positive / (True positive + False negative)

    Trong trường hợp True positive = Number_of_detection with IoU > 0.5như đã nói ở đây: /programming//a/43168882/1558037


  • C) Hoặc cho nhiều ngưỡng khác nhau của thuật toán phát hiện, chúng tôi tính toán:

    Precision = Intersect / Detected_box

    Recall = Intersect / Object

    Như được hiển thị ở đây? https://en.wikipedia.org/wiki/Precision_and_recall nhập mô tả hình ảnh ở đây


  1. Sau đó, chúng tôi xây dựng đường cong Precision-Recall , như được hiển thị ở đây: nhập mô tả hình ảnh ở đây

  1. Sau đó, chúng tôi tính AP (độ chính xác trung bình) là trung bình của 11 giá trịPrecision tại các điểm Recall = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}, nghĩa làAP = 1/11 ∑ recall∈{0,0.1,...,1} Precision(Recall)

(Nói chung cho mỗi điểm, ví dụ 0,3, chúng tôi nhận được MAX Độ chính xác cho Thu hồi <= 0,3, thay vì giá trị của Độ chính xác tại điểm này Gọi lại = 0,3)


  1. Và khi chúng ta tính toán AP chỉ cho 1 lớp đối tượng gì đó trên tất cả các hình ảnh - thì chúng ta sẽ nhận được AP (độ chính xác trung bình) cho lớp này, ví dụ, chỉ cho air.

Vì vậy, AP là một tích phân (khu vực dưới đường cong): /stats//a/157019/111998

Nhưng khi chúng tôi tính toán AP cho tất cả các lớp đối tượng trên tất cả các hình ảnh - thì chúng tôi sẽ nhận được mAP (độ chính xác trung bình trung bình) cho tất cả các tập dữ liệu hình ảnh, ví dụ, 88.6cho R4D_faster_rcnn: http://host.robots.ox.ac.uk:8080/leaderboard /displaylb.php?challengeid=11&compid=4


Câu hỏi:

  1. Có đúng không, và nếu không, thì làm thế nào để tính mAP cho Pascal VOC Challenge?
  2. Và công thức nào trong 3 công thức (A, B hoặc C) là chính xác để tính Độ chính xác và Nhớ lại, trong đoạn 1?

Câu trả lời ngắn:

  • mAP = AVG (AP cho từng lớp đối tượng)
  • AP = AVG (Độ chính xác cho mỗi 11 lần thu hồi {precision = 0, 0.1, ..., 1})
  • Đường cong PR = Độ chính xác và Thu hồi (đối với mỗi Ngưỡng trong các hộp ràng buộc Dự đoán)
  • Độ chính xác = TP / (TP + FP)
  • Nhớ lại = TP / (TP + FN)
  • TP = số lần phát hiện với IoU> 0,5
  • FP = số lần phát hiện với IoU <= 0,5 hoặc được phát hiện nhiều lần
  • FN = số lượng đối tượng không được phát hiện hoặc phát hiện với IoU <= 0,5

Câu trả lời:


15

Để trả lời câu hỏi của bạn:

  1. Có cách tiếp cận của bạn là đúng
  2. Trong số A, B và C câu trả lời đúng là B.

Giải thích như sau: Để tính Độ chính xác trung bình (mAP) trong bối cảnh Phát hiện đối tượng, bạn phải tính Độ chính xác trung bình (AP) cho mỗi lớp, sau đó tính giá trị trung bình trên tất cả các lớp. Chìa khóa ở đây là tính toán AP cho từng lớp, nói chung để tính toán Độ chính xác (P) và Gọi lại (R), bạn phải xác định thế nào là: Tích cực thực (TP), Tích cực sai (FP), Phủ định thực (TN) và Sai Tiêu cực (FN). Trong cài đặt Phát hiện đối tượng của Thử thách VOC Pascal như sau:

  • TP: là các Hộp giới hạn (BB) mà giao điểm trên liên minh (IoU) với sự thật mặt đất (GT) là trên 0,5
  • FP: BB rằng IoU với GT dưới 0,5 cũng là BB có IoU với GT đã được phát hiện.
  • TN: không có tiêu cực thực sự, hình ảnh dự kiến ​​sẽ chứa ít nhất một đối tượng
  • FN: những hình ảnh đó là phương pháp không thể tạo ra BB

Bây giờ mỗi BB dự đoán có một giá trị độ tin cậy cho lớp đã cho. Vì vậy, phương pháp tính điểm sắp xếp các dự đoán để giảm thứ tự tin cậy và tính P = TP / (TP + FP) và R = TP / (TP + FN) cho mỗi thứ hạng có thể k = 1 cho đến số lượng dự đoán. Vì vậy, bây giờ bạn có (P, R) cho mỗi cấp bậc mà P và R là đường cong Chính xác-Thu hồi "thô". Để tính giá trị đường cong PR nội suy của R, bạn chọn P tối đa có R '> = R. tương ứng

Có hai cách khác nhau để lấy mẫu điểm đường cong PR theo tài liệu voc devkit . Đối với Thử thách VOC trước năm 2010, chúng tôi chọn P tối đa thu được cho bất kỳ R '> = R, R thuộc về 0, 0,1, ..., 1 (mười một điểm). AP sau đó là độ chính xác trung bình ở mỗi ngưỡng Thu hồi. Đối với VOC Challenge 2010 trở đi, chúng tôi vẫn chọn P tối đa cho bất kỳ R '> = R, trong khi R thuộc về tất cả các giá trị thu hồi duy nhất (bao gồm 0 và 1). AP sau đó là kích thước diện tích dưới đường cong PR. Lưu ý rằng trong trường hợp bạn không có giá trị P với Recall trên một số ngưỡng thì giá trị Chính xác là 0.

Ví dụ, hãy xem xét đầu ra sau đây của một phương thức được cung cấp cho lớp "Máy bay":

BB  | confidence | GT
----------------------
BB1 |  0.9       | 1
----------------------
BB2 |  0.9       | 1
----------------------
BB3 |  0.7       | 0
----------------------
BB4 |  0.7       | 0
----------------------
BB5 |  0.7       | 1
----------------------
BB6 |  0.7       | 0
----------------------
BB7 |  0.7       | 0
----------------------
BB8 |  0.7       | 1
----------------------
BB9 |  0.7       | 1
----------------------

Ngoài ra, nó không phát hiện các hộp giới hạn trong hai hình ảnh, vì vậy chúng tôi có FN = 2. Bảng trước đó là thứ hạng được sắp xếp theo giá trị độ tin cậy của các dự đoán của phương thức GT = 1 có nghĩa là TP và GT = 0 FP. Vậy TP = 5 (BB1, BB2, BB5, BB8 và BB9), FP = 5. Đối với trường hợp xếp hạng = 3, độ chính xác giảm xuống vì BB1 đã được phát hiện, vì vậy ngay cả khi đối tượng thực sự có mặt, nó vẫn được tính là một FP. .

rank=1  precision=1.00 and recall=0.14
----------
rank=2  precision=1.00 and recall=0.29
----------
rank=3  precision=0.66 and recall=0.29
----------
rank=4  precision=0.50 and recall=0.29
----------
rank=5  precision=0.40 and recall=0.29
----------
rank=6  precision=0.50 and recall=0.43
----------
rank=7  precision=0.43 and recall=0.43
----------
rank=8  precision=0.38 and recall=0.43
----------
rank=9  precision=0.44 and recall=0.57
----------
rank=10 precision=0.50 and recall=0.71
----------

Cho các kết quả trước đó: Nếu chúng tôi sử dụng cách trước voc2010, các giá trị Chính xác được nội suy là 1, 1, 1, 0,5, 0,5, 0,5, 0,5, 0,5, 0, 0, 0. Sau đó AP = 5.5 / 11 = 0.5 cho lớp "Máy bay". Khác nếu chúng ta sử dụng cách kể từ voc2010, các giá trị Chính xác được nội suy là 1, 1, 1, 0,5, 0,5, 0,5, 0 cho bảy lần thu hồi duy nhất là 0, 0,14, 0,29, 0,43, 0,57, 0,71, 1. Sau đó AP = (0,14-0) * 1 + (0,29-0,14) * 1 + (0,43-0,29) * 0,5 + (0,57-0,43) * 0,5 + (0,71-0,57) * 0,5 + (1-0,71) * 0 = 0,5 cho lớp học "Máy bay".

Lặp lại cho mỗi lớp và sau đó bạn có (mAP).

Thông tin thêm có thể được tìm thấy trong các liên kết 1 , 2 sau đây . Ngoài ra, bạn nên kiểm tra bài viết: Thử thách các lớp đối tượng trực quan PASCAL: Hồi tưởng để được giải thích chi tiết hơn.


1
Không có gì! Có, bạn nên tính toán trên tất cả các hình ảnh. Và GT là 1 nếu IoU> 0,5. FN cuối cùng sẽ là 3 cho 3 đối tượng không được phát hiện
feynman410

1
FN là số lượng hình ảnh không được dự đoán, FP là số lượng phát hiện với IoU <= 0,5 hoặc được phát hiện nhiều lần. Xem số liệu thống kê mã giả này.stackexchange.com/a/263758/140597
feynman410

1
Xin lỗi, quyền của bạn là các đối tượng số không được phát hiện.
feynman410

1
@ feynman410 tôi đã nhầm lẫn, bạn có thể vui lòng cho chúng tôi biết nơi bạn đặt trong các đối tượng bảng không được phát hiện, nhưng nên được không? ở cuối bàn? (vì không có điểm cho họ)
Martin Brišiak

1
Vì vậy, "Chính xác" và "Nhớ lại" được tính riêng cho từng lớp - để tính AP cho mỗi lớp. Đúng? Vì vậy, chúng được tính riêng trên mỗi hình ảnh và sau đó được tính trung bình, hoặc chúng được tính toán trên tổng số phát hiện trên tất cả các hình ảnh?
Một cái gì đó

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.