主要内容

开始使用图像贴标签机

图片标志应用程序提供了一种简便的方法交互式地创建各种形状标记感兴趣的区域(ROI)标签。您可以创建矩形,折线,像素和多边形ROI标签和标签在一个图像或图像序列。

你可以使用带安全标签的数据来验证或训练算法等图像分类器,语义和实例对象探测器,分割网络。考虑您的应用程序选择标签时绘图工具创建ROI标签。更多细节关于如何选择正确的标签类型和绘图工具为您的应用程序,看看ROI标签,Sublabels和属性

这个例子让你开始使用应用程序向您展示了如何:

  • 无标号数据加载

  • 手动标签图像帧的图像集合。

  • 在图像帧使用自动化算法自动标签。

  • 导出地面实况数据的标签。

ROI和现场标签定义

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

  • 一个现场标签描述了一个场景的性质,如“阳光灿烂”。You can associate this label with a frame.

无标号数据加载

你可以加载图片存储在一个数据存储,从一个文件夹,或负载之前贴标签机会话。图片必须是可读的imread

加载数据编程

以编程方式加载数据存储的图片:

  1. 创建一个数据存储文件夹的图片:

    imageFolder = fullfile (toolboxdir(“愿景”)、“visiondata”,封套)imd = imageDatastore (imageFolder)

  2. 加载数据存储:

    imageLabeler (imd)

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

imageFolder = fullfile (toolboxdir(“愿景”)、“visiondata”,封套)imageLabeler (imageFolder)

直接从应用程序加载数据

在本例中,您从应用程序启动和加载图像交互。打开的应用程序应用程序选项卡,在图像处理和计算机视觉。点击进口加载图像或点击公开会议打开一个保存会话。

加载图像用于此示例中,点击进口然后选择从文件。选择boats.png图片:

matlab工具箱/视觉/ visiondata / boats.png

创建标签定义

你打算画定义标签。在本例中,您定义标签直接在应用。从MATLAB来定义标签®命令行相反,使用labelDefinitionCreator

创建ROI标签

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

  • 矩形——画二维矩形边界框标签周围的对象在一个图像,如车辆、船只、建筑。

  • 预计长方体——画3 d边界框标签周围的对象在一个图像,如车辆、船只、建筑。

  • ——画线性roi标签线,如车道边界。

  • 像素标签——画像素标签各种类,如道路或天空,为语义分割。关于像素标签的更多信息,请参阅标签像素为语义分割

  • 多边形——画多边形对象标签。你可以标注同一个类的不同实例。比如画多边形ROI标签上的更多信息和语义分割网络,看到的使用多边形标签对象

关于这些ROI标签定义的更多细节,请参阅ROI标签,Sublabels和属性

在本例中,您定义了一个组标签类型的船,然后创建一个矩形ROI的标签帆船和一个油轮。控制在标签中显示出ROI标签名称,选择在徘徊,总是,或从来没有显示ROI标签下拉菜单。

  1. ROI标签左边的窗格中,点击标签

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

  3. 可选地,点击预览颜色改变标签的颜色。

  4. 集团下拉菜单,选择新组…和名称的组

  5. 点击好吧

    组名称出现在ROI标签面板与标签帆船创建。你可以移动列表中的一个标签到另一个位置或一组列表中通过左击并向上或向下拖动标签。

  6. 添加另一个类型的标签,选择组,然后单击标签。名字的标签油轮。点击好吧

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

    帆船在前景和背景油轮船舶

创建Sublabels

一个sublabel是一种ROI标签对应于父母ROI标签。每个sublabel必须属于,或成为一个孩子,一个特定的标签中定义的ROI标签窗格。例如,在海洋场景,一艘帆船标签可能sublabels帆。关于sublabels更多细节,请参阅ROI标签,Sublabels和属性

定义一个sublabel帆。

  1. ROI标签左边的窗格中,单击帆船标签。

  2. 点击Sublabel

  3. 创建一个矩形sublabel命名和写描述,这是可选的。点击好吧

    sublabel出现在ROI标签窗格。sublabel是嵌套在选定的ROI标签,帆船,默认情况下具有相同的颜色作为它的父类标签。

    您可以添加多个sublabels下标签。你也可以拖放sublabels重新排序在列表中,右键单击任何标签附加的编辑。

  4. ROI标签窗格中,选择sublabel。

  5. 在图像帧,选择帆船标签。当选择标签变成黄色。你必须选择帆船标签(父ROI)画一个sublabel之前。

    sublabels的帆。

    画sublabel

Sublabels不能有自己的Sublabels,他们只能用矩形或折线ROI标签。

显示或隐藏标签和Sublabels

您可以显示或隐藏标签或标记sublabels图像通过使用眼睛图标图标ROI标签窗格。的眼睛图标只出现在你定义一个标签或sublabel。默认情况下,应用程序将显示所有的标签和sublabels。

隐藏一个标签或sublabel,点击眼睛图标图标标签或sublabel名称的旁边。应用程序隐藏或sublabel并显示相应的标签隐藏图标图标。

显示标签

隐藏的标签

创建ROI属性

一个ROI属性指定关于一个ROI标签或sublabel附加信息。例如,在一个驾驶场景,属性可能包含车辆的类型或颜色。海洋中,属性可能包括帆船的类型或数量的帆。您可以定义ROI这些类型的属性。

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

  • 字符串——指定一个字符串标量属性,如车辆的颜色或船。

  • 逻辑——指定一个逻辑真或假的属性,如车辆是否在运动或船让路。

  • 列表——指定一个下拉列表属性预先定义的字符串,如车辆的制造或模型或船。

关于这些属性类型的更多细节,请参阅ROI标签,Sublabels和属性

添加一个属性标签。

  1. ROI标签左边的窗格中,选择帆船标签,然后单击属性

  2. 属性名称框,输入sailboatType。设置属性类型列表

  3. 列表项节中,类型不同类型的帆船,等单体船,双体船,多体船,每一行。可选属性描述,然后单击好吧。你可以悬停图标旁边显示的信息属性字段显示添加描述。

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

您还可以添加属性sublabels。添加的属性sublabel表明无论是桅帆帆。

  1. ROI标签左边的窗格中,选择sublabel并单击属性

  2. 属性名称框,输入sailRaised。设置属性类型逻辑。离开默认值设置为,可以写一个描述,然后单击好吧

  3. 选择一个场景中航行。在右边的窗格中,设置适当的属性值或属性值设置为离开

    “属性和Sublabels”窗格显示sailRaised属性与“真正的”选择

删除一个属性,右键单击一个ROI标签或sublabel,并选择属性删除。删除所有以前创建的ROI的属性删除属性信息标签注释。

创建场景标签

一个现场标签定义了整个场景的附加信息。使用标签来描述场景条件,如照明和天气,或事件,如车道变更或航行。

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

  1. 在应用的左窗格中,选择现场标签旁边的ROI标签选项卡。

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

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

  4. 离开集团参数设置为默认的没有一个并点击好吧。的现场标签窗格显示现场标签定义。

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

  6. 编辑或删除一个标签,标签上单击右键并选择编辑标签删除标签

标签地面实况

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

手动标签地面实况

ROI和现场标签定义为您的整个会话和所有的图片,但你必须把标签和sublabels为每个图像和更新属性信息。

标签地面实况使用一个自动化算法

加快标记过程中,您可以使用一个自动化算法将图像的其余部分。选择一个应用程序将来发布的这些类型的自动化算法自动贴标>选择算法部分。

  • 使用内置的自动化算法之一——选择合适的算法。遵循的步骤出现在右窗格中。

  • 添加整幅图像算法——你可以创建一个新的自动化算法或导入。在两个选项的详细信息,请参见为标签创建自动化算法

  • 添加了图像算法——你可以创建一个新的图像自动化算法阻塞或导入。在两个选项的详细信息,请参见标签图片标志大图像

后使用一个自动化算法可以手动标签剩余帧sublabel和属性信息。

进一步评估你的标签,你可以把一个标签的视觉摘要地面真理。从应用程序将来发布,选择视图标签的总结。用这个总结比较框架,频率的标签,和现场条件。更多细节,请参阅观点的总结地面实况标签。这个总结不显示sublabels或属性。

出口标记地面实况

您可以导出标签地面实况MAT-file或MATLAB的工作区中一个变量。在这两种情况下,标签存储为地面真理groundTruth对象。你可以用这个对象来训练deep-learning-based计算机视觉算法。更多细节,请参阅培训对象检测数据和语义分割

请注意

如果你出口像素数据,像素标签数据和地面实况数据保存在单独的文件,但在同一文件夹中。考虑使用像素导出标签时,看到如何贴标签机应用程序存储像素导出标签

在本例中,您导出标签地面真理MATLAB工作区。从应用程序将来发布,选择出口标签>到工作空间。导出的MATLAB变量gTruth

显示导出的属性groundTruth对象。你的出口对象中的信息可能不同于这里显示的信息。

gTruth
gTruth = groundTruth属性:数据源:[1×1 groundTruthDataSource] LabelDefinitions: [2 x6表]LabelData:(531×3时间表)

数据源

数据源是一个groundTruthDataSource对象包含图片或视频的路径和时间戳。显示该对象的属性。

gTruth.DataSource
ans = groundTruthDataSource视频文件的属性来源:…matlab工具箱\ \ \ visiondata \ visiontraffic愿景。avi时间戳(531×1时间):

标签定义

LabelDefinitions是一个表,它包含的信息标签定义。这个表不包含标签的信息是画在视频帧。保存在自己MAT-file标签定义,从应用程序将来发布,选择保存>标签定义。然后,您可以将这些标签定义导入到另一个应用程序会话通过选择导入文件

显示标签定义表。每一行包含一个ROI信息标签定义或一个场景标签定义。如果你出口像素标签数据,LabelDefinitions表还包括一个PixelLabelID列包含ID编号为每个像素标签定义。

gTruth.LabelDefinitions
ans = 3×6表名称类型LabelColor组描述层次结构替其___________ _______{‘汽车’}矩形{1×3双}{‘汽车’}{0×0字符}{1×1 struct}{“卡车”}矩形{1×3双}{‘汽车’}{0×0字符}{0×0双}{‘阳光’}场景{1×3双}{‘天气’}{0×0字符}{0×0双}

LabelDefinitions,层次结构列存储的信息sublabel父母ROI标签和属性定义。

显示的sublabel和属性信息标签。

gTruth.LabelDefinitions.Hierarchy {1}
ans =结构体字段:numDoors:(1×1结构)颜色:[1×1 struct] inMotion: [1×1 struct] carType: [1×1 struct]大灯:(1×1结构)类型:矩形的描述:“

显示的信息头灯sublabel。

gTruth.LabelDefinitions.Hierarchy {1} .headlight
ans =结构体字段:类型:矩形的描述:“颜色:[0.5862 0.8276 0.3103]关:[1×1 struct]

显示的信息carType属性。

gTruth.LabelDefinitions.Hierarchy {1} .carType
ans =结构体字段:listitem:{} 3×1细胞的描述:“

保存应用程序会话

从应用程序将来发布,选择保存并保存的MAT-file应用程序会话。保存的会话包括数据源、标签定义和地面实况的标签。它还包括会话的偏好,比如应用。改变布局的布局选项,选择布局

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

应用程序会话MAT-file分开地面真理MAT-file出口当您选择出口>从文件。分享标记地面实况数据,作为一项最佳实践,分享MAT-file包含地面真理groundTruth对象,而不是应用程序会话MAT-file。更多细节,请参阅分享和存储标记地面实况数据

另请参阅

应用程序

对象

相关的话题