主要内容

开始使用视频贴标机

贴标签机视频app提供了一种简单的方法来标记视频或图像序列中的矩形感兴趣区域(ROI)标签、折线感兴趣区域标签、像素感兴趣区域标签和场景标签。

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

这个例子告诉你如何开始使用应用程序:

  • 手动标签图像帧从一个视频。

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

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

ROI和场景标签定义

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

  • 一个现场标签描述一个场景的性质,如“晴天”。你可以将这个标签与框架相关联。

无标号数据加载

以编程方式打开应用程序并加载视频。视频必须是可读的文件格式VideoReader

videoLabeler (“visiontraffic.avi”
您也可以从应用程序加载一个视频应用程序选项卡,在图像处理与计算机视觉.点击进口加载视频或图像序列,或点击公开会议加载已保存的会话。

探索视频。点击播放按钮播放整个视频,或者使用滑块帧之间导航。

加载与对应时间戳的图像序列中,选择进口>图像序列.该应用程序支持的金宝app所有图像文件格式imread.要读取其他文件格式,您可以创建imageDatastore并使用ReadFcn财产。

加载无法读取的自定义数据源VideoReaderimread,请参阅使用自定义图像源读取贴标

创建标签定义

定义要绘制的标签。在这个例子中,你直接在应用程序中定义标签®命令行,使用labelDefinitionCreator

设置时间间隔

你可以对整个视频进行标记,也可以从视频的一部分开始。在本例中,您在加载的视频中标记了一个5秒的时间范围。在视频下方的文本框中,以秒为单位输入时间:

  1. 当前时间框,输入5输入

  2. 开始时间框,输入5滑块在时间范围的开始处。

  3. 结束时间框,输入10

可以选择,要调整时间范围,单击并拖动红色间隔标志。

整个应用程序现在被设置为专注于这个特定的时间范围。视频只在这个间隔内播放,标记和自动化算法只适用于这个间隔。您可以通过移动标志随时更改间隔。

要扩展时间范围以填充整个回放部分,单击放大时间范围

创建ROI标签

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

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

  • 预计长方体-在图像中绘制物体的三维包围框标签,如车辆,船只,建筑。

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

  • 像素标签-绘制像素来标记不同的类,如道路或天空,用于语义分割。有关像素标记的更多信息,请参见标记像素用于语义分割

  • 多边形-在物体周围绘制多边形标签。你可以给同一个类的不同实例标上标签。有关绘制多边形ROI标签和语义分割网络的更多信息,请参见使用多边形标记对象

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

在这个例子中,您定义了a车辆组用于标记车辆类型,然后创建两个矩形ROI标签,卡车.创建标签后,您可以使用显示ROI标签下拉菜单选择悬停总是,或从来没有控制在贴标签时ROI标签名称的显示方式。默认情况下,当您将鼠标悬停在ROI上时,名称将出现。

  1. ROI标签窗格中,单击标签

  2. 创建一个矩形标签命名

  3. 或者,通过点击预览颜色更改标签的颜色。

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

  5. 点击好吧

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

  6. 要添加第二个标签,请单击标签.名字的标签卡车确保车辆小组被选中。点击好吧

  7. 使用鼠标绘制矩形两辆车周围都是roi。

创建Sublabels

一个sublabel是一种ROI标签,对应于父ROI标签。属性中定义的特定标签必须属于或属于该标签的子标签ROI标签窗格。例如,在驾驶场景中,车辆标签可能有车灯、牌照或车轮的子标签。有关子标签的详细信息,请参见ROI标签、子标签和属性

定义一个前灯的子标签。

  1. ROI标签窗格中,单击标签。

  2. 点击Sublabel

  3. 创建一个矩形sublabel命名头灯和任选地写的描述。点击好吧

    头灯子标签出现在ROI标签窗格。子标签嵌套在选定的ROI标签下,,并且与其父标签的颜色相同。

    您可以在标签下添加多个子标签。您还可以拖动和删除子标签重新排列它们在列表中。右键单击任何标签额外修改。

  4. ROI标签窗格中,选择头灯下标的。

  5. 在图像帧中,选择标签。选中时标签会变成黄色。您必须选择标签(父ROI),然后才能添加子标签。

    头灯每辆车的子标签。

  6. 重复前面的步骤,标记另一辆车的前灯。要更精确地绘制标签,请使用位于标签窗口右上角的平移和缩放选项。

子标签只能与矩形或折线ROI标签上使用,不能有自己的子标签。有关使用子标签的更多详细信息,请参阅使用子标签和属性标签地面实况数据

显示或隐藏标签和子标签

您可以显示或通过隐藏标记的视频标签或子标签眼睛图标图标ROI标签窗格。的眼睛图标仅在定义标签或子标签后出现。默认情况下,应用程序显示所有标签和子标签。

要隐藏标签或子标签,请单击眼睛图标在标签或子标签名称旁边的图标。应用程序隐藏相应的标签或子标签,并显示隐藏图标图标。

显示或隐藏选项仅对矩形多边形,预计长方体ROI标签。

显示标签

隐藏的标签

创建属性

一个ROI属性指定有关的ROI标签或子标签的附加信息。例如,在一个驾驶场景,属性可能包括车辆的类型或颜色。在海洋场景,属性可能包括帆船或帆的号码类型。您可以定义这些类型的投资回报率属性。

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

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

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

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

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

为车辆类型添加一个属性。

  1. ROI标签窗格中,选择标签,然后单击属性

  2. 属性名称框,输入carType.将属性类型设置为列表

  3. 列表项节、型、车等不同类型轿车掀背车运动型多功能车,马车在美国,每条线路都有自己的线路。可以选择给属性一个描述,然后单击好吧.您可以将出现在属性字段旁边的信息图标悬停,以显示添加的描述。

  4. 选择一个图像框中的ROI标签。在属性和Sublabels窗格中,选择适当的carType该车辆的属性值。

  5. 重复前面的步骤分配carType属于另一辆车。

您还可以向子标签添加属性。的属性头灯下标的告诉大灯是否接通。

  1. ROI标签窗格中,选择头灯sublabel并单击属性

  2. 属性名称框,输入.将属性类型设置为逻辑.离开默认值设置为可选写一个说明,然后单击好吧

  3. 在视频帧中选择一个前照灯。设置合适的属性值,或将属性值设置为

  4. 重复上一步设置其他车灯的属性。

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

创建场景标签

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

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

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

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

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

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

  5. 点击适用于图片应用白天标签贴到现场。复选标记出现在现场的标签。

  6. 编辑或删除场景标签,在标签上点击右键并选择编辑标签删除标签

标签地面实况

到目前为止,您只标记了视频中的一帧。要标记其余的帧,请选择其中一个选项。

手工标记地面真相

当您单击右箭头键以进入下一帧时,上一帧的ROI标签不会延续。只有阳光明媚场景标签适用于每一帧,因为这个标签适用于整个时间范围。

逐帧前进,手动绘制标签和子标签的roi。还要更新这些roi的属性信息。

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

为了加快标签过程,你可以在应用程序中使用自动化算法。你可以定义自己的自动化算法,参见创建标签的自动化算法颞自动化算法,或使用内置的自动化算法。在本例中,您使用内置的点跟踪算法标记地面真相。

在本例中,只自动标记ROI标签。内置的自动化算法不支持子标签和属性的自动化。金宝app

  1. 选择您想要自动化的标签。在视频的第一帧,按Ctrl然后点击选择这两个标签注释。标签用黄色突出显示。

  2. 从应用程序工具条,选择选择算法>点跟踪器.该算法跟踪过使用奏卢卡斯-Tomasi的(KLT)算法短的时间间隔的一个或多个矩形的ROI。

  3. (可选)配置自动设置。例如,确保导入选定的roi被选择为使得标签您选择的导入自动化会话。

  4. 点击自动化打开自动化会话。算法说明出现在右窗格中,所选标签可用于自动化。

  5. 点击运行来跟踪选定的roi。

  6. 检查运行算法的结果。

    随后进入现场的车辆没有标识。未标记的车辆没有初始ROI标签,因此算法没有跟踪它们。点击撤销运行.使用滑块找到每辆车第一次出现的帧。画车辆每辆车周围都有roi,然后点击运行再次。

  7. 逐帧前进,手动移动、调整大小、删除或添加roi,以提高自动化算法的结果。

    当对算法结果满意时,单击接受.或者,如果要丢弃会话期间生成的标签并手动使用标签,请单击取消.的取消按钮只取消算法会话,而不取消应用程序会话。

还可以选择,您现在可以用子标签和属性信息手动标记其余的帧。

为了进一步评估您的标签,您可以查看已标记ground truth的可视化摘要。从应用程序工具条,选择视图标签的总结.使用此摘要来比较帧、标签频率和场景条件。有关详细信息,请参见地面实况标签查看摘要.此摘要不支持子标签或属性。金宝app

出口标记地面真相

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

请注意

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

在本例中,将已标记的ground truth导出到MATLAB工作区。从应用程序工具条,选择出口标签>到工作空间.导出的MATLAB变量为gTruth

显示导出的属性真实状况对象。导出对象中的信息可能与此处显示的信息不同。

gTruth
gTruth =真实状况与属性:DataSource:[1×1 groundTruthDataSource] LabelDefinitions:[2×6表] LabelData:[531×3时间表]

数据源

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

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

标签定义

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

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

gTruth。标签Definitions
ANS = 3×6表名称类型LabelColor组说明层次_________ _________ ____________ ___________ ___________ ____________ { '汽车'}矩形{1×3双} { '车辆'} {0×0炭} {1×1结构} {'卡车'}矩形{1×3双} {' 车辆 '} {0×0炭} {0×0双} {' 晴天 '}场景{1×3双} {' 天气'} {0×0炭} {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:矩形

显示头灯下标的。

gTruth.LabelDefinitions.Hierarchy {1} .headlight
ans = struct with fields: Type: Rectangle Description: " Color: [0.5862 0.8276 0.3103] isOn: [1×1 struct]

显示carType属性。

gTruth.LabelDefinitions.Hierarchy {1} .carType
ANS =结构与字段:listItems中:{3×1细胞}说明: ''

标签数据

LabelData是一个时间表,包含在整个视频中每个时间戳绘制的ROI标签的信息。时间表包含每个标签一栏。

显示时间表的前几行。前几个时间戳表明没有检测到车辆,并且阳光明媚现场标签.这些结果是因为这个视频部分没有标注。只有5-10秒的时间范围内被标记。

labelData = gTruth.LabelData;头(labelData)
ANS = 8×3时间表时间车辆转向架晴天__________ ____________ ____________ _____ 5.005秒[1×2结构] [1×0结构]真5.0384秒[1×2结构] [1×0结构]真5.0717秒[1×2结构] [1×0结构]真5.1051秒[1×2结构] [1×0结构]真5.1385秒[1×2结构] [1×0结构]真5.1718秒[1×2结构] [1×0结构]真5.2052秒[1×2结构] [1×0结构]真5.2386秒[1×2结构] [1×0结构]真

显示5-10秒间隔中包含标签的前几行时间表。

gTruthInterval = labelData(TIMERANGE(00:00:05'“00:00:10”):);头(gTruthInterval)
ANS = 8×3时间表时间车辆转向架晴天__________ ____________ ____________ _____ 5.005秒[1×2结构] [1×0结构]真5.0384秒[1×2结构] [1×0结构]真5.0717秒[1×2结构] [1×0结构]真5.1051秒[1×2结构] [1×0结构]真5.1385秒[1×2结构] [1×0结构]真5.1718秒[1×2结构] [1×0结构]真5.2052秒[1×2结构] [1×0结构]真5.2386秒[1×2结构] [1×0结构]真

为每一个标签时,该结构包括边界框的位置以及关于其子标签和属性的信息。

显示在时间范围内开始对车辆的边界框位置。你的边界框的位置可能与此处显示的不同。

只需使用:gTruthInterval (1) . car {1} .Position%[X Y宽度高度],以像素为单位
ANS = 1×4单列矢量415.8962 82.4737 130.8474 129.3805 ANS = 1×4单列矢量235.2182 1.0000 117.0611 55.3500

保存应用程序会话

从应用程序工具条,选择保存并保存应用程序会话的MAT文件。保存的会话包括数据源,标签定义,并标有地面实况。它还包括您的会话的偏好,如应用程序的布局。要改变布局选项,选择布局

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

该应用程序会话MAT文件是当您选择导出地面实况MAT文件分开出口>从文件.为了共享标记的地面真值数据,作为一个最佳实践,共享地面真值mat -文件包含真实状况对象,而不是应用会话的MAT-file。有关详细信息,请参见分享和存储标记地面真相数据

另请参阅

应用程序

对象

相关的话题