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.mzph.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 …

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年高压电工证考试题库及高压电工试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大纲随机出的高压…

开源项目有哪些机遇与挑战

目录 1.概述 2.开源项目的发展趋势 2.1. 开源项目的发展现状 2.2. 开源社区的活跃度 2.3. 开源项目在技术创新中的作用 3.参与开源的经验分享 3.1. 选择开源项目 3.2. 理解项目结构和文档 3.3. 贡献代码 3.4. 与开源社区的合作 3.5. 学习和成长 4.开源项目的挑战 …

内裤洗衣机到底值不值得买?五大高质量靠谱内衣洗衣机值得拥有

市场上出现了内衣洗衣机,这种洗衣机比市面上的普通洗衣机的清洁力好,还具有除菌功能,在清洗完内衣裤的过程中,可以将衣物上的细菌去除掉,但市面上的内衣品牌众多,什么样的牌子才好用呢?作为一位…

前端简历:如何写项目经历(经验)找出细节点和重难点,轻松应对面试?

(下面内容:我将结合我的实际项目带大家进行每一步骤的梳理) 项目经历-堂食外送点餐 2022年2月-2022年5月 项目描述:该平台提供外送订餐服务,用户可以在手机中轻松地浏览菜品、下单、支付、编辑地址、填写个人信息等…

手撸俄罗斯方块——游戏设计

手撸俄罗斯方块——游戏设计 概述 上一章我们介绍俄罗斯方块的基本信息,包括坐标点和方块的基本概念,这一章节我们继续介绍如何完成后续的游戏设计。 组成游戏的基本要素 俄罗斯方块作为一个 2D 的平面游戏,我们可以将整个参与元素做如下…

简过网:工程专业最吃香的6个证书,你考了几个了?

工程专业最吃香的6个证书,你考了几个了?我们一起来看看吧! 1、二级建造师 报考条件:工程类大专及以上学历/从事相关职业 考试时间:3月报名、6月考试 就业前景:建筑设计院、房产开发公司、施工单位 2、一…

如何管理一百个ai专家智能体——ai调度系统设计

前言 如果你用过openai的chatgpt服务,你肯定知道一个叫做GPTs的智能体商店,里面提供了大量的来自官方和个人制作的专门针对某个领域的gpt助手。比如,你想让gpt帮忙写文章,并且要能够写得好,你就可以在商店中搜索相关的…

Smail语句如何使用判断语句跳过验证卡密界面?谈谈思路

🏆本文收录于《CSDN问答解惑》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&…

数据融合工具(5)面中心线提取

这是一个重磅工具,建议先看视频。 提取中心线 一、需求背景 说真的,当小编第一次使用ArcGIS中的Polygon To Centerline工具提取面要素中心线时,激动得无以言表,毕竟,以前要提取面中心线,是一件非常麻烦的事…

[CTF]-PWN:House of Cat堆题型综合解析

原理: 调用顺序: exit->_IO_wfile_jumps->_IO_wfile_seekoff->_IO_switch_to_wget_mode _IO_wfile_seekoff源码: off64_t _IO_wfile_seekoff (FILE *fp, off64_t offset, int dir, int mode) {off64_t result;off64_t delta, new…

AI绘画小白必备!Stable Diffusion常用插件合集,好用推荐!(附插件下载)

前言 宝子们,早上好啊~Stable Diffusion 常用插件,月月已经给大家整理好了,自取就好。 拥有这些SD常用插件,让您的图像生成和编辑过程更加强大、直观、多样化。以下插件集成了一系列增强功能,覆盖从自动补全提示词到…

无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。【解决办法】

问题描述 新建好一台windows虚拟机,两台设备网络是互通的,但是物理机在访问虚拟机的网络共享文件资源时,出现图下所示的报错:XXX无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。用户…

echarts无法加载Map地图的问题

项目场景: echarts无法加载Map地图的问题 详情 查阅相关资料讲,echarts4.9以上版本已经移除了map,那么我们就得重新打包echarts文件了。打包echarts.min.js的链接:https://echarts.apache.org/zh/builder.html 在这个链接页面可…

考完软考之后,如何评职称?是否有有效期?

一、软考和职称之间的关系 软考和职称之间的关系可以这样理解:拿到软考证书并不意味着就能获得职称。软考证书是技术等级证书,而职称则是一种资格。如果单位聘用你做工程师,那么你的软考证书就可以发挥作用,相当于获得了职称证。…

MES:连接计划与执行的桥梁

想象一下,你的企业拥有一份完美的生产计划,但如何将这份计划准确无误地转化为实际生产中的每一步操作?这就是MES大展身手的地方。MES作为ERP(企业资源计划)与车间自动化控制之间的桥梁,确保生产计划能够顺畅…

hf-mirror (huggingface 的国内镜像)

官网: https://hf-mirror.com/ 网站域名 hf-mirror.com,用于镜像 huggingface.co 域名。作为一个公益项目,致力于帮助国内AI开发者快速、稳定的下载模型、数据集。 如何使用HF-Mirror 方法一:网页下载 在https://hf-mirror.com/…

边框插画:成都亚恒丰创教育科技有限公司

边框插画:艺术与生活的精致边界 在视觉艺术的广阔天地里,边框插画以其独特的魅力和细腻的表达方式,成为连接艺术与生活的一道精致边界。成都亚恒丰创教育科技有限公司它不仅仅是图像的外框装饰,更是情感、故事与创意的延伸&#…