主要内容

开始使用图像标签

图像贴标器App提供了一种简单的方法来交互式创建各种形状,以标记为兴趣区域(ROI)标签。您可以在图像或图像序列中创建矩形,折像素,像素和多边形ROI标签和场景标签。

您可以使用标记的数据来验证或训练算法,例如图像分类器,对象检测器和语义和实例分段网络。选择标签绘图工具创建ROI标签时,请考虑您的应用程序。有关如何为应用程序选择正确的标签类型和绘图工具的详细信息,请参阅ROI标签、子标签和属性

此示例通过向您展示如何:

  • 加载未标记的数据

  • 从图像集合中手动标记图像帧。

  • 使用自动化算法自动跨图像帧标记。

  • 导出标记的地面真理数据。

ROI和场景标签定义

  • 一个ROI标签对应于矩形,折线,像素或多边形区域的目标。这些标签包含两个组件:标签名称,例如“汽车”和您创建的区域。

  • 一种现场标签描述了一个场景的性质,例如“晴朗”。您可以将此标签与框架相关联。

加载未标记的数据

您可以从文件夹中加载存储在数据存储中的图像,或加载以前的贴标程序会话。图像必须可读imread

以编程方式加载数据

以编程方式从数据存储量加载图像:

  1. 从图像文件夹中创建数据存储:

    imageFolder = fullfile(toolboxdir('vision'),'vision ','boats') imds = imageDatastore(imageFolder)

  2. 加载数据存储:

    imageLabeler (imd)

以编程方式加载图像文件夹:

imagefolder = fullfile(toolboxdir('vision'),'VisionData','船只')ImageLabeler(imageFolder)

直接从应用加载数据

从中打开应用程序应用标签,下面图像处理和计算机视觉.点击进口要加载图像或单击开放会议打开已保存的会话。

创建标签定义

定义要绘制的标签。在此示例中,您可以在应用程序中直接定义标签。从MATLAB定义标签®命令行,使用LANENDEFINITIONCREATOR.

创建ROI标签

一个ROI标签是对应于图像中的感兴趣区域(ROI)的标签。您可以定义这些ROI标签类型。

  • 矩形-围绕图像中的物体,如车辆、船只、建筑,绘制2d矩形边框标签。

  • 预计长方体- 在图像中的物体周围绘制3-D边界框标签,例如车辆,船,建筑物。

  • 线—绘制线性roi标记线,如车道边界。

  • 像素标签- 绘制像素,以标记各种类,例如道路或天空,用于语义分割。有关像素标签的更多信息,请参阅语义分割标签像素

  • 多边形- 围绕物体绘制多边形标签。您可以标记同一类的独特实例。有关绘制多边形ROI标签的详细信息和语义分段网络,请参阅使用多边形的标签对象

有关这些ROI标签定义的更多详细信息,请参阅ROI标签、子标签和属性

在这个例子中,您定义了a组用于标记船只类型,然后创建矩形ROI标签帆船和一个油轮.控制在标签期间显示ROI标签名称,请选择在徘徊总是,或从来没有来自显示ROI标签下拉菜单。

  1. 在里面ROI标签窗格中,单击标签

  2. 创建一个矩形标签类型命名帆船

  3. 还可以通过单击预览颜色来更改标签颜色。

  4. 集团下拉菜单,选择新组…命名这个组

  5. 点击好吧

    组名出现在ROI标签窗格与标签帆船创建。通过左键单击和上下拖动标签,可以将列表中的标签移动到列表中的不同位置或组。

  6. 添加第二种类型标签,选择组,然后点击标签.名字的标签油轮.点击好吧

  7. 选择帆船子标签,然后用鼠标在帆船周围画一个矩形ROI。选择油轮在油轮周围画一个ROI。

    前面是帆船,后面是油轮

创建子印花

一种Sublabel.是一种与父ROI标签对应的ROI标签。每个子宫标签必须属于或作为一个特定标签所定义的孩子ROI标签窗格。例如,在海洋场景中,帆船标签可能有用于帆的子标签。有关子标签的详细信息,请参见ROI标签、子标签和属性

为帆定义一个子标签。

  1. 在里面ROI标签窗格中,单击帆船标签。

  2. 点击Sublabel.

  3. 创建一个矩形sublabel命名并且可选地写下描述。点击好吧

    Sublabel出现在ROI标签窗格。子标签嵌套在选定的ROI标签下,帆船,默认情况下具有与其父标签相同的颜色。

    您可以在标签下添加多个子标签。您还可以拖放Sublabels以在列表中重新排序,并右键单击任何标签以获取其他编辑。

  4. 在里面ROI标签窗格,选择sublabel。

  5. 在图像框架中,选择帆船标签。选中时标签会变成黄色。您必须选择帆船标签(父ROI),然后才能为其绘制子标签。

    每个帆的子标签。

子标签不能有自己的子标签,只能与矩形或折线ROI标签一起使用。

创建ROI属性

一个ROI属性指定有关ROI标签或Sublabel的其他信息。例如,在驾驶场景中,属性可以包括车辆的类型或颜色。在海洋场景中,属性可能包括帆船的类型或帆。您可以定义这些类型的ROI属性。

  • 数值-指定一个数字标量属性,例如标记车辆上的门数或帆船上的帆数。

  • 细绳-指定一个字符串标量属性,例如车辆或船只的颜色。

  • 逻辑- 指定逻辑真或假属性,例如车辆是否在运动或船正在使方法。

  • 列表-指定预定义字符串的下拉列表属性,例如车辆或船只的制造或模型。

有关这些属性类型的更多详细信息,请参阅ROI标签、子标签和属性

向Label添加属性。

  1. 在里面ROI标签窗格中,选择帆船标签并点击属性

  2. 在里面属性名称框,输入帆船蒂.将属性类型设置为列表

  3. 在里面列出项目部分,键入不同类型的帆船,如蒙霍尔双体船,多船体在美国,每条线路都有自己的线路。可以选择给属性一个描述,然后单击好吧

  4. 选择一个帆船ROI标签。在里面属性和Sublabels窗格中,选择适当的帆船蒂该车辆的属性值。

您还可以将属性添加到sublabels。添加属性sublabel表示它是尖头或主恐惧症。

  1. 在里面ROI标签窗格中,选择sublabel并单击属性

  2. 在里面属性名称框,输入sailRaised.将属性类型设置为逻辑.离开默认值设置空的,可选地编写描述,然后单击好吧

  3. 在场景中选择一个帆。在右边的窗格中,设置适当的ISON.属性值,或将属性值设置为空的

    “属性和子标签”窗格显示选中“True”的sailRaised属性

若要删除某个属性,请右键单击ROI标签或子标签,然后选择要删除的属性。删除属性将从所有先前创建的ROI标签注释中删除属性信息。

创建场景标签

一种现场标签定义整个场景的附加信息。使用场景标签来描述条件,如灯光和天气,或事件,如车道改变或帆点。

创建一个场景标签以应用于图像。

  1. 在应用程序的左窗格中,选择场景标签旁边的ROI标签标签。

  2. 点击定义新的场景标签,并在标签名称框中,输入一个名为白天

  3. 更改标签定义的颜色为浅蓝色,以反映场景标签的性质。下颜色参数,点击颜色预览并选择标准的浅蓝色。然后,单击好吧关闭颜色选择窗口。

  4. 离开集团参数设置为默认值没有任何然后点击好吧.这场景标签窗格显示场景标签定义。

  5. 点击适用于图像申请白天标签到现场。出现一个复选标记的场景标签。

  6. 要编辑或删除场景标签,请右键单击标签,然后选择编辑标签删除标签

标签地面实况

您可以手动标记图像,使用合适的内置自动化算法,创建新算法,或导入算法。

手工标记地面真相

ROI和场景标签是为整个会话和所有图像定义的,但必须为每个图像绘制标签和子标签并更新属性信息。

使用自动化算法标记地面真理

为了加快标记过程,您可以使用一个自动化算法来标记剩余的图像。从应用程序工具条中选择其中一种自动化算法自动标签>选择算法部分。

  • 内置自动化算法 - 选择合适的算法。按照右窗格中显示的步骤操作。

  • 添加算法- 创建自动化。有关如何定义自己的自动机关算法的详细信息,请参阅创建标签自动化算法

  • 进口算法- 导入自定义自动化算法。有关导入自动化算法的更多详细信息,请参阅创建标签自动化算法

使用自动化算法后,您可以手动标记Sublabel和属性信息的剩余帧。

为了进一步评估您的标签,您可以查看标记的地面真理的视觉摘要。从App ToolStrip,选择查看标签摘要.使用本摘要将框架,标签频率和场景条件进行比较。有关更多详细信息,请参阅查看地面真理标签摘要.此摘要不显示子标签或属性。

出口标签地面真相

您可以将标记的地面真相导出到MAT文件或MATLAB工作区中的变量。在这两种情况下,将标记的地面真相存储为一个地面对象。您可以使用这个对象来训练基于深度学习的计算机视觉算法。有关更多详细信息,请参阅对象检测和语义分割的培训数据

笔记

如果导出像素数据,则像素标签数据和ground truth数据会分别保存在不同的文件中,但会保存在同一个文件夹中。有关使用导出像素标签时的注意事项,请参见贴标程序应用程序如何存储导出像素标签

在此示例中,您将标记的地面真相导出到MATLAB工作区。从App ToolStrip,选择出口标签>到工作区.导出的MATLAB变量为GTRUTH.

显示导出的属性地面对象。导出对象中的信息可能与此处显示的信息不同。

GTRUTH.
gtruth =带有属性的地面:DataSource:[1×1 TountTruthDataSource] LabEldefinitions:[2x6表] Labeldata:[531×3时间表]

数据源

数据源是A.地下adatasource.包含图像或视频和时间戳的路径的对象。显示此对象的属性。

gTruth。数据源
使用matlab\toolbox\vision\visiondata\visiontraffic. png文件属性avi TimeStamps: [531×1 duration]

标签定义

LabelDefinitions是一个包含有关标签定义的信息的表。此表不包含有关在视频帧上绘制的标签的信息。要在自己的Mat文件中保存标签定义,请从App ToolStrip中选择保存>标签定义.然后,您可以通过选择将这些标签定义导入其他应用程序会话中导入文件

显示标签定义表。每一行包含有关ROI标签定义或场景标签定义的信息。如果导出像素标签数据,则LabelDefinitions表还包括一个Pixellabelid.列,其中包含每个像素标签定义的ID号。

gTruth。标签Definitions
ans = 3×6表名称类型LabelColor组说明层次结构______________________________________________________ 3 double} {'车辆'} {0×0 char} {1×1结构} {'卡车'}矩形{1×3双} {'车辆'} {0×0 char} {0×0 double} {'sunny'}场景{1×3 double} {'天气'} {0×0 char} {0×0双}

之内LabelDefinitions, 这等级制度列存储关于父ROI标签的子标签和属性定义的信息。

控件的子标签和属性信息标签。

gtruth.labeldefinitions.hierarchy {1}
ans = struct with fields: numDoors: [1×1 struct] color: [1×1 struct] inMotion: [1×1 struct] carType: [1×1 struct] headlight: [1×1 struct] Type:矩形

显示有关的信息前灯sublabel。

gtruth.labeldefinitions.hierarchy {1} .Headlight
ans = struct with字段:类型:矩形描述:''颜色:[0.5862 0.8276 0.3103] ISON:[1×1结构]

显示有关的信息carType属性。

gtruth.labeldefinitions.hierarchy {1} .cartype
ans = struct with字段:listItems:{3×1 cell}描述:''

保存应用程序会话

从App ToolStrip,选择保存并保存应用程序会话的MAT文件。已保存的会话包括数据源,标签定义和标记的地面真相。它还包括您的会话偏好,例如应用程序的布局。要更改布局选项,请选择布局

在会话期间的任何时间,您都可以选择新会话开始一个新的会话。您可以选择保存或取消当前会话。

当您选择时,应用程序会话mat -文件与导出的ground truth mat -文件是分开的出口>从文件.要将标记为基本的数据分享,作为最佳实践,分享包含该的地面真实垫文件地面对象,而不是应用程序会话sop文件。有关更多详细信息,请参阅分享和存储标记地面真相数据

也可以看看

应用

对象

相关的话题