Labme软件中,将语义分割/实例分割标注的JSON文件转换为目标检测的JSON文件

Labme软件中,将语义分割/实例分割标注的JSON文件转换为目标检测的JSON文件

程序是在CHATGPT基础上自己改的

输入的json文件是标注结果,并非COCO格式,导出的json文件同样。

程序如下

# 将采用Label中多边形工具标注的用于语义分割的原始json文件转换成 用于目标检测的用矩形框标注的原始json文件
import json
import os

def convert_semantic_to_detection(input_file, output_file):
    with open(input_file, 'r') as f:
        data = json.load(f)

    # 构建目标检测的JSON结构
    detection_data = {
        'version': "5.2.0.post4",
        'flags': {},
        'shapes': [],
        'imagePath': data['imagePath'],
        'imageData': None,
        'imageHeight': data['imageHeight'],
        'imageWidth': data['imageWidth'],
    }

    for shape in data['shapes']:
        # 转换多边形为矩形
        label = shape['label']
        points = shape['points']
        x_values = [point[0] for point in points]
        y_values = [point[1] for point in points]
        x_min = min(x_values)
        y_min = min(y_values)
        x_max = max(x_values)
        y_max = max(y_values)

        # 添加矩形边界框到目标形状列表
        detection_data['shapes'].append({
            'label': label,
            'points': [[x_min, y_min], [x_max, y_max]],
            "group_id": None,
            'description': "",
            'shape_type': "rectangle",
            'flags': {}
             })

    with open(output_file, 'w') as f:
        json.dump(detection_data, f, indent=4)

    print("转换完成!")

input_path = "test"
output_path = "result"
for file_name in os.listdir(input_path):
    input_json_path = input_path + "/" + file_name
    output_json_path = output_path + "/" + file_name
  
    # 使用示例
    convert_semantic_to_detection(input_json_path, output_json_path)

其中“test”和“result”都是文件夹

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值