问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

YOLO算法学习:labelimg与labelme标注工具的安装与使用指南

创作时间:
作者:
@小白创作中心

YOLO算法学习:labelimg与labelme标注工具的安装与使用指南

引用
CSDN
1.
https://blog.csdn.net/weixin_46065248/article/details/139335896

在YOLO算法学习过程中,数据标注是一个至关重要的环节。本文将介绍两种常用的标注工具:labelimg和labelme,帮助读者快速掌握数据标注的基本方法。

常见的CV任务

四大基本任务

(a)图像分类(目标检测):一张图像中是否含某种物体

(b)物体定位(目标检测与目标识别):确定目标位置和所属类别。

(c)语义分割(目标分割和目标分类):对图像进行像素级分类,预测每个像素属于的类别,不区分个体;(所有的CUBE一个颜色)

(d)实例分割(目标分割和目标识别):定位图中每个物体,并进行像素级标注,区分不同个体;(CUBE都是不同颜色)

细节说明

目标检测(object detection)
除了要告诉输入图像中包含了哪类目前外,还要框出该目标的具体位置和大小(bounding boxes)

目标识别(objec recognition)
是指明一幅输入图像中包含的目标是谁。其输入为一幅图像在确定其类别的基础上,进一步确定这个目标是谁(比如:小明,短脚猫等)

目标分割(object segmentation)
目标分割是对目标进行像素级的目标检测,即不是用边框将目标框起来,而是需要知道哪个像素是不是属于目标的一部分

目标分类(object classification)
对于一幅图像(其中包含一个主要的对象),确定该幅图像是哪一个类别(比如:海滩,楼房)

打标工具选择

labelimg是一种矩形标注工具,常用于目标识别和目标检测,其标记数据输出为.xml和.txt

labelme是一种多边形标注工具,可以准确的将轮廓标注出来,常用于分割,其标记输出格式为json

labelImg的安装和使用

安装

在涉及上述中的图像分类,物体定位,实例分割等事项中,进行规则矩形分割可以进行labelImg的安装和使用。

github地址:https://github.com/HumanSignal/labelImg/releases

直接使用压缩包解压的方式即可解压使用,如果需使用pip install 的方式进行导入,可直接参考对应项目的REDEME部分,地址如下:https://github.com/HumanSignal/labelImg

使用

基础的使用流程为:打开文件夹,改变存储标签的地址,选择适合的标签,界面部分如下

配置操作:自动保存标签、显示标注框和标签、标注的十字架悬浮

Auto Save mode:切换到下一张图的时候,会自动保存标签。

Display Labels:会显示标注框和标签

Advanced Mode:标注的十字架会一直悬浮在窗口。

配置合适的格式,labelimg支持如下两种格式:

1 VOC标签格式,保存为xml文件

2 yolo标签格式,保存为txt文件

常用快捷键如下:

A:切换到上一张图片

D:切换到下一张图片

W:调出标注十字架

del :删除标注框框

Ctrl+u:选择标注的图片文件夹

Ctrl+r:选择标注好的label标签存在的文件夹

读取文件报错

如果在读取文件中出现上述报错,可以进行文件调整,参考下述脚本进行

import os
from tqdm import tqdm
from PIL import Image
dir_origin_path = "E:/Code/yolov8_learn/Img"
dir_save_path = "E:/Code/yolov8_learn/data"
img_names = os.listdir(dir_origin_path)
for img_name in tqdm(img_names):
    if img_name.lower().endswith(
        (
            ".bmp",
            ".dib",
            ".png",
            ".jpg",
            ".jpeg",
            ".pbm",
            ".pgm",
            ".ppm",
            ".tif",
            ".tiff",
        )
    ):
        image_path = os.path.join(dir_origin_path, img_name)
        image = Image.open(image_path)
        image = image.convert("RGB")
        if not os.path.exists(dir_save_path):
            os.makedirs(dir_save_path)
        image.save(os.path.join(dir_save_path, img_name))

示例

保存文件

标签与文本一一对应,

labelme的安装和使用

安装

在涉及上述中的图像分类,语义分割,实例分割等事项中,进行规则矩形分割可以进行labelme的安装和使用。

github地址:https://github.com/labelmeai/labelme/releases

直接使用压缩包解压的方式即可解压使用,如果需使用conda的方式进行导入,可直接参考对应项目的REDEME部分,地址如下:https://github.com/labelmeai/labelme

使用

所使用的操作以及快捷键同labelimg类似,这边不做过多赘述

示例

保存文件

小结

完成对labelimg与labelme的使用和初步了解,进行CV事项的复盘和学习,以及打标内容的学习,在打标的过程中会有一些相对便捷的操作方式,值得大家一起学习交流,这边只是简单的进行软件的安装和打标,在实际的生产过程中,可能需要进行对应标签的转化,对应脚本的其他操作,去适配我们的模型训练,这边会额外进行补充学习。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号