一、標(biāo)注概述
Labelme是一個(gè)基于Web的圖像標(biāo)注工具,通過(guò)Labelme可以將圖像標(biāo)注成需要的任意形式,同時(shí)還可以生成標(biāo)注數(shù)據(jù)集。在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域,標(biāo)注是非常重要的一環(huán),因?yàn)橹挥袦?zhǔn)確、高質(zhì)量的標(biāo)注數(shù)據(jù)集才能保證機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的模型效果。
這里主要介紹Labelme的安裝和使用,方便大家快速上手標(biāo)注工作。
二、Labelme安裝與配置
Labelme可以通過(guò)pip命令進(jìn)行安裝:
pip install labelme
安裝成功后,運(yùn)行命令:
labelme
即可啟動(dòng)Labelme。
三、Labelme標(biāo)注基本流程
四、Labelme標(biāo)注高級(jí)用法
五、樣例代碼
下面是一個(gè)簡(jiǎn)單的代碼實(shí)現(xiàn),可以對(duì)圖片進(jìn)行標(biāo)注,并將結(jié)果保存成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]
# 讀入標(biāo)注
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': {}})
# 構(gòu)建結(jié)果
data['shapes'] = shapes
img_str = cv2.imencode('.jpg', img)[1].tostring()
data['imageData'] = base64.b64encode(img_str).decode('utf-8')
# 保存結(jié)果
with open('result.json', 'w') as f:
json.dump(data, f)