数据标注:语义分割数据标注工具labelme安装、使用方法

0 引言

笔者近期在利用基于深度学习的语义分割相关技术完成公司交代的任务,由于硕士阶段研究方向并非图像语义分割,因此对该领域并不熟悉,几经周折,总算找到了对应的解决办法。这里分享笔者最近正在使用的用于语义分割训练数据的标注工具,labelme的安装及使用方法,后期会继续分享相关的算法。

1 安装 

打开Anconda Prompt,分别采用以下命令进行安装。(笔者python版本为python3.6,)

conda create --name=labelme python=3.6
source activate labelme
conda install pyqt
pip install labelme

 

2 使用

(1)安装成功后,打开labelme工具

 (2)点击Create Polygons即可进行标注。标注线可以鼠标右键选择直线、圆形、长方形

(3) 解析json文件生成ground truth。python提供的命令只能解析单个文件,笔者代码能够批量解析

import os
import cv2

def json_to_image(path):
    # path = 'H:\\0\\train\\json'  # path为json文件存放的路径
    json_file = os.listdir(path)
    for file in json_file:
        print(file)
        os.system("python D:/software/Anaconda3/Scripts/labelme_json_to_dataset.exe %s"%(path + '\\' + file))

(4)解析效果展示

 

 

(5)整理img和label图到对于文件夹

import os
import cv2

def order_img_and_label(source_path,save_image_path,save_gt_path):
    if not os.path.exists(save_image_path):
        os.makedirs(save_image_path)
    if not os.path.exists(save_gt_path):
        os.makedirs(save_gt_path)
    label_dirs = os.listdir(source_path)
    for dir in label_dirs:
        if os.path.isdir(os.path.join(source_path,dir)):
            print(dir)
            for file in os.listdir(os.path.join(source_path,dir)):
                # print(file)
                if file == 'img.png':
                    print(file)
                    os.rename(os.path.join(os.path.join(source_path,dir),file),os.path.join(save_image_path,dir+'.png'))
                if file == 'label.png':
                    print(file)
                    os.rename(os.path.join(os.path.join(source_path, dir), file), os.path.join(save_gt_path, dir + '.png'))

 

3 完整代码

import os
import cv2

def json_to_image(path):
    # path = 'H:\\0\\train\\json'  # path为json文件存放的路径
    json_file = os.listdir(path)
    for file in json_file:
        print(file)
        os.system("python D:/software/Anaconda3/Scripts/labelme_json_to_dataset.exe %s"%(path + '\\' + file))

def order_img_and_label(source_path,save_image_path,save_gt_path):
    if not os.path.exists(save_image_path):
        os.makedirs(save_image_path)
    if not os.path.exists(save_gt_path):
        os.makedirs(save_gt_path)
    label_dirs = os.listdir(source_path)
    for dir in label_dirs:
        if os.path.isdir(os.path.join(source_path,dir)):
            print(dir)
            for file in os.listdir(os.path.join(source_path,dir)):
                # print(file)
                if file == 'img.png':
                    print(file)
                    os.rename(os.path.join(os.path.join(source_path,dir),file),os.path.join(save_image_path,dir+'.png'))
                if file == 'label.png':
                    print(file)
                    os.rename(os.path.join(os.path.join(source_path, dir), file), os.path.join(save_gt_path, dir + '.png'))



if __name__ == '__main__':
    # json_to_image('H:\\0\\train\\json')
    order_img_and_label('H:\\0\\train\\json','H:\\0\\train\\img','H:\\0\\train\\gt')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值