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

将yolo系列中的类别转为字典或者list

要将YAML文件中的内容读取并转换为字典,特别是针对names部分,你可以使用Python的PyYAML库。以下是一个示例代码,展示了如何读取YAML文件并将names部分转换为字典:

  1. 首先,确保你已经安装了PyYAML库。如果没有安装,可以使用以下命令进行安装:
pip install pyyaml
  1. 然后,使用以下Python代码读取YAML文件并转换names为字典:
import yaml

# 读取YAML文件
with open('path_to_your_yaml_file.yaml', 'r', encoding='utf-8') as file:
    data = yaml.safe_load(file)

# 提取names部分并转换为字典
names_dict = {int(key): value for key, value in data['names'].items()}

# 打印结果
print(names_dict)

在上面的代码中,path_to_your_yaml_file.yaml应该替换为你的YAML文件的实际路径。yaml.safe_load(file)函数用于安全地加载YAML文件内容到Python对象中。然后,通过字典推导式,我们将names部分从YAML格式转换为Python字典,其中键是整数(从字符串转换而来),值是对应的类别名称。

假设你的YAML文件名为dataset.yaml,并且位于当前工作目录中,那么代码应该修改为:

import yaml

# 读取YAML文件
with open('dataset.yaml', 'r', encoding='utf-8') as file:
    data = yaml.safe_load(file)

# 提取names部分并转换为字典
names_dict = {int(key): value for key, value in data['names'].items()}

# 打印结果
print(names_dict)

运行这段代码后,names_dict将包含如下内容:

{0: 'person', 1: 'bicycle', 2: 'car', 3: 'motorcycle', 4: 'airplane'}

这样,你就成功地将YAML文件中的names部分转换为了Python字典。

示例:

import yaml

# 读取YAML文件
with open('data/coco.yaml', 'r', encoding='utf-8') as file:
    data = yaml.safe_load(file)

# 提取names部分并转换为字典
names_dict = {value:int(key)  for key, value in data['names'].items()}

# 打印结果
print(names_dict)

运行结果:

{'person': 0, 'bicycle': 1, 'car': 2, 'motorcycle': 3, 'airplane': 4, 'bus': 5, 'train': 6, 'truck': 7, 'boat': 8, 'traffic light': 9, 'fire hydrant': 10, 'stop sign': 11, 'parking meter': 12, 'bench': 13, 'bird': 14, 'cat': 15, 'dog': 16, 'horse': 17, 'sheep': 18, 'cow': 19, 'elephant': 20, 'bear': 21, 'zebra': 22, 'giraffe': 23, 'backpack': 24, 'umbrella': 25, 'handbag': 26, 'tie': 27, 'suitcase': 28, 'frisbee': 29, 'skis': 30, 'snowboard': 31, 'sports ball': 32, 'kite': 33, 'baseball bat': 34, 'baseball glove': 35, 'skateboard': 36, 'surfboard': 37, 'tennis racket': 38, 'bottle': 39, 'wine glass': 40, 'cup': 41, 'fork': 42, 'knife': 43, 'spoon': 44, 'bowl': 45, 'banana': 46, 'apple': 47, 'sandwich': 48, 'orange': 49, 'broccoli': 50, 'carrot': 51, 'hot dog': 52, 'pizza': 53, 'donut': 54, 'cake': 55, 'chair': 56, 'couch': 57, 'potted plant': 58, 'bed': 59, 'dining table': 60, 'toilet': 61, 'tv': 62, 'laptop': 63, 'mouse': 64, 'remote': 65, 'keyboard': 66, 'cell phone': 67, 'microwave': 68, 'oven': 69, 'toaster': 70, 'sink': 71, 'refrigerator': 72, 'book': 73, 'clock': 74, 'vase': 75, 'scissors': 76, 'teddy bear': 77, 'hair drier': 78, 'toothbrush': 79}

http://www.kler.cn/a/430636.html

相关文章:

  • Linux复习4——shell与文本处理
  • vue3标签中的ref属性如何使用$refs获取元素
  • 5、mysql的读写分离
  • linux蓝牙模块和手机配对
  • 利用Spring Cloud Gateway Predicate优化微服务路由策略
  • 如何打造用户友好的维护页面:6个创意提升WordPress网站体验
  • MongoDB靶场(手工注入)攻略
  • UART串口通讯---STM32
  • 初次使用uniapp编译到微信小程序编辑器页面空白,真机预览有内容
  • 2024.12.10总结
  • zsh配置
  • Word中的公式域
  • SQL项目实战与综合应用——项目设计与需求分析
  • 鸿蒙面试---1208
  • Muduo网络库解析---事件循环模块
  • Java 基础之 XQuery:强大的 XML 查询语言
  • 【C++指南】类和对象(七):友元
  • html小白初学
  • go语言zero框架对接阿里云消息队列MQ的rabbit的配置与调用
  • Java项目--仿RabbitMQ的消息队列--需求分析
  • PVE修改IP地址
  • 基于 SSM 的个性化商铺系统:先进架构保障系统稳定性
  • el-table手动触发懒加载
  • 【优选算法】哈希表
  • 文件下载和图片预览 Blob FileReader
  • elementUI修改table样式