Pythonは、labelme(COCO)でマークされたjsonファイルのラベルラベル名をバッチ変更します

Pythonは、labelme(COCO)でマークされたjsonファイルのラベルラベル名をバッチ変更します

ディープラーニングの実践では、labelmeラベリングソフトウェアを使用してデータセットにラベルを付けた後、ラベル名に誤ったラベルが付けられているか、変更が必要な場合、手動の変更に依存する膨大な量のデータは膨大な作業負荷になります。次のコードを参照できます。これは、ラベル名の問題を解決するのに役立ち、一括改訂に適しています。
これは、labelmeでマークされたjson形式のファイルの情報です。
開いたjsonファイルの内容
達成する必要があるのは、ラベルラベルを変更することです。これが「太陽光発電」です。ここでの位置は、辞書の下の図形キーのキー値です。図形キー値はリストです。リストの各項目は辞書で構成され、ラベル名は2番目のラベルキーのキー値です。レベル辞書。

変更されたコードは次のとおりです。具体的な説明については、コードを参照してください。


# !/usr/bin/env python
# -*- encoding: utf-8 -*-

import os
import json
from ipdb import set_trace

json_dir = './xj_json1'
json_files = os.listdir(json_dir)

json_dict = {
    
    }
# 需要修改的新名称
new_name = 'photovoltaics123'

for json_file in json_files:
    
    jsonfile = json_dir +'/'+ json_file
    # 读单个json文件
    with open(jsonfile,'r',encoding = 'utf-8') as jf:

        info = json.load(jf)
        # print(type(info))
        # 找到位置进行修改
        for i,label in enumerate(info['shapes']):
            info['shapes'][i]['label'] = new_name
        # 使用新字典替换修改后的字典
        json_dict = info
        print(json_dict) 
    # set_trace()
    # 将替换后的内容写入原文件 
    with open(jsonfile,'w') as new_jf:
        json.dump(json_dict,new_jf)       

print('change name over!')

コードを実行した後、ここでは、ラベルの名前が「photovoltaics123」に一律に変更されます。

おすすめ

転載: blog.csdn.net/qq_44442727/article/details/112785978