将yolov5检测结果保存成json文件

2023-10-30

将yolov5检测结果保存成json文件,每帧图片对应一个json文件,json文件中包含图片名称、检测到的bbox信息(分类结果、中心坐标和置信度)。函数json_add以图片名、该图像内的所有bbox信息,以及bbox数量为输入。在yolov5的detect.py里获取每帧中的bbox信息和数量后,直接调用函数json_add即可。

# -*- coding: UTF-8 -*-

import os
import json
import random
import time
from PIL import Image

class json_result:
      def __init__(self):
          self.W=1920
          self.H=1080
          self.save_json_path='./task11_result/师兄不上自己上/'
          self.class_name=["pedestrain","non-motor-vehicle","motor-vehicle"]
      
      def get_time_stamp(self):
          ct = time.time()
          local_time = time.localtime(ct)
          data_head = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
          data_secs = (ct - int(ct)) * 1000
          time_stamp = "%s.%03d" % (data_head, data_secs)
          #print(time_stamp)
          stamp = ("".join(time_stamp.split()[0].split("-"))+"".join(time_stamp.split()[1].split(":"))).replace('.', '')
          #print(stamp)
          return stamp
      
      def json_add(self,name,data,count):
          write_json_context=dict() 
          write_json_context['info']=[]
          write_json_context['annotations']=[]
          
          #image name
          img_context={}
          img_context['image_name']=name
          write_json_context['info'].append(img_context)
          
          for i in range(count):
              bbox_dict = {}
              cls = data[i][0]
              x = data[i][1]
              y = data[i][2]
              w = data[i][3]
              h = data[i][4]
              score = data[i][5]
              cls,x,y,w,h,score=int(cls),float(x),float(y),float(w),float(h),float(score)
              x=x*self.W
              y=y*self.H
              w=w*self.W
              h=h*self.H
              bbox_dict['category_name']=self.class_name[cls] 
              bbox_dict['score']=score
              bbox_dict['bbox']=[x,y,w,h]
              write_json_context['annotations'].append(bbox_dict)  
          json_name = str(os.path.splitext(name)[0]) 
          json_name=json_name +'.json'
          json_name = os.path.join(self.save_json_path,json_name)
          with open(json_name,'w') as fw: 
               json.dump(write_json_context,fw)
              
if __name__=='__main__':
   j=json_result()
   t1=float(j.get_time_stamp())
   print(t1)
   name='1998.png'
   count=2
   data=[[0,0.940625,0.208333,0.11875,0.238889,0.5],[0,0.933333,0.193056,0.13125,0.225,0.7]]
   j.json_add(name,data,count)
   t2=float(j.get_time_stamp())
   print(t2)
   t=float(t2-t1)
   print('time:',t)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将yolov5检测结果保存成json文件 的相关文章

  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • 使用 Pycharm 在 Windows 下启动应用程序时出现 UnicodeDecodeError

    问题是当我尝试启动应用程序 app py 时 我收到以下错误 UnicodeDecodeError utf 8 编解码器无法解码位置 5 中的字节 0xb3 起始字节无效 整个文件app py coding utf 8 from flask
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • 酸洗过程是确定性的吗?

    对于特定的输入值 Pickle 是否总是产生相同的输出 我想当腌制具有相同内容但不同插入 删除历史记录的字典时可能会出现问题 我的目标是使用 Pickle 和 SHA1 创建函数参数的 签名 以实现 memoize 我想当腌制具有相同内容但
  • 如果值在列表 pandas 中,则布尔向量

    在 pandas 中创建布尔向量来测试值很容易 例如 DF a gt 10 但是你怎么写 DF a in list 根据某个列表或其他列表中系列中每个值的成员资格生成布尔向量 我收到一个值错误 我知道我可以非常简单地循环数据 但是不必这样做
  • Pandas loc 有条件的替代方案

    我计划提高非 Pandas 开发人员的可读性 我有以下内容workingPython 代码使用 loc new value stackoverflow s query nbc SUGGESTED suggested QUERY query

随机推荐

  • 2021-04-14

    Leetcode 两数相加 给你两个 非空 的链表 表示两个非负的整数 它们每位数字都是按照 逆序 的方式存储的 并且每个节点只能存储 一位 数字 请你将两个数相加 并以相同形式返回一个表示和的链表 你可以假设除了数字 0 之外 这两个数都
  • PS 更换证件照背景色

    哈喽 各位小伙伴 今天我们来学习一下如何更换证件照背景色 常见证件照 常见的证件照一般有白色 蓝色和红色三种样式 我们拍证件照一般只拍一种 为了节省支出 其他两种颜色就需要我们自己调色处理了 蓝底变红底 这里以蓝底证件照为例 首先打开PS
  • java 浮点数 精度_Java中浮点数丢失精度的解决方案

    注 直接将double类型作为参数利用构造方法获得的BigDecimal对象也是不精确的 2 方法介绍 获取小数点后位数 int scale Returns the scale of this BigDecimal 注 涉及到无限小数的点后
  • HTTP协议介绍与HTTP请求详解

    HTTP 是什么 HTTP 全称为 超文本传输协议 是一种应用非常广泛的 应用层协议 所谓 超文本 的含义 就是传输的内容不仅仅是文本 比如 html css 这个就是文本 还可以是一些 其他的资源 比如图片 视频 音频等二进制的数据 HT
  • 数据导入与预处理

    数据预处理总述 etl 抽取 转换 加载 大数据项目开发流程 数据采集 数据预处理 数据存储 数据分析挖掘 数据可视化 背景 数据质量问题 准确性 完整性 一致性 可信性 可解释性 时效性 相关性 准确性 数据是正确的 数据存储在数据库中的
  • 无内鬼来点干货,银行java开发面试题(含答案)

    目录 前言 1 在多线程环境中使用HashMap会有什么问题 在什么情况下使用get 方法会产生无限循环 2 不重写Bean的hashCode 方法是否会对性能带来影响 3 对于一个不可修改的类 它的每个对象是不是都必须声明成final的
  • luci页面“save&apply”的实现分析

    页面上配置的 保存 应用 功能的实现 最终调用到 etc config ucitrack的配置文件 例如配置无线时 对应ucitrack配置文件中的config network option init network list affect
  • ThreadLocal的使用

    当使用ThreadLocal维护变量时 ThreadLocal为每个使用该变量的线程提供独立的变量副本 所以每一个线程都可以独立地改变自己的副本 而不会影响其它线程所对应的副本 演示代码 package com oa public clas
  • Python file"文件"常用方法(三):读+写+刷新-write()、writelines()、read()、readline()、readlines()、flush()

    一 write 方法 将字符串写入文件 返回的是写入的字符长度 write 方法可将任何字符串写入一个打开的文件 需要重点注意的是 Python字符串可以是二进制数据 而不是仅仅是文字 在文件关闭前或缓冲区刷新前 字符串内容存储在缓冲区中
  • Anaconda3 环境下安装Open3D(自学笔记)

    介绍 Open3D是一个开源库 支持快速开发处理3D数据的软件 Open3D的核心功能包括 3D数据结构 3D数据处理算法 场景重建 表面对齐 3D可视化 基于物理的渲染 PBR 支持PyTorch TensorFlow 支持GPU加速处理
  • Docker安装JDK(二)

    安装的两种方式 通过已有的镜像直接pull安装 自己通过dockerfile等命令打包一个镜像安装 此种方式我们到已有镜像满足不了自身需求时使用 本章是根据第一种方式安装的 根据文章docker安装指定版本的tag镜像得到安装JDK的Doc
  • verilog 学习笔记 —— 时序逻辑 Sequential Logics (Latches and Flip-Flops 锁存器和触发器)

    1 D flip flop D触发器 module top module input clk Clocks are used in sequential circuits input d output reg q Use a clocked
  • 轻松学会Java导出word,一篇文章就够了!

    很多小伙伴在工作中 可能又这样一个需求 根据word模板去填充数据 变成我们想要的word文档 这是很多刚进入职场的小白都会碰到的需求 当遇上这种需求 我们可以通过这篇文章要讲的poi tl 来做处理 导入依赖
  • Centos7 安装部署Kubernetes(k8s)集群过程

    1 系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7 9 Docker version 20 10 12 x86 64 2 前言 如下图描述了软件部署方式的变迁 传统部署时代 虚拟化部署时
  • 用Node.js搭建一个简单Web服务器

    Node js是基于Chrome V8引擎的JavaScript运行时环境 它允许我们在服务器端运行JavaScript代码 这让我们可以用JavaScript构建Web服务器 处理请求和响应 我们一起探索了如何用Node js搭建一个简单
  • 数据结构——链表课后习题解答

    学习完链表 做了一遍题 码完代码 能跑的都跑了一遍 检验了一下 答案若有错误 欢迎指出 感谢 以下是题目和答案 以下题目若没有指出 全是用单向链表 目录 1 逆序一个链表 2 如何判断一个链表是否有环 3 求链表的中间节点 要求只用一重循环
  • 【speech&nlp】如何实现总体数据按照长短排序,同样长度数据随机排序

    在做speech nlp任务时 经常有这样一个需求 假设有一个数据集 有1000条数据 但是只有100种长度 所以必然存在某些数据是一样长的 我们想要让总体按照长短排序 但是同样长的数据要随机排序 经过了这个操作 再分batch 这样的效果
  • jmeter做接口压力测试_jmeter接口性能测试

    jmeter是apache公司基于java开发的一款开源压力测试工具 体积小 功能全 使用方便 是一个比较轻量级的测试工具 使用起来非常简单 因为jmeter是java开发的 所以运行的时候必须先要安装jdk才可以 jmeter是免安装的
  • 解决vscode找不到Python自定义模块,报错No module named ‘xxx‘

    笔者最近在学习python过程中 把在pycharm运行成功的项目放在vscode中 发现一些报错 比如找不到笔者自定义的模块 参考了一些说法与办法 现将解决方法记录于此 前言 vscode之所以找不到自定义模块 与其PYTHONPATH有
  • 将yolov5检测结果保存成json文件

    将yolov5检测结果保存成json文件 每帧图片对应一个json文件 json文件中包含图片名称 检测到的bbox信息 分类结果 中心坐标和置信度 函数json add以图片名 该图像内的所有bbox信息 以及bbox数量为输入 在yol