将结构体写入文件_将COCO检测结果写入json文件

最近很多朋友留言问我如何将检测结果写入json文件并且用于COCO API的评估,之前对于检测结果的格式已经做了简单的说明,这里提供一些简单的函数,直接调用将结果写入即可。

用于COCO API测试的文件格式

HUST小菜鸡:用于COCO API测试的结果的文件格式​zhuanlan.zhihu.com
dc6b5eb9a9ee9dd4a31c361c28f38631.png

使用COCO API进行结果评估

HUST小菜鸡:使用COCO API评估模型在COCO数据集上的结果​zhuanlan.zhihu.com
dc6b5eb9a9ee9dd4a31c361c28f38631.png

COCO utils给出了一些转换的函数

def det2json(dataset, results):json_results = []for idx in range(len(dataset)):img_id = dataset.img_ids[idx]result = results[idx]for label in range(len(result)):bboxes = result[label]for i in range(bboxes.shape[0]):data = dict()data['image_id'] = img_iddata['bbox'] = xyxy2xywh(bboxes[i])data['score'] = float(bboxes[i][4])data['category_id'] = dataset.cat_ids[label]json_results.append(data)return json_results
def results2json(dataset, results, out_file):result_files = dict()if isinstance(results[0], list):json_results = det2json(dataset, results)result_files['bbox'] = '{}.{}.json'.format(out_file, 'bbox')result_files['proposal'] = '{}.{}.json'.format(out_file, 'bbox')mmcv.dump(json_results, result_files['bbox'])elif isinstance(results[0], tuple):json_results = segm2json(dataset, results)result_files['bbox'] = '{}.{}.json'.format(out_file, 'bbox')result_files['proposal'] = '{}.{}.json'.format(out_file, 'bbox')result_files['segm'] = '{}.{}.json'.format(out_file, 'segm')mmcv.dump(json_results[0], result_files['bbox'])mmcv.dump(json_results[1], result_files['segm'])elif isinstance(results[0], np.ndarray):json_results = proposal2json(dataset, results)result_files['proposal'] = '{}.{}.json'.format(out_file, 'proposal')mmcv.dump(json_results, result_files['proposal'])else:raise TypeError('invalid type of results')return result_files

其他的实现方式也差不多和这个相同

    ......
省略部分未模型初始化等操作部分if not distributed:model = MMDataParallel(model, device_ids=[0])outputs = single_gpu_test(model, data_loader, args.show, args.save_img, args.save_img_dir)else:model = MMDistributedDataParallel(model.cuda())outputs = multi_gpu_test(model, data_loader, args.tmpdir)res = []for id, boxes in enumerate(outputs):boxes=boxes[0]if type(boxes) == list:boxes = boxes[0]boxes[:, [2, 3]] -= boxes[:, [0, 1]]if len(boxes) > 0:for box in boxes:temp = dict()temp['image_id'] = id+1temp['category_id'] = 1temp['bbox'] = box[:4].tolist()temp['score'] = float(box[4])res.append(temp)with open(args.out, 'w') as f:json.dump(res, f)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js for循环_JS 函数的执行时机(深入理解6个6)

定时器:setTimeout()setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式提示: 1000 毫秒 1 秒。 提示: 如果你只想重复执行可以使用 setInterval() 方法。 提示: 使用 clearTimeout() 方法来阻止函数的执行。语法&#x…

OCLint+Xcode 代码规范利器

很多公司里面都会强调代码规范的问题,开发者也都知道代码规范的好处。可实际开发中往往因为各种原因使我们把它的优先级不知不觉中降低了。  这里向一个有代码追求和洁癖的程序猿推荐一个分析工具,它可以成为你重构代码或着review的基本规则 OCLint是一…

MySQL求类型为GX的平均积分_mysql基本操作

一、连接操作格式:mysql-h主机地址 -u用户名 -p用户密码例:连接到远程主机上的mysql假设远程主机的IP为:110.110.110.110用户名为root,密码为abcd123则键入以下命令:mysql-h110.110.110.110-uroot-pabcd123二、用户级操作1、selec…

k均值聚类算法优缺点_Grasshopper实现K均值聚类算法

本文很长很长,有很多很多图,包含以下部分:1.算法简介2.如何分类平面点3.如何分类空间点4.如何分类多维数据5.后记提醒:以下内容包括:智障操作,无中生友,重复造轮子 等1.算法简介k均值聚类算法&a…

fullgc频繁的原因_系统运行缓慢,CPU 100%,Full GC次数过多,这一招帮你全搞定

处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排…

WEKA “Detailed Accuracy By Class”和“Confusion Matrix”含义

原文 Summary (总结)Correctly Classified Instances(正确分类的实例) 45 90 %Incorrectly Classified Instances (错误分类的实例) 5 10 %Kappa …

es删除数据_面试官是怎么来考察你对ES搜索引擎的理解?

来源:http://1t.click/ZdY一. 面试官心理分析问这个,其实面试官就是要看看你了解不了解 es 的一些基本原理,因为用 es 无非就是写入数据,搜索数据。你要是不明白你发起一个写入和搜索请求的时候,es 在干什么,那你真的是…

一个分布式服务器集群架构方案

0x01.大型网站演化 简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。 集群主要分为:高可用集群(High Availability Cluster),负载均衡集群(Load Balance Cluster&…

python数据预处理_Python数据预处理——缺失值、重复值

一、缺失值处理 isnull( ) 、fillna( ) 、dropna( )(1)查看缺失查看数据集缺失,返回每列的缺失个数 df.isnull().sum() 查看某字段有缺失的行 df[df.a.isnull()] 查看某字段每行的缺失情况:返回T/F:df.score.isnull() …

vb如何测试连接mysql_VB怎么连接访问Access数据库?

VB是我们常常会见到的一款可视化程序设计语言,它的功能十分强大,因此有很多人会使用它,但是有时候我们需要用到VB来连接Access数据库,但是却无从下手,那么VB怎么连接访问Access数据库呢?不懂的朋友请看以下…

textarea如何在文字后面_FLASH如何制作风吹文字的效果

使用动作补间动画可以制作各种各样的动态效果,树叶飘落、蝴蝶飞舞等。这里再使用引导层动画结合动作补间动画制作风吹文字飞起的效果。主要知识点:引导层动画、动作补间动画FLASH如何制作树叶飘落​jingyan.baidu.comFlash如何制作飞舞的蝴蝶​jingyan.b…

ef mysql 外键 一对一_EFCore-一对一配置外键小记2

前后两次遇到这样的错误:The property xx on entity type xxxx has a temporary value. Either set a permanent value explicitly or ensure that the database is configured to generate values for this property.多数情况下是表配置关系会出现这样的问题。我实…

矩阵快速幂 HDU3483

1 #include <iostream>2 #include <cstring>3 4 using namespace std;5 6 //矩阵大小上限7 const int SIZ100;8 int MOD;9 10 //矩阵大小为n*m&#xff0c;初始化全部为011 struct mat12 {13 int n,m;14 long long ar[SIZ][SIZ];15 mat()16 {17 …

哲学家就餐问题python_Python实现哲学家就餐问题实例代码

哲学家就餐问题&#xff1a; 哲学家就餐问题是典型的同步问题&#xff0c;该问题描述的是五个哲学家共用一张圆桌&#xff0c;分别坐在五张椅子上&#xff0c;在圆桌上有五个盘子和五个叉子&#xff08;如下图&#xff09;&#xff0c;他们的生活方式是交替的进行思考和进餐&am…

fpga摄像头模块_FPGA开源项目:双目测距(一)之双目图像采集显示以及图片保存...

1.简述这个项目是大三下学期暑假(也就是2019年8份)完成的&#xff0c;当时的视频效果已发布在bilibili上&#xff0c;这是我们的省级的科研立项&#xff0c;其实就我一个人负责完成。发布bilibili后很多人比较感兴趣&#xff0c;打算年初回学校完成毕设期间开源的&#xff0c;一…

github ssh 配置_Github远程仓库克隆更新本机,SSH协议免密操作配置和注意事项

Github远程仓库-克隆远程仓库到本机 【重点】目标如何克隆远程仓库到本机呢&#xff1f;小结下载项目的命令&#xff1a;git clone https://gitee.com/kekesam/sassweb777.git注意&#xff1a;1&#xff1a;它会自动创建本地仓库&#xff1b;2&#xff1a;它也会自动和远程仓库…

golang中文文档_【译】Go 语言源码贡献官方指导文档

以前给 Go 语言项目源码提交过一些 commits&#xff0c;期间阅读他们的官方指导文档的时候觉得这篇指导文档可以作为绝佳的关于大型软件项目的规范管理的参考&#xff0c;因为最近又提交了几个 commits&#xff0c;就又把这篇文档再看了一遍&#xff0c;有感于 Go 团队在项目管…

mysql增加最大连接数_mysql最大连接数怎么设置

设置mysql最大连接数的方法&#xff1a;首先打开mysql的控制台&#xff1b;然后输入语句【set GLOBAL max_connections1000;】即可直接设置最大连接数。通常&#xff0c;mysql的最大连接数默认是100, 最大可以达到16384&#xff1b;如果我们想修改mysql的最大连接数&#xff0c…

让一个动画一直执行的属性是_iOS 动画 一

View AnimationsAnimatable properties• bounds: 改变 bounds 属性可以在当前 view 内改变子视图等的相对位置。• frame: 改变 frame 可以移动或者缩放 view 。• center: 当你想移动 view 到屏幕的新位置时&#xff0c;可以改变此属性。• backgroundColor: 背景颜色。• al…

阿里云java mysql环境_阿里云搭建centos java mysql nginx环境

1.上传下载yum install lrzszsz下载rz上传2.安装压缩命令yum install -y unzip zip;3.安装javarpm -ivh jdk-8u161-linux-x64.rpm4.安装mysqlyum install libaioyum -y remove mariadb-libs-5.5*rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpmrpm -ivh mysql-commun…