最近使用FLIR开源红外数据集和yolo做训练,但是标签文件只有一个json文件,需要转为yolo需要的标签格式 ,代码如下:
from __future__ import print_function
import argparse
import glob
import os
import json
if __name__ == '__main__':
# 命令行打印参数
parser = argparse.ArgumentParser()
parser.add_argument(
"path", help='Directory of json files containing annotations') # json文件路径
parser.add_argument(
"output_path", help='Output directory for image.txt files') # 生成的txt保存路径
args = parser.parse_args()
# os.path.join 合并路径
# glob.glob 获取所有匹配的路径
json_files = sorted(glob.glob(os.path.join(args.path, '*.json'))) # 得到json文件路径下的所有json文件
for json_file in json_files:
with open(json_file) as f:
data = json.load(f) # 将json文件转化为字典
images = data['images']
annotations = data['annotations']
# 图