評估 Object Detection mAP 工具

李謦伊
謦伊的閱讀筆記
4 min readJun 4, 2021

在進行物件偵測時,很常使用 mAP 作為評估指標,在之前的文章 YOLOv4 訓練教學 中有簡單介紹過,本文將要來介紹一個好用的評估 mAP 工具並進行操作。

該 Dataset 有 train, valid, test 的圖片及 txt 檔案,需先使用 train, valid 進行訓練,test 則是接下來要用來測試 mAP。

首先 git clone mAP github

$ git clone https://github.com/Cartucho/mAP

然後進入至該資料夾中,會有以下檔案

進入 input 資料夾會有 detection-results, ground-truth, images-optional 資料夾,分別放置預測值 txt, 真實值 txt, 圖片資料。

接著看一下預測值 txt 跟真實值 txt 的檔案格式,在計算 mAP 前需要將資料先轉換成該格式。

  • 預測值 txt 格式如下,其中 <left><top> 是指物件框的左上角座標、<right><bottom> 指物件框的右下角座標。
<class_name> <confidence> <left> <top> <right> <bottom>
  • 真實值 txt 格式如下,與預測值 txt 的差異在於不需要寫入 confidence。

若要將資料格式進行轉換,該 github 有提供轉換 code,放置在 scripts/extra 資料夾裡。

也可以直接使用 opencv inference 並寫成該格式的檔案,大致形式跟 Object Detection Label 標註教學 的最後一小節一樣,差別在於多增加 75~80 行。

轉換格式的詳細說明可參考:如何轉換為Yolo txt格式

接下來就是將這些資料替換為自己的資料,我使用口罩偵測的模型~ 準備好後,執行以下指令就會開始進行計算了!

$ cd mAP$ python main.py
口罩資料驗證的結果

計算完後可以在 mAP/output 中看到驗證結果,mAP/output/calsses 有各個類別的 PR curve、mAP/output/images 則是每張圖片的預測狀況。

--

--