coco數據集格式計算mAP的python腳本

目錄

  • 背景說明
  • COCOeval 計算mAP
  • txt文件轉換為coco json 格式
  • 自定義數據集標注

背景說明

在完成YOLOv5模型移植,運行在板端后,通常需要衡量板端運行的mAP。

一般需要兩個步驟
步驟一:在板端批量運行得到目標檢測結果,可保存為yolo的txt格式也可保存為json格式;
目標檢測任務中常用的數據集格式(voc、coco、yolo)
步驟二:計算預測結果 和 標注結果的mAP,本文重點介紹該步驟。

探索歷程(可略過):如果想基于預測的txt計算mAP,推薦 Cartucho/mAP, 由于開發時間有限,最終還是決定基于json 格式進行計算。

COCOeval 計算mAP

經驗證該腳本不局限coco 80分類,只要滿足json數據集格式,即可使用該腳本進行計算

# get_map.py
import argparse
import glob
import jsonif __name__ == "__main__":import argparseimport globimport jsonif __name__ == "__main__":parser = argparse.ArgumentParser(description='')parser.add_argument('--result-json', type=str, help='Json of inference results.')parser.add_argument('--benchmark-json', type=str, help='Json of labels.')args = parser.parse_args()result_json = args.result_jsoninstances_train2017_json = args.benchmark_jsonwith open(result_json, 'r') as r:result = json.load(r)def get_img_id(item):return item["image_id"]imgIds = set(map(get_img_id, result))try:from pycocotools.coco import COCOfrom pycocotools.cocoeval import COCOevalcocoGt = COCO(glob.glob(instances_train2017_json)[0])  # initialize coco ground truth apicocoDt = cocoGt.loadRes(result_json)  # initialize coco pred apicocoEval = COCOeval(cocoGt, cocoDt, 'bbox')cocoEval.params.imgIds = list(imgIds)  # image IDs to evaluatecocoEval.evaluate()cocoEval.accumulate()cocoEval.summarize()map, map50 = cocoEval.stats[:2]  # update results(mAP@0.5:0.95, mAP@0.5)except Exception as e:print('ERROR: pycocotools unable to run:%s' % e)

執行的命令行腳本如下

python get_map.py  --result-json yolov5s_predictions.json --benchmark-json  instances_val2017.json

輸出截圖如下,和官方的效果一致
在這里插入圖片描述
在這里插入圖片描述

  • instances_val2017.json為COCO標準數據集,下載命令如下
# 下載標注文件(2017 Annotations)
wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip
  • yolov5s_predictions.json為yolov5 預測的數據集
    執行YOLOv5源碼中的驗證腳本val.txt即可得到,需要注意,在運行時需要指定–save-json保存輸出結果的json文件,指定–save-conf在json文件中會保存預測框置信度。
python val.py --save-json --save-conf

數據格式如下
鏈接: https://pan.baidu.com/s/1udt4iPGEL0glxojS3OmklQ 提取碼: asdc
在這里插入圖片描述

txt文件轉換為coco json 格式

  1. 訓練的txt文件,數據格式如下

58 0.389578 0.416103 0.038594 0.163146
62 0.127641 0.505153 0.233313 0.2227

對應【標簽 x y w h】

模型直接預測得到的txt文件,數據格式如下

46 0.0451243 0.215648 0.0848332 0.431296 0.725234
46 0.102373 0.546547 0.198804 0.326551 0.70208

對應【標簽 conf x y w h】

  1. json文件中數據格式如下

{
“image_id”: 5,
“category_id”: 0,
“bbox”: [
280.697,
41.816,
218.932,
349.688
],
“score”: 0.94485
},
其中bbbox為映射到原始圖片的值,同樣需要score分數

將預測的txt文件轉換為json格式

自定義數據集標注

1)準備圖片
2)使用LableImg標注工具
對目標進行標注
[圖片]
標注結果保存為VOC格式。
可將VOC格式轉換為JSON

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43079.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43079.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43079.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Django項目】基于Python+Django+MySQL的音樂網站系統項目

功能介紹 首頁:歌曲分類、歌曲搜索、熱門歌曲、熱門下載、新歌推薦 歌曲排行:歌曲分類、分頁功能 用戶板塊:用戶登陸/注冊、播放歷史 歌曲詳情:歌曲播放、當前播放列表、歌曲點評、歌曲播放插件、下載歌曲 系統后臺:歌…

MySQL體系架構解析

1.MySQL體系架構 1.1.MySQL的分支與變種 MySQL變種有好幾個,主要有三個久經考驗的主流變種:Percona Server,MariaDB和 Drizzle。它們都有活躍的用戶社區和一些商業支持,均由獨立的服務供應商支持。同時還有幾個優秀的開源關系數據庫,值得我們了解一下。 1.1.1.Drizzle …

【Sql Server修改列類型錯誤信息:對象名依賴于列】

Sql Server修改列類型錯誤信息:對象名依賴于列 報錯信息解決方法測試sql語句 報錯信息 修改表中列類型,發生報錯如下: [SQL Server]對象DF__Forecast___isCal__4E746892 依賴于 列isCalcFinished。 (5074) [42000] [Microsoft][ODBC Driver…

L2 LangGraph_Components

參考自https://www.deeplearning.ai/short-courses/ai-agents-in-langgraph,以下為代碼的實現。 這里用LangGraph把L1的ReAct_Agent實現,可以看出用LangGraph流程化了很多。 LangGraph Components import os from dotenv import load_dotenv, find_do…

2024年高壓電工證考試題庫及高壓電工試題解析

題庫來源:安全生產模擬考試一點通公眾號小程序 2024年高壓電工證考試題庫及高壓電工試題解析是安全生產模擬考試一點通結合(安監局)特種作業人員操作證考試大綱和(質檢局)特種設備作業人員上崗證考試大綱隨機出的高壓…

uniapp vue3微信小程序如何獲取dom元素

在網上很多人說可以通過下面兩種形式獲取到指定dom元素 // 定義ref <div ref"box"></div>//1通過this.$refs獲取dom元素 this.$refs.box//2通過ref(null)獲取dom元素 let box ref(null)第一種方式在vue2中是可以獲取到的&#xff0c;但是在vue3 setup中…

開源項目有哪些機遇與挑戰

目錄 1.概述 2.開源項目的發展趨勢 2.1. 開源項目的發展現狀 2.2. 開源社區的活躍度 2.3. 開源項目在技術創新中的作用 3.參與開源的經驗分享 3.1. 選擇開源項目 3.2. 理解項目結構和文檔 3.3. 貢獻代碼 3.4. 與開源社區的合作 3.5. 學習和成長 4.開源項目的挑戰 …

內褲洗衣機到底值不值得買?五大高質量靠譜內衣洗衣機值得擁有

市場上出現了內衣洗衣機&#xff0c;這種洗衣機比市面上的普通洗衣機的清潔力好&#xff0c;還具有除菌功能&#xff0c;在清洗完內衣褲的過程中&#xff0c;可以將衣物上的細菌去除掉&#xff0c;但市面上的內衣品牌眾多&#xff0c;什么樣的牌子才好用呢&#xff1f;作為一位…

前端簡歷:如何寫項目經歷(經驗)找出細節點和重難點,輕松應對面試?

&#xff08;下面內容&#xff1a;我將結合我的實際項目帶大家進行每一步驟的梳理&#xff09; 項目經歷-堂食外送點餐 2022年2月-2022年5月 項目描述&#xff1a;該平臺提供外送訂餐服務&#xff0c;用戶可以在手機中輕松地瀏覽菜品、下單、支付、編輯地址、填寫個人信息等…

手擼俄羅斯方塊——游戲設計

手擼俄羅斯方塊——游戲設計 概述 上一章我們介紹俄羅斯方塊的基本信息&#xff0c;包括坐標點和方塊的基本概念&#xff0c;這一章節我們繼續介紹如何完成后續的游戲設計。 組成游戲的基本要素 俄羅斯方塊作為一個 2D 的平面游戲&#xff0c;我們可以將整個參與元素做如下…

簡過網:工程專業最吃香的6個證書,你考了幾個了?

工程專業最吃香的6個證書&#xff0c;你考了幾個了&#xff1f;我們一起來看看吧&#xff01; 1、二級建造師 報考條件&#xff1a;工程類大專及以上學歷/從事相關職業 考試時間&#xff1a;3月報名、6月考試 就業前景&#xff1a;建筑設計院、房產開發公司、施工單位 2、一…

如何管理一百個ai專家智能體——ai調度系統設計

前言 如果你用過openai的chatgpt服務&#xff0c;你肯定知道一個叫做GPTs的智能體商店&#xff0c;里面提供了大量的來自官方和個人制作的專門針對某個領域的gpt助手。比如&#xff0c;你想讓gpt幫忙寫文章&#xff0c;并且要能夠寫得好&#xff0c;你就可以在商店中搜索相關的…

【C語言】符號優先級詳解

C語言符號優先級詳細解析 在C語言中&#xff0c;不同的運算符具有不同的優先級和結合性&#xff0c;這決定了在表達式中運算符的計算順序。理解這些優先級和結合性是正確編寫和理解C語言程序的基礎。本文將詳細解析C語言中的符號優先級&#xff0c;包括各類運算符的優先級、結…

Smail語句如何使用判斷語句跳過驗證卡密界面?談談思路

&#x1f3c6;本文收錄于《CSDN問答解惑》專欄&#xff0c;主要記錄項目實戰過程中的Bug之前因后果及提供真實有效的解決方案&#xff0c;希望能夠助你一臂之力&#xff0c;幫你早日登頂實現財富自由&#x1f680;&#xff1b;同時&#xff0c;歡迎大家關注&&收藏&…

數據融合工具(5)面中心線提取

這是一個重磅工具&#xff0c;建議先看視頻。 提取中心線 一、需求背景 說真的&#xff0c;當小編第一次使用ArcGIS中的Polygon To Centerline工具提取面要素中心線時&#xff0c;激動得無以言表&#xff0c;畢竟&#xff0c;以前要提取面中心線&#xff0c;是一件非常麻煩的事…

uniapp圖片壓縮之后在上傳

壓縮圖片js方法&#xff0c;新建imgPress.js /** * H5壓縮 二分查找算法來找到一個合適的圖像質量系數&#xff0c;使得壓縮后的圖片文件大小接近于目標大小* param {Object} imgSrc 圖片url * param {Object} callback 回調設置返回值 * */ export function compressH5(fileI…

nginx熱更新詳解及實戰操作

Nginx熱更新&#xff0c;也被稱為平滑升級或熱部署&#xff0c;是指在不中斷Nginx服務的情況下&#xff0c;對Nginx進行升級或更新其配置&#xff0c;以實現業務的無損和用戶無感知的升級過程。以下是關于Nginx熱更新的詳細解釋&#xff1a; 一、Nginx熱更新的原理 Nginx熱更…

Kubernetes APIServer 幾種基本認證方式

"認證"&#xff0c;形象地理解就是"你是誰"。在上文中&#xff0c;用戶A在發起API請求時&#xff0c;管理員如何道該請求是用戶A發起的呢&#xff1f;所以&#xff0c;客戶端在發起API請求時&#xff0c;必須要攜帶一個身份信息來表明"我是誰"&a…

泰勒公式中拉格朗日余項和佩亞諾余項的區別及具體的應用場景案例

泰勒公式是微積分中的一個重要工具&#xff0c;用于將一個函數在某一點附近展開成多項式形式&#xff0c;以便于近似計算和分析。泰勒公式的一般形式為&#xff1a; f ( x ) f ( a ) f ′ ( a ) ( x ? a ) f ′ ′ ( a ) 2 ! ( x ? a ) 2 ? f ( n ) ( a ) n ! ( x ? a…

[CTF]-PWN:House of Cat堆題型綜合解析

原理&#xff1a; 調用順序&#xff1a; exit->_IO_wfile_jumps->_IO_wfile_seekoff->_IO_switch_to_wget_mode _IO_wfile_seekoff源碼&#xff1a; off64_t _IO_wfile_seekoff (FILE *fp, off64_t offset, int dir, int mode) {off64_t result;off64_t delta, new…