一、標注概述
Labelme是一個基于Web的圖像標注工具,通過Labelme可以將圖像標注成需要的任意形式,同時還可以生成標注數(shù)據(jù)集。在機器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域,標注是非常重要的一環(huán),因為只有準確、高質(zhì)量的標注數(shù)據(jù)集才能保證機器學(xué)習(xí)和深度學(xué)習(xí)的模型效果。
這里主要介紹Labelme的安裝和使用,方便大家快速上手標注工作。
二、Labelme安裝與配置
Labelme可以通過pip命令進行安裝:
pip install labelme
安裝成功后,運行命令:
labelme
即可啟動Labelme。
三、Labelme標注基本流程
四、Labelme標注高級用法
五、樣例代碼
下面是一個簡單的代碼實現(xiàn),可以對圖片進行標注,并將結(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]
# 讀入標注
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)