前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Yolo实用指南(step by step)之二labelme进行数据标注

Yolo实用指南(step by step)之二labelme进行数据标注

作者头像
python与大数据分析
发布2022-12-13 09:53:50
1.7K0
发布2022-12-13 09:53:50
举报

在机器学习和神经网络中,关于猫狗的识别就像各语言的hello world一样,我也不例外,神经网络是一种监督学习方法,预想取之必先与之,所以首先是数据标注,通过labelme进行数据标注,将图片和标签进行关联,再通过神经网络对图片和标签进行训练也就是学习的过程,最后通过测试集进行模型预测也就是验证的过程。

题外话,数据标注现在已经成了一门产业,无论是图像识别,还是自然语言处理,还是语音文字互转,

猫狗数据集的下载链接如下:https://pan.baidu.com/s/1tJQIY0ob2EyQn3cDipPkow?pwd=7gch

提取码:7gch

猫狗数据集包含两个目录,一个是训练集目录一个测试集目录。

训练集目录有25000张照片, 文件名格式为cat/dog+序号的方式,混合放置在同一目录

测试集目录有12500 张照片,文件名均为序号,猫狗照片混合放置。

照片太多了,而且我们只是进行数据标注测试,确保最小的数据集即可,按照标注的要求,至少50张照片起,因此在训练集中找各25张猫狗照片。

数据标注目录的设定,我是参考了一下网上的要求:首先设定catdog作为根目录,下面依此建如下目录:

img_data: 存放你要标注的所有图片

data_annotated: 存放后续标注好的所有json文件

label.txt: 所有类别

关于labelme的运行目录很有讲究,建议在catdog目录下运行labelme命令,并指定labels选项,这样可以将label.txx的label指定到labelme的label list中。

代码语言:javascript
复制
(venv) PS D:\JetBrains\PycharmProjects\pytorch38\yolov5\catdog> labelme --labels label.txt

labelme是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具,人们可以使用该工具创建定制化标注任务或执行图像标注。

菜单栏功能部分:

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:是否显示放大镜,点击即可运行。默认会捕捉鼠标附近2020的区域,放大至100100,显示在图片右下角(需注意图片的大小,因为会在图片右下角显示100100)

Zoom In:放大图片,点击或者快捷键即可运行。默认会放大图片至1.2倍。

Zoom Out:缩小图片,点击或者快捷键即可运行。默认会缩小图片至0.8倍。

Original Size:图片恢复至原始图片大小,点击或者快捷键即可运行。会使图片按照原始大小显示。

Fit Window:图片宽度适应中心窗口,点击或者快捷键即可运行。会使图片按照中心窗口宽度显示

右侧工具栏从上到下依次是:

1、Flags列表,当前图片的类别标签选择,具体操作可以参考这篇博客;

2、Label List,记录使用过的所有标签;

3、Polygon Labels,当前图片中包含的掩码标签;

4、File List,打开的所有文件,有对应的.json文件时,该文件前打了√。

执行完毕刚才的命令后,可以看到label list中出现了dog 和 cat。

通过open dir选择要标注的图片目录,默认为第一张开始

通过create Polygons开始标注,标注完成后选择label

设定change output dir目录,即标注后的json文件存储的路径,默认和图片名称是一致的,打开json文件可以看到版本号,flags,shapes是个数组,包括了label和points,以及图片的大小、文件路径以及二进制数据。

代码语言:javascript
复制
{
  "version": "5.0.2",
  "flags": {},
  "shapes": [
    {
      "label": "cat",
      "points": [
        [
          133.00733496332518,
          110.71393643031786
        ],
        [
          145.23227383863082,
          141.2762836185819
        ],
        [
          141.320293398533,
          162.5476772616137
        ],
        [
          155.99022004889977,
          185.04156479217605
        ],
        [
          148.65525672371638,
          206.0684596577017
        ],
        [
          131.05134474327627,
          207.04645476772617
        ],
        [
          118.09290953545232,
          224.89486552567237
        ],
        [
          119.559902200489,
          232.47432762836186
        ],
        [
          151.34474327628362,
          233.69682151589242
        ],
        [
          186.79706601466992,
          204.84596577017115
        ],
        [
          193.8875305623472,
          214.38141809290954
        ],
        [
          176.52811735941322,
          223.42787286063572
        ],
        [
          172.6161369193154,
          234.6748166259169
        ],
        [
          196.0880195599022,
          247.38875305623472
        ],
        [
          198.0440097799511,
          247.14425427872862
        ],
        [
          226.89486552567237,
          227.82885085574574
        ],
        [
          294.37652811735944,
          211.93643031784842
        ],
        [
          287.7750611246944,
          227.3398533007335
        ],
        [
          317.6039119804401,
          231.74083129584352
        ],
        [
          349.38875305623475,
          219.2713936430318
        ],
        [
          356.7237163814181,
          200.20048899755503
        ],
        [
          351.3447432762836,
          188.95354523227385
        ],
        [
          345.96577017114913,
          149.83374083129584
        ],
        [
          349.38875305623475,
          112.18092909535453
        ],
        [
          352.8117359413203,
          77.21760391198045
        ],
        [
          357.70171149144255,
          47.877750611246945
        ],
        [
          362.1026894865526,
          26.850855745721272
        ],
        [
          342.0537897310514,
          15.114914425427873
        ],
        [
          328.8508557457213,
          44.210268948655255
        ],
        [
          314.42542787286067,
          97.51100244498778
        ],
        [
          315.158924205379,
          128.07334963325184
        ],
        [
          258.679706601467,
          129.54034229828852
        ],
        [
          219.80440097799513,
          109.49144254278728
        ],
        [
          194.3765281173594,
          122.93887530562348
        ],
        [
          179.95110024449878,
          118.53789731051346
        ],
        [
          173.83863080684597,
          120.00488997555013
        ]
      ],
      "group_id": null,
      "shape_type": "polygon",
      "flags": {}
    }
  ],
  "imagePath": "..\\img_data\\cat.0.jpg",
  "imageData": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA。。。。。。/9k=",
  "imageHeight": 374,
  "imageWidth": 500
}

继续标注猫,可以看到图片中有五只猫,打了5个猫的label

接下来标注狗,依此类推。

花了将近一个小时,标注完成了25只猫和25只狗。

后续将对labelme中flags和label list的差异进行详细解读和说明。

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

本文分享自 python与大数据分析 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com