【labelme】数据标注工具(补充):labelme_json_to_dataset缺少info.yaml文件

在前面的博客中【Mask-RCNN】 环境配置+模型训练+测试介绍了json文件转化数据集的方法,这里重新回顾下该方法:

json文件转化数据集

下载转换工具如下
链接:https://pan.baidu.com/s/1ma-xWhadRQH4Zbuce41HkQ
提取码:r8bc
在这里插入图片描述
将该文件放在.json文件所在的目录下:
在这里插入图片描述
终端进入该目录:

cd F:\AI-python\dataset\Line_dataset\line_1\json

激活labelme环境:(数据标注工具 labelme中有详细说明。重要!重要!重要!)

conda activate labelme

输入转换指令:

start "" "test.bat"

在这里插入图片描述
每个文件夹里面有五个文件,这些是后续训练需要读取的文件。
在这里插入图片描述
但是,笔者在安装新的labelme,重新执行上述方法时,发现文件夹只生成了4个文件:
在这里插入图片描述
缺少了info.yaml文件!!!!!!
笔者查看了当前安装的labelme的版本

(labelme) C:\Users\znjt\Desktop\loss>labelme --version
labelme 4.5.6

笔者查看了labelme安装目录下的labelme_json_to_dataset.py文件,显示如下:

# labelme 4.5.6
    PIL.Image.fromarray(img).save(osp.join(out_dir, "img.png"))
    utils.lblsave(osp.join(out_dir, "label.png"), lbl)
    PIL.Image.fromarray(lbl_viz).save(osp.join(out_dir, "label_viz.png"))

    with open(osp.join(out_dir, "label_names.txt"), "w") as f:
        for lbl_name in label_names:
            f.write(lbl_name + "\n")

    logger.info("Saved to: {}".format(out_dir))


if __name__ == "__main__":
    main()

对比之前可运行的labelme 3.20.0版本的labelme_json_to_dataset.py文件,显示如下:

# 3.20.0版labelme
    PIL.Image.fromarray(img).save(osp.join(out_dir, 'img.png'))
    utils.lblsave(osp.join(out_dir, 'label.png'), lbl)
    PIL.Image.fromarray(lbl_viz).save(osp.join(out_dir, 'label_viz.png'))

    with open(osp.join(out_dir, 'label_names.txt'), 'w') as f:
        for lbl_name in label_names:
            f.write(lbl_name + '\n')
	# 缺少的部分
    logger.warning('info.yaml is being replaced by label_names.txt')
    info = dict(label_names=label_names)
    with open(osp.join(out_dir, 'info.yaml'), 'w') as f:
        yaml.safe_dump(info, f, default_flow_style=False)

    logger.info('Saved to: {}'.format(out_dir))

if __name__ == '__main__':
    main()

于是,笔者直接将4.5.6版本labelme_json_to_dataset.py文件中添加缺少的部分,并保存:

# 开头引入
    import yaml
# 后部分加上生成".yaml"文件的部分  一定注意位置
    logger.warning('info.yaml is being replaced by label_names.txt')
    info = dict(label_names=label_names)
    with open(osp.join(out_dir, 'info.yaml'), 'w') as f:
        yaml.safe_dump(info, f, default_flow_style=False)

再次运行转换指令:

start "" "test.bat"

在这里插入图片描述
此时,生成了5个转换文件,info.yaml文件不再缺少了,问题解决了。

  • 12
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值