Labelme的安装及使用教程(手把手教会,适合小白)

简介:LabelMe是一款广泛使用的图像标注工具,主要用于计算机视觉领域的数据准备。它可以帮助用户轻松地在图像上标注目标对象,并生成可用于训练机器学习模型的数据集。LabelMe支持多种类型的标注,包括边界框(bounding boxes)、多边形(polygons)、点等。

1.安装

  • 激活已有python环境后,使用pip安装 labelme

pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 安装labelme 依赖的其他 Python库,如 PyQt5Pillownumpy
    pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
    ......

2.使用教程

  • 安装完成后,键入labelme自动打开操作界面

  • 点击打开目录选中自己的数据集后,点击编辑进行标注

    (对于关键点任务,选择创建控制点即可)

  • 点击保存json文件                                                                                                                                                                             JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。
  •              该json文件描述该图像中有两个被标注的对象,一个汽车和一个人,框选在一个矩形区域内,并且提供了这些矩形的左上角和右下角坐标。

  • 将json文件转项目所需格式                                                                                                                                                                                                                                                               以yolo系列项目为例,yolo所需txt文件格式如下:
  • json转yolo代码如下:

    import json
    import os
    
    # 为了提高计算效率和简化模型处理,用数字表示类别
    label_translate_dict = {
        "car": "0",
        "person": "1"
    }
    
    
    # 框xyxy的坐标转换为xywh,因为yolo读取的时xywh坐标
    def xyxy2xywh(size, box):  # (xmin,ymin)左上角,(xmax,ymax)右下角
        dw = 1. / size[0]  # 1/w
        dh = 1. / size[1]  # 1/h
        x = (box[0] + box[2]) / 2 * dw
        y = (box[1] + box[3]) / 2 * dh
        w = (box[2] - box[0]) * dw
        h = (box[3] - box[1]) * dh
        return [x, y, w, h]  # 返回的都是标准化后的值
    
    
    def json2yolo(path, save_path):
        txt_name = os.path.basename(path)  # 返回path最后文件名
        txt_name = txt_name.replace('.json', '.txt')
        with open(path, 'r') as f:
            data = json.load(f)  # 读取到这个文件所有内容,并返回字典dict格式
            h = data['imageHeight']
            w = data['imageWidth']
            res = []  # 创建用于写入的列表
            for item in data['shapes']:  # (打开json文件就可以明白)
                label = item['label']
                points = item['points']
                if len(points) == 2:  # json的框
                    xmin = min(points[0][0], points[1][0])
                    ymin = min(points[0][1], points[1][1])
                    xmax = max(points[0][0], points[1][0])
                    ymax = max(points[0][1], points[1][1])
                    box = [float(xmin), float(ymin), float(xmax), float(ymax)]
                    # 将x1, y1, x2, y2转换成yolo所需要的x, y, w, h格式
                    bbox = xyxy2xywh((w, h), box)
                    if label in label_translate_dict:
                        class_id = label_translate_dict[label]
                        res.append(f"{class_id} {' '.join(str(x) for x in bbox)}")
                    else:
                        print(f"Warning: Label '{label}' not found in label_translate_dict")
    
            # 写入目标文件中,格式为 id x y w h
            with open(os.path.join(save_path, txt_name), 'w') as out_file:
                for line in res:
                    out_file.write(line + '\n')
            out_file.close()
    
    
    if __name__ == '__main__':
        # json格式数据路径
        path = r"C:\Users\22857\Desktop\教培\data\json"  # 转换成txt的json文件,替换成自己的
        save_path = r'C:\Users\22857\Desktop\教培\data\txt'  # txt保存根目录,替换成自己的
        json_names = os.listdir(path)
        for json_name in json_names:
            json2yolo(os.path.join(path, json_name), save_path)  # json转换yolo格式的坐标
    

    转后格式如下:

安装labelme的教程如下: 1. 首先,确保已经安装了Anaconda。如果没有安装,请按照之前的博客【必备操作】Windows Anaconda3 TensorFlow安装教程安装。 2. 打开Anaconda Prompt,创建一个名为labelme的虚拟环境,使用以下命令: ``` conda create -n labelme ``` 3. 激活虚拟环境,使用以下命令: ``` conda activate labelme ``` 4. 下载并安装labelme,使用以下命令: ``` pip install labelme==3.16.7 ``` 如果想要使用最新版本的labelme,可以使用以下命令进行安装: ``` pip install git https://github.com/wkentaro/labelme.git ``` 请注意,以上命令适用于Python 3.6版本。如果需要安装Python 2.7版本的labelme,可以使用以下命令: ``` conda create --name=labelme python=2.7 activate labelme conda install -c conda-forge pyside2 pip install labelme ``` 这些步骤将帮助您在Anaconda环境中安装labelme。希望对您有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用Anaconda安装labelme](https://blog.csdn.net/Titanicw/article/details/127532441)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【必备操作】图像标注工具:Labelme 安装使用教程](https://blog.csdn.net/zhangyonghui007/article/details/93488166)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值