一、标注概述
Labelme是一个基于Web的图像标注工具,通过Labelme可以将图像标注成需要的任意形式,同时还可以生成标注数据集。在机器学习和深度学习领域,标注是非常重要的一环,因为只有准确、高质量的标注数据集才能保证机器学习和深度学习的模型效果。
这里主要介绍Labelme的安装和使用,方便大家快速上手标注工作。
二、Labelme安装与配置
Labelme可以通过pip命令进行安装:
pip install labelme
安装成功后,运行命令:
labelme
即可启动Labelme。
三、Labelme标注基本流程
四、Labelme标注高级用法
五、样例代码
下面是一个简单的代码实现,可以对图片进行标注,并将结果保存成json文件。
import json
import os
import numpy as np
import base64
import cv2
from labelme import utils
from labelme._version import __version__ as labelme_version
def main():
data = {}
data['version'] = labelme_version
data['flags'] = {}
data['imagePath'] = 'test_image3.jpg'
# 读入图片
img_name = 'test_image3.jpg'
img = cv2.imread(img_name)
data['imageHeight'] = img.shape[0]
data['imageWidth'] = img.shape[1]
# 读入标注
shapes = []
with open('test_image3.json') as f:
json_data = json.load(f)
for i in json_data['shapes']:
label = i['label']
points = i['points']
group_id = i['group_id']
shape_type = i['shape_type']
points_arr = np.array(points)
shapes.append({'label': label, 'points': points_arr.tolist(),
'group_id': group_id, 'shape_type': shape_type,
'flags': {}})
# 构建结果
data['shapes'] = shapes
img_str = cv2.imencode('.jpg', img)[1].tostring()
data['imageData'] = base64.b64encode(img_str).decode('utf-8')
# 保存结果
with open('result.json', 'w') as f:
json.dump(data, f)