前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >labelme:图像数据标注

labelme:图像数据标注

作者头像
冷冻工厂
发布2023-02-27 11:31:15
4.2K0
发布2023-02-27 11:31:15
举报

导读

深度学习第一步就是制作数据集,手动去标注一些数据。本文将介绍一个用于图像数据标注的软件:labelme,并介绍它的安装方法,使用方法等。

1. labelme

labelme[1]是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像注释工具,它是用PythonPyQT编写的,用于图像标注。

  • 对图像进行多边形,矩形,圆形,多段线,线段,点形式的标注(可用于目标检测,图像分割,等任务)。
  • 对图像进行进行 flag 形式的标注(可用于图像分类 和 清理 任务)。
  • 视频标注
  • 生成 VOC 格式的数据集
  • 生成 COCO 格式的数据集

2. 安装

  • 利用conda安装
代码语言:javascript
复制
# 新建环境
conda create -n labelme python=3

# 激活环境
conda activate labelme

# 安装labelme
conda install labelme -c conda-forge
  • Docker安装
代码语言:javascript
复制
# on macOS
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" &
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=docker.for.mac.host.internal:0 -v $(pwd):/root/workdir wkentaro/labelme

# on Linux
xhost +
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=:0 -v $(pwd):/root/workdir wkentaro/labelme
  • Ubuntu
代码语言:javascript
复制
sudo apt-get install labelme

# or
sudo pip3 install labelme

# or install standalone executable from:
# https://github.com/wkentaro/labelme/releases

3. 使用

3.1. 命令行运行

代码语言:javascript
复制
# 确保已经激活虚拟环境
labelme

3.2. 程序主界面

运行上面命令后,正常情况下,会出现下面窗口。

程序主界面

程序界面[2]主要分为六个区域,最上面为菜单栏,最左边为工具栏,中间为中心窗口(展示图片以及进行标注),右侧上方为展示标注标签的窗口,右侧下方为展示文件列表的窗口,最下面为状态栏。菜单栏、工具栏以及在中心窗口右键均可以选择命令进行执行,右侧的标签列表可以进行交互来进行与标注相关的动作,如切换、删除、编辑、隐藏标注等,右侧文件列表亦可进行交互来切换文件等。

3.3. 程序功能说明:

  • 菜单栏功能部分:
    • Open : 打开图片文件,通过点击命令或者快捷键即可运行。打开文件后,右侧文件列表会显示在同一目录下的所有文件,点击文件列表中的文件即可进行切换。图片格式支持jpg、png、gif、bmp、jpeg等
  • Next Image:切换至下一张图片,若无下一张图片,会弹出窗口提醒用户,通过点击命令或者快捷键即可运行。3d状态下会切换当前聚焦视角的图片,可通过鼠标点击切换聚焦视角。
    • 2d状态下:创建矩形,通过点击或者快捷键即可运行。在想要进行标注的区域,点击鼠标开始绘制,在移动鼠标的过程中,会同步显示矩形边框,绘制完毕时,再点击鼠标即可。
    • 3d状态下:创建长方体,通过在任意视角的图片点击即可开始该视角下的矩形框的绘制,再次点击鼠标该视角下矩形框即绘制完毕,这时在其他视角,可以通过右键聚焦视角,并进行图片的切换,当其他视角下有最开始创建的矩形框时,移动鼠标即可进行其他视角下的矩形框的绘制,绘制完毕时再次点击鼠标即可,长方体绘制完毕后,按下回车键,键入标注文字,即可添加标注。
    • 2d状态下:创建画刷形状,通过点击或者快捷键即可运行。创建画刷形状用于进行分割标注,在想要进行标注的区域,点击鼠标即可进行绘制,绘制完毕后按下回车键即可键入标注文字,添加标注。
    • 3d状态下:创建画刷形状,在任意视角任意图片直接点击鼠标进行绘制即可,绘制完毕后按下回车键,键入标注文字即可添加标注。
    • Prev Image :切换至上一张图片,若无上一张图片,会弹出窗口提醒用户,通过点击命令或者快捷键即可运行。3d状态下会切换当前聚焦视角的图片,可通过鼠标点击切换聚焦视角。
    • Open Dir:打开文件夹,通过点击或者快捷键即可运行。打开文件夹默认会显示文件夹中的第一张图片,同时右侧文件列表也会显示文件夹里的所有图片,点击文件列表中的文件可以进行文件切换。
    • Import:导入标注文件,通过点击即可运行。标注文件的样例文件请参考此处。
    • Save : 保存文件,通过点击或者快捷键即可运行。会将对标注的更改进行保存,写入默认标注文件中。
    • Close : 关闭当前文件,通过点击或者快捷键即可运行。
    • Quit : 退出程序,通过点击或者快捷键即可运行
    • Create Brush :
    • Edit Brush :编辑画刷大小,通过点击或者快捷键即可运行。默认为圆形画刷,可以改变画刷大小(注,画刷大小是以当前图片的宽度为比例)
    • Create Rectangle :
    • Create Circle:创建圆形,操作与创建矩形类似,请参考创建矩形。
    • Create Polygons:创建多边形,通过点击或者快捷键即可运行。在想要标注的区域,点击鼠标开始绘制,在想要绘制的多边形顶点处再次点击鼠标,继续绘制,绘制完毕后,按下回车键。(即文档中要求的绘制闭合折线)
    • Create Curve:创建平滑曲线,通过点击或者快捷键即可运行。在想要标注的区域,点击鼠标开始绘制,接着自由移动鼠标即可,绘制完毕后按下回车键。
    • Edit Color:编辑标注颜色,通过点击或者快捷键即可运行。会弹出颜色对话框,任意选颜色即可。
    • Edit Polygons:进入编辑状态,通过点击或者快捷键即可运行。点击后会进入编辑状态,在该状态下,可以对标注进行拖动,选中,撤销,重做,放大缩小等一系列操作。
    • Delete Polygons:删除标注,通过点击或者快捷键即可运行。该动作只有在编辑状态下且有标注被选中才能进行操作。
    • Edit Label:编辑标注文字,通过点击或者快捷键即可运行。该动作只有在编辑状态且有标注被选中才能进行操作。
    • Undo:撤销动作,通过点击或者快捷键即可运行。可以撤销任意步数的动作。
    • Redo:重做动作,通过点击或者快捷键即可运行。可以重做任意步数的动作。
    • Undo last point:撤销当前正在创建的标注形状,通过点击或者快捷键即可运行。会移除当前正在创建的标注形状。
    • Polygon Labels:是否显示标签列表组件,点击即可进行切换。
    • File List:是否显示文件列表,点击即可进行切换。
    • 3D:是否进入3D模式,点击即可进行2d及3d状态的转换。
    • Hide Polygons:隐藏所有标注,点击即可运行。
    • Show Polygons:显示所有标注,点击即可运行。
    • Magnifier:是否显示放大镜,点击即可运行。默认会捕捉鼠标附近20\times 20的区域,放大至100\times 100,显示在图片右下角(需注意图片的大小,因为会在图片右下角显示100\times 100)
    • Zoom In:放大图片,点击或者快捷键即可运行。默认会放大图片至1.2倍。
    • Zoom Out:缩小图片,点击或者快捷键即可运行。默认会缩小图片至0.8倍。
    • Original Size:图片恢复至原始图片大小,点击或者快捷键即可运行。会使图片按照原始大小显示。
    • Fit Window:图片宽度适应中心窗口,点击或者快捷键即可运行。会使图片按照中心窗口宽度显示。
  • 工具栏功能部分:
    • 工具栏命令即为菜单栏命令的部分,请参考菜单栏命令
  • 状态栏功能部分:
    • 部分命令执行时会在状态栏处显示。
  • 鼠标在图片上移动时,会同步在状态栏处显示当前鼠标的坐标。2d显示二维坐标,3d显示三维坐标。
  • 中心窗口功能部分:
    • 为方便用户交互,图片上的标注形状默认显示为不填充,即只显示边框,当鼠标进入标注形状内部时,标注形状为悬浮(hovered)状态,内部会填充颜色,当鼠标点击标注形状时,标注形状为选中(selected)状态,内部也会填充颜色,同时在标签列表窗口处也会显示标签选中状态。当标注脱离悬浮状态(unhovered)或者未选中状态(unselected)时,内部会显示不填充。对选中的标注形状即可进行一系列操作,如拖动标注形状,删除,更改等动作。
    • 2d状态下,在中心窗口点击右键亦可选择执行部分命令,方便交互。
  • 3d状态下,中心窗口分为3个视角,三个视角顺序从左至右,从上至下,分别为0,1,2。第一个视角为从上往下看的俯视视角,图片顺序为从上至下,第二个视角为正视视角,图片顺序为从后往前,第三个视角为右视视角,图片顺序为从左至右。鼠标点击视角可进行视角图片的聚焦,即切换视角。
  • 标签列表组件功能部分:
    • 在标签列表窗口中右键可以选择并执行部分命令
  • 在标签列表窗口中可以通过点击标签进行标注的选中,选中状态会同步至中心窗口中并显示标注形状填充
    • 改变标签列表窗口中标签的checkstate可以进行是否显示该标注状态的切换,checked为显示,unchecked为隐藏
    • 在中心窗口对标注的交互会在标签列表中同步更新,例如添加标注、删除标注等
  • 文件列表组件功能部分:
    • 2d状态下,在文件列表窗口中点击文件即可进行文件的切换
  • 3d状态下,由于文件的切换由中心窗口控制,因此点击不会有反应
  • 其他说明:
    • 标注文件默认名说明:在读取图片时,会读取默认标注文件,默认标注文件名与图片名相同,后缀名为json。3d状态下默认标注文件名为该文件夹下第一张图片名+“_3D”,后缀名为json。
    • 标注文件格式说明:type表明标注形状的类型,分为Brush(画刷形状),Rectangle(矩形形状),Polygons(多边形形状),Circle(圆形形状),Curve(平滑曲线形状),Brush3D(3d画刷形状),Rectangle3D(3d长方体形状);color代表标注形状颜色;label代表标注标签文字,points代表像素点位(2d存储为横纵坐标比例,3d存储为横纵坐标比例,及z方向上的顺序)radius代表画刷形状的大小或者圆形形状的大小;width代表矩形的宽;height代表矩形的高;zspan代表3d长方体在z方向上的跨度
    • 程序中使用标签列表窗口显示标签,且在点击标签时,中心窗口会同步标注形状被选中,内部会显示为填充,其中颜色也为由用户自定义。
    • examples文件夹里面有样例图片以及样例标注文件可做测试用。

参考资料

[1]

Labelme: https://github.com/wkentaro/labelme

[2]

界面介绍: "https://jameslahm.github.io/labelme/"

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 冷冻工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导读
  • 1. labelme
  • 2. 安装
  • 3. 使用
    • 3.1. 命令行运行
      • 3.2. 程序主界面
        • 3.3. 程序功能说明:
          • 参考资料
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档