数据标注-labelme标注多边形

1.安装labelme及使用

anaconda prompt下输入命令:

pip install labelme

下载成功后,anaconda prompt输入以下命令打开:

labelme

打开软件界面,按这个按钮就是标注了 

 

标注完多边形后双击鼠标左键表示完成标注。

然后crtl+s保存

同目录下生成json文件:

用pycharm直接打开这个json文件:

 可以看到label就是我们写的标签,points是我刚刚标的多边形的四个点。

2.解析json文件为txt文件


def read_json_save_to_txt():
    import json
    import os
    from glob import glob

    dir_json = r"F:\\Projects\\study_python\\images\\"  # json文件的目录

    jsons = glob(dir_json + "*.json", recursive=False)  # 搜寻该目录下所有后缀名为.json的文件路径,改为**/*.json recursive=True为所有子目录的
    all_files = glob(dir_json + "*.*", recursive=False)

    images = list(set(all_files).difference(set(jsons)))  # all_files中有而jsons中没有的,就是图片

    with open(dir_json+'points_data.txt', "w") as txt:
        for file in jsons:
            with open(file, 'r') as load_f:
                load_dict = json.load(load_f)
                # print("load_dict:", load_dict)
                label = load_dict["shapes"][0]["label"]  # 读取json中的标签信息
                points = load_dict["shapes"][0]["points"]  # 读取json中的点的信息
                points = [int(j) for i in points for j in i]  # 所有的点化为整数

                for i in images:
                    if file.split(".")[0] == i.split(".")[0]:
                        txt.writelines("{0},{1},{2}\n".format(i, " ".join(str(i) for i in points), label))
                        # print(i)

使用这个函数,只要指定变量dir_json为json文件的目录,运行此函数,就会在你的数据文件夹下生成一个txt文件:

 

从txt文件读取信息: 

# 读取txt内容的代码
with open("images/points_data.txt", "r") as f:
    files = f.readlines()
    for i in files:
        image_path = i.split(",")[0]
        points = i.split(",")[1]
        label = i.split(",")[2].strip()
        print("image_path: {0}  points: {1}  label: {2}".format(image_path, points, label))

### LabelMe 数据标注工具使用指南 #### 安装LabelMe 为了能够在Windows 10上顺利安装并使用LabelMe,推荐通过Anaconda环境来管理依赖包。创建一个新的虚拟环境,并激活该环境之后,可以通过pip而不是Conda直接安装LabelMe以避免打开失败的问题[^4]。 ```bash # 创建新的Python虚拟环境(假设已安装anaconda) conda create -n labelme_env python=3.8 conda activate labelme_env # 使用pip安装labelme pip install labelme ``` #### 运行LabelMe进行数据标注 启动LabelMe应用程序后,在特定的工作目录内操作有助于更好地管理和保存标签文件。例如在一个名为`catdog`的项目文件夹里执行命令时加上`--labels`参数指向自定义标签列表文件(label.txt),这能帮助预先加载所需的类别名称至界面中的标签栏中以便于后续的选择和应用[^3]: ```bash labelme --labels labels.txt ``` #### 利用高效标记功能支持大规模数据预处理 针对大量图片的数据集做初步筛选与整理工作时,LabelMe内置了一系列快捷键以及交互式的绘图组件使得绘制边界框、多边形或者其他形状变得简单直观;同时支持拖拽导入本地相册里的照片批次上传待编辑项,极大提高了工作效率[^1]。 #### 将LabelMe JSON转为其他格式 完成图像上的目标检测任务所需的标准格式转换过程也得到了优化。借助第三方库如`labelme2datasets`可实现自动化地把原生导出的结果转变为适合训练模型读取的形式(Pascal VOC 或 COCO)[^2]。以下是简单的调用方式示例代码片段用于展示如何轻松集成进现有流程当中: ```python from labelme2datasets import convert_labelme_jsons_to_coco,convert_labelme_jsons_to_voc # 转换为COCO格式 convert_labelme_jsons_to_coco(input_dir='path/to/json', output_file='output.json') # 转换为VOC格式 convert_labelme_jsons_to_voc(json_input_dir='json/path/', voc_output_dir='voc/output/') ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值