贴标签机开始使用视频
的贴标签机视频应用程序提供了一种简便的方法标记感兴趣的矩形区域(ROI)标签,折线ROI标签,像素ROI标签和现场视频或图像序列标签。
你可以使用带安全标签的数据来验证或训练算法等图像分类器,语义和实例对象探测器,分割网络。考虑您的应用程序选择标签时绘图工具创建ROI标签。更多细节关于如何选择正确的标签类型和绘图工具为您的应用程序,看看ROI标签,Sublabels和属性。
这个例子让你开始使用应用程序向您展示了如何:
手动标签图像帧从一个视频。
在图像帧使用自动化算法自动标签。
导出地面实况数据的标签。
ROI和现场标签定义
一个ROI标签对应于一个矩形,折线,像素,或多边形区域的兴趣。这些标签包含两个组件:标签的名称,如“汽车”和创建。
一个现场标签描述了一个场景的性质,如“阳光灿烂”。You can associate this label with a frame.
无标号数据加载
以编程方式打开应用程序,加载一个视频。视频文件格式必须可读VideoReader
。
videoLabeler (“visiontraffic.avi”)
探索视频。点击播放按钮整个视频,或使用滑块帧之间导航。
加载一个图像序列与相应的时间戳,选择进口>图像序列。该软件支持所有图万博1manbetx像文件格式的支持imread
。阅读附加的文件格式,您可以创建一个imageDatastore
并使用ReadFcn
财产。
加载自定义数据源不能阅读VideoReader
或imread
,请参阅使用自定义图像源阅读器标签。
创建标签定义
你打算画定义标签。在本例中,您定义标签直接在应用。从MATLAB来定义标签®命令行相反,使用labelDefinitionCreator
。
设置时间间隔
你可以标签整个视频或视频的一部分开始。在本例中,您的标签在加载视频五秒钟的时间范围。在视频下面的文本框中,输入这些时间以秒为单位:
在当前时间框,输入
5
并按输入。在开始时间框,输入
5
的滑块在时间范围的开始。在结束时间框,输入
10
。
可选地,做出调整的时间范围,单击并拖动红间隔旗帜。
现在整个应用程序设置关注这个特定的时间范围。视频中只在这个区间,标签和自动化算法只适用于这个区间。你可以在任何时候改变间隔移动旗帜。
的时间范围扩大到填满整个播放部分,点击放大时间范围。
创建ROI标签
一个ROI标签是一个标签,对应于一个感兴趣的区域(ROI)的形象。您可以定义这些ROI标签类型。
关于这些ROI标签定义的更多细节,请参阅ROI标签,Sublabels和属性。
在本例中,您定义了一个车辆
组标签类型的车辆,然后创建两个矩形
ROI标签,车
和卡车
。在创建标签,您可以使用显示ROI标签下拉菜单选择在徘徊,总是,或从来没有控制ROI标签名称出现在标签。默认情况下,名称会出现当你徘徊在一个ROI。
在ROI标签左边的窗格中,点击标签。
创建一个
矩形
标签命名车
。可选地,点击预览颜色改变标签的颜色。
从
集团
下拉菜单,选择新组
和名称的组车辆
点击好吧。
的车辆组名称出现在ROI标签面板与标签车创建。你可以移动列表中的一个标签到另一个位置或一组列表中通过左击并向上或向下拖动标签。
添加第二个标签,点击标签。名字的标签卡车并确保车辆小组被选中。点击好吧。
用鼠标画出矩形车在两辆车的roi。
创建Sublabels
一个sublabel是一种ROI标签对应于父母ROI标签。每个sublabel必须属于,或成为一个孩子,一个特定的标签中定义的ROI标签窗格。例如,在一个驾驶,车辆标签可能sublabels前灯,牌照或车轮。关于sublabels更多细节,请参阅ROI标签,Sublabels和属性。
定义一个sublabel前灯。
在ROI标签左边的窗格中,单击车标签。
点击Sublabel。
创建一个
矩形
sublabel命名头灯
和写描述,这是可选的。点击好吧。的头灯sublabel出现在ROI标签窗格。sublabel是嵌套在选定的ROI标签,车,相同的颜色作为它的父类标签。
您可以添加多个sublabels下标签。你也可以拖放sublabels重新排序列表中。右键单击任何标签额外的编辑。
在ROI标签窗格中,选择头灯sublabel。
在图像帧,选择车标签。当选择标签变成黄色。你必须选择车标签(ROI)母公司之前您可以添加sublabel。
画头灯sublabels的汽车。
重复前面的步骤把另一辆车的前灯。更精确地画出标签,使用平移和缩放选项位于标签窗口的右上角。
Sublabels只能使用矩形或折线ROI标签,不能有自己的Sublabels。为更多的细节与sublabels合作,明白了使用Sublabels标签地面实况数据和属性。
显示或隐藏标签和Sublabels
您可以显示或隐藏标签或标记sublabels视频使用图标ROI标签窗格。的只出现在你定义一个标签或sublabel。默认情况下,应用程序将显示所有的标签和sublabels。
隐藏一个标签或sublabel,点击图标标签或sublabel名称的旁边。应用程序隐藏或sublabel并显示相应的标签图标。
|
|
创建属性
一个ROI属性指定关于一个ROI标签或sublabel附加信息。例如,在一个驾驶场景,属性可能包含车辆的类型或颜色。海洋中,属性可能包括帆船的类型或数量的帆。您可以定义ROI这些类型的属性。
数值
——指定一个数字标量属性,如门的数量标记车辆或帆船帆的数量。字符串
——指定一个字符串标量属性,如车辆的颜色或船。逻辑
——指定一个逻辑真或假的属性,如车辆是否在运动或船让路。列表
——指定一个下拉列表属性预先定义的字符串,如车辆的制造或模型或船。
关于这些属性类型的更多细节,请参阅ROI标签,Sublabels和属性。
为车辆类型添加一个属性。
在ROI标签左边的窗格中,选择车标签,然后单击属性。
在属性名称框,输入
carType
。设置属性类型列表
。在列表项节中,类型不同类型的汽车,例如
轿车
,掀背车
,运动型多功能车
,马车
,每一行。可选属性描述,然后单击好吧。你可以悬停图标旁边显示的信息属性字段显示添加描述。选择一个车ROI图像帧标签。在属性和Sublabels窗格中,选择适当的carType属性值的车辆。
重复上面的步骤,来分配carType其他车辆属性。
您还可以添加属性sublabels。添加的属性头灯sublabel告诉大灯是否。
在ROI标签左边的窗格中,选择头灯sublabel并单击属性。
在属性名称框,输入
关
。设置属性类型逻辑
。离开默认值设置为空
,可以写一个描述,然后单击好吧。选择一个视频帧的头灯。设置合适的关属性值或属性值设置为离开
空
。重复前面的步骤来设置关属性对于其他车灯。
删除一个属性,右键单击一个ROI标签或sublabel,并选择属性删除。删除所有以前创建的ROI的属性删除属性信息标签注释。
创建场景标签
一个现场标签定义了整个场景的附加信息。使用标签来描述场景条件,如照明和天气,或事件,如车道变化。
创建一个场景标签应用到一个图像。
在应用的左窗格中,选择现场标签旁边的标签ROI标签选项卡。
点击标签定义新的场景,在标签名称框中,输入一个场景标签命名
白天
。标签定义的颜色更改为浅蓝色,以反映自然场景的标签。下颜色参数,点击预览和选择标准颜色浅蓝色的颜色。然后,单击好吧关闭颜色选择窗口。
离开集团参数设置为默认的
没有一个
并点击好吧。的现场标签窗格显示现场标签定义。点击适用于图像应用
白天
标签到现场。出现一个复选标记的标签。编辑或删除一个标签,标签上单击右键并选择编辑标签或删除标签。
标签地面实况
到目前为止,您已经标注只有一个帧的视频。将剩下的帧,选择其中一个选项。
手动标签地面实况
当您单击右箭头键来推进到下一个帧,ROI标签与前一帧不带过去。只有阳光明媚的现场标签适用于每一帧,因为这个标签是应用在整个时间范围。
推进逐帧和手动绘制标签和sublabel roi。也更新这些roi的属性信息。
标签使用自动化算法地面实况
加快标记过程中,您可以使用一个自动化算法中的应用。您可以定义您自己的自动化算法,明白了为标签创建自动化算法和颞自动化算法自动化,或者使用一个内置的算法。在本例中,您的标签地面真理使用一个内置的点跟踪算法。
在本例中,您只自动标签车ROI标签。内置的自动化自动化算法不支持sublabel和属性。万博1manbetx
选择您想要的标签自动化。在视频的第一帧,出版社Ctrl然后单击选择两个车标签注释。用黄色突出显示的标签。
从应用程序将来发布,选择选择算法>点跟踪器。该算法跟踪一个或多个矩形roi在很短的间隔使用Kanade-Lucas-Tomasi (KLT)算法。
(可选)配置自动化设置。例如,确保导入选定的roi被选中的吗车标签你选择导入自动化会话。
点击自动化打开一个自动化会议。算法说明出现在右窗格中,选中的标签可用于自动化。
点击运行跟踪选定的roi的间隔。
检查运行算法的结果。
车辆进入现场后没有标记。标记车辆没有最初的ROI标签,所以该算法不跟踪他们。点击撤销运行。使用滑块找到帧,每个车辆首次出现。画车辆roi大约每辆车,然后单击运行一次。
推进逐帧和手动移动,调整大小,删除或添加roi来提高自动化算法的结果。
当你满意算法的结果,点击接受。另外,手工丢弃会话中生成标签和标签相反,点击取消。的取消只按钮取消算法的会话,而不是应用程序会话。
可选地,您现在可以手动标签剩余帧sublabel和属性信息。
进一步评估你的标签,你可以把一个标签的视觉摘要地面真理。从应用程序将来发布,选择视图标签的总结。用这个总结比较框架,频率的标签,和现场条件。更多细节,请参阅观点的总结地面实况标签。这个总结不支持sublabels或属性。万博1manbetx
出口标记地面实况
您可以导出标签地面实况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细胞的描述:“
标签数据
LabelData
是一个时间表,它包含关于ROI的信息标签在每一个时间戳,在整个视频。时间表包含一列标签。
显示前几排的时间表。最初几个时间戳表明没有检测到,车辆阳光明媚的
现场标签假
。这些结果,因为这部分的视频没有标记。只有5 - 10秒的时间范围是标记。
labelData = gTruth.LabelData;头(labelData)
ans = 8×3时间表时间汽车卡车阳光__________ _______ _______ _____ 5.005秒[1×2 struct] [1×0 struct]真正的5.0384秒[1×2 struct] [1×0 struct]真正的5.0717秒[1×2 struct] [1×0 struct]真正的5.1051秒[1×2 struct] [1×0 struct]真正的5.1385秒[1×2 struct] [1×0 struct]真正的5.1718秒[1×2 struct] [1×0 struct]真正的5.2052秒[1×2 struct] [1×0 struct]真正的5.2386秒[1×2 struct] [1×0 struct]真的
显示前几的时间表包含标签行从5 - 10秒的时间间隔。
gTruthInterval = labelData (timerange (“00:00:05”,“00:00:10”):);头(gTruthInterval)
ans = 8×3时间表时间汽车卡车阳光__________ _______ _______ _____ 5.005秒[1×2 struct] [1×0 struct]真正的5.0384秒[1×2 struct] [1×0 struct]真正的5.0717秒[1×2 struct] [1×0 struct]真正的5.1051秒[1×2 struct] [1×0 struct]真正的5.1385秒[1×2 struct] [1×0 struct]真正的5.1718秒[1×2 struct] [1×0 struct]真正的5.2052秒[1×2 struct] [1×0 struct]真正的5.2386秒[1×2 struct] [1×0 struct]真的
为每一个车
标签,包括边界框的位置和结构sublabels信息和属性。
显示车辆的边界框的位置开始的时间范围。你的边界框的位置可能不同于那些。
只需使用:gTruthInterval (1) . car {1} .Position% x y宽度高度,以像素为单位
ans = 1×4个行向量415.8962 82.4737 130.8474 129.3805 ans = 1 235.2182 1.0000 117.0611 55.3500×4行向量
保存应用程序会话
从应用程序将来发布,选择保存并保存的MAT-file应用程序会话。保存的会话包括数据源、标签定义和地面实况的标签。它还包括会话的偏好,比如应用。改变布局的布局选项,选择布局。
在任何时间在一个会话期间,您可以选择新会话开始一个新的会话。您可以选择保存当前会话或取消。
应用程序会话MAT-file分开地面真理MAT-file出口当您选择出口>从文件。分享标记地面实况数据,作为一项最佳实践,分享MAT-file包含地面真理groundTruth
对象,而不是应用程序会话MAT-file。更多细节,请参阅分享和存储标记地面实况数据。
另请参阅
应用程序
对象
labelDefinitionCreator
|groundTruth
|groundTruthDataSource
|vision.labeler.mixin.Temporal
|vision.labeler.AutomationAlgorithm