当前位置: 首页 > news >正文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【方法】如何打开设置了密码的ZIP文件?
  • 如何高效学习(二)
  • 云服务性能优化:缓存策略的高效应用
  • Vue 3 <script setup> 使用v-bind(或简写为 :)来动态绑定图片的 src 属性
  • [算法] 优先算法(四):滑动窗口(下)
  • 表格数据存本地,实时保存
  • C++基础(1)
  • 构建LangChain应用程序的示例代码:60、探索 OpenAI V1 新功能及其在 LangChain 中的应用
  • unity 手动制作天空盒及使用
  • 30 华三华为STP
  • python+django 环境搭建以及post接口封装
  • Java内存区域与内存溢出异常(自动内存管理)
  • 鸿蒙系统创建签名文件及使用创建签名文件打包并安装
  • Labview_Workers5.0 学习笔记
  • 评价ChatGPT与强人工智能的未来
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • C学习-枚举(九)
  • ES6 学习笔记(一)let,const和解构赋值
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Facebook AccountKit 接入的坑点
  • Github访问慢解决办法
  • JavaScript 基础知识 - 入门篇(一)
  • Java程序员幽默爆笑锦集
  • laravel 用artisan创建自己的模板
  • Node项目之评分系统(二)- 数据库设计
  • PaddlePaddle-GitHub的正确打开姿势
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • React Transition Group -- Transition 组件
  • Vue实战(四)登录/注册页的实现
  • Xmanager 远程桌面 CentOS 7
  • 从重复到重用
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 力扣(LeetCode)21
  • 前端
  • 前端js -- this指向总结。
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 巧用 TypeScript (一)
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 问题之ssh中Host key verification failed的解决
  • 怎么把视频里的音乐提取出来
  • 字符串匹配基础上
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • # 数论-逆元
  • $.ajax中的eval及dataType
  • (4) PIVOT 和 UPIVOT 的使用
  • (7)svelte 教程: Props(属性)
  • (day 12)JavaScript学习笔记(数组3)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (SERIES12)DM性能优化
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm学生管理系统 毕业设计 141543