labelme:图像数据标注
导读
深度学习第一步就是制作数据集,手动去标注一些数据。本文将介绍一个用于图像数据标注的软件:labelme
,并介绍它的装置办法,应用办法等。
1. labelme
labelme 是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像正文工具,它是用 Python
和PyQT
编写的,用于图像标注。
- 对图像进行多边形,矩形,圆形,多段线,线段,点模式的标注(可用于指标检测,图像宰割,等工作)。
- 对图像进行进行 flag 模式的标注(可用于图像分类 和 清理 工作)。
- 视频标注
- 生成 VOC 格局的数据集
- 生成 COCO 格局的数据集
2. 装置
- 利用
conda
装置
# 新建环境
conda create -n labelme python=3
# 激活环境
conda activate labelme
# 装置 labelme
conda install labelme -c conda-forge
Docker
装置
# 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
sudo apt-get install labelme
# or
sudo pip3 install labelme
# or install standalone executable from:
# https://github.com/wkentaro/labelme/releases
3. 应用
3.1. 命令行运行
# 确保曾经激活虚拟环境
labelme
3.2. 程序主界面
运行下面命令后,失常状况下,会呈现上面窗口。
程序界面次要分为六个区域,最下面为菜单栏,最右边为工具栏,两头为核心窗口(展现图片以及进行标注),右侧上方为展现标注标签的窗口,右侧下方为展现文件列表的窗口,最上面为状态栏。菜单栏、工具栏以及在核心窗口右键均能够抉择命令进行执行,右侧的标签列表能够进行交互来进行与标注相干的动作,如切换、删除、编辑、暗藏标注等,右侧文件列表亦可进行交互来切换文件等。
3.3. 程序性能阐明:
-
菜单栏性能局部:
- Open : 关上图片文件,通过点击命令或者快捷键即可运行。关上文件后,右侧文件列表会显示在同一目录下的所有文件,点击文件列表中的文件即可进行切换。图片格式反对 jpg、png、gif、bmp、jpeg 等
-
Next Image:切换至下一张图片,若无下一张图片,会弹出窗口揭示用户,通过点击命令或者快捷键即可运行。3d 状态下会切换以后聚焦视角的图片,可通过鼠标点击切换聚焦视角。
- Prev Image:切换至上一张图片,若无上一张图片,会弹出窗口揭示用户,通过点击命令或者快捷键即可运行。3d 状态下会切换以后聚焦视角的图片,可通过鼠标点击切换聚焦视角。
- Open Dir:关上文件夹,通过点击或者快捷键即可运行。关上文件夹默认会显示文件夹中的第一张图片,同时右侧文件列表也会显示文件夹里的所有图片,点击文件列表中的文件能够进行文件切换。
- Import:导入标注文件,通过点击即可运行。标注文件的样例文件请参考此处。
- Save : 保留文件,通过点击或者快捷键即可运行。会将对标注的更改进行保留,写入默认标注文件中。
- Close : 敞开以后文件,通过点击或者快捷键即可运行。
- Quit : 退出程序,通过点击或者快捷键即可运行
-
Create Brush:
- 2d 状态下:创立画刷形态,通过点击或者快捷键即可运行。创立画刷形态用于进行宰割标注,在想要进行标注的区域,点击鼠标即可进行绘制,绘制结束后按下回车键即可键入标注文字,增加标注。
- 3d 状态下:创立画刷形态,在任意视角任意图片间接点击鼠标进行绘制即可,绘制结束后按下回车键,键入标注文字即可增加标注。
- Edit Brush:编辑画刷大小,通过点击或者快捷键即可运行。默认为圆形画刷,能够扭转画刷大小(注,画刷大小是以以后图片的宽度为比例)
-
Create Rectangle:
- 2d 状态下:创立矩形,通过点击或者快捷键即可运行。在想要进行标注的区域,点击鼠标开始绘制,在挪动鼠标的过程中,会同步显示矩形边框,绘制结束时,再点击鼠标即可。
- 3d 状态下:创立长方体,通过在任意视角的图片点击即可开始该视角下的矩形框的绘制,再次点击鼠标该视角下矩形框即绘制结束,这时在其余视角,能够通过右键聚焦视角,并进行图片的切换,当其余视角下有最开始创立的矩形框时,挪动鼠标即可进行其余视角下的矩形框的绘制,绘制结束时再次点击鼠标即可,长方体绘制结束后,按下回车键,键入标注文字,即可增加标注。
- 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 文件夹外面有样例图片以及样例标注文件可做测试用。
往期举荐
本文由 mdnice 多平台公布