此示例显示了如何将地面真理对象导出到自定义数据格式JavaScript对象符号(JSON)文件以及Coco [1]数据格式JSON文件。
您可以解析JSON文件以用于机器学习框架中的培训和推理。自定义数据格式JSON文件的格式类似于COCO数据格式。不同之处在于,用于表示JSON文件的标签注释的格式被修改为包括由地面真理对象支持的各种标签类型。万博1manbetx
此示例使用地面真相对象,该对象包含先前使用视频标签应用程序生成的标签。
要从标签应用程序将地面真相对象导出到JSON文件,请按照下列步骤操作:
使用图像贴标程序或视频标签应用程序分别标记图像或视频。
将标签导出到文件或工作区以生成一个ground truth对象。
按照本例中的步骤进行操作。
加载地面真相对象
负载(“LearlimagesequenceGroundTruth.mat”)
显示标签定义
VehicleImageSequenceGroundTruth。LabelDefinitions
ans =.3×6表名称类型LabelColor组说明层次结构_________ _______________________________________________170.3103 {1x1 struct} {1x1结构} {0x0char} {0x0 double} {'sunny'}场景1 0.41176 0.16078 {'none'} {0x0 char} {0x0 double}
通过“Info”和“License名称-值”对,将元数据添加到注释中
信息=结构(...“年”, 2020,...'版本',' 1 ',...“描述”,“车辆数据集”,...“date_created”, 约会时间...);许可证=结构(...'URL',{'www.tianjin-qmedu.com','www.tianjin-qmedu.com'},...'名称',{“许可证1”,《许可证2》}...);
采用exportGroundTruthToJSON
函数将ground truth对象导出到JSON文件。
的exportGroundTruthToJSON
函数解析ground truth对象中的数据,并将其编码为所描述的自定义数据格式以下,然后生成JSON文件。
annotationsfilename =“vehicles_annotations.json”;exportGroundTruthToJSON (VehicleImageSequenceGroundTruth annotationsFileName,'信息'信息,'执照',许可证)
采用exportGroundTruthToJSON
与之'Coco'
名称 - 值设置为真的
导出使用多边形标记为Coco对象检测数据格式JSON文件的对象检测数据。
为对象检测创建一个ground truth对象,该对象可以导出到COCO数据格式的JSON文件,遵循以下步骤:
使用多边形标签类型来标记对象实例。
使用“像素”标签类型来标记对象的人群区域。其标签名称应为:polygonLabelName_crowd(其中polygonLabelName为对应多边形标签的标签名称)。
例如:
要注释包含人员实例和人群地区的图像,
创建名称为polygon的标签'人'
用于注释人类实例。
创建一个对应的带有名称的Pixel标签'person_crowd'
诠释人群地区。
的“_crowd”
后缀用于将两个标签绑定在一起。因此,确保每个人群像素标签都有一个对应的多边形标签。
注意:在导出到COCO对象检测数据格式时,会抛出一个预期的警告,指定被忽略的标签类型。在这种情况下,因为ground truth对象有Line标签,所以它们将被忽略。
annotationsfilename ='车辆_ annotations_coco.json';exportGroundTruthToJSON (VehicleImageSequenceGroundTruth annotationsFileName,...'信息'信息,'执照',牌照,'Coco', 真的)
警告:不支持标签类型,行,场景,在导出到COCO数据格式JSON文件期间忽略万博1manbetx
导出的JSON文件包含以下五个字段:
信息
许可证
类别
图像/视频
注释
Info字段通过使用“Info”名称-值对参数指定数据集和注释信息。该值必须是标量结构。
默认值:
{"year":当前年份,"version": "1", "description": "Created using MATLAB", "date_created":当前日期时间}
许可证字段使用许可证名称值对参数指定有关许可证的信息。该值必须是结构阵列。
默认值:[]
类别字段包含地面真实标签定义表的内容。表中的变量名称用作字段,被修改为类似于COCO数据格式。其他字段ID标识每个标签定义。
每个类别对象包含以下两个附加字段,如果存在,则替换“层次结构”变量:
属性:包含标签的属性定义。
Sublabels:Conatins Sublabels标签的定义。
图像/视频字段包含图像(或视频)对象和相关信息的列表。
数据格式:
{"id":图像唯一id, "time_stamp":图像帧时间戳(仅适用于有时间戳的数据源),"width":图像/视频宽度,"height":图像/视频高度,"file_name":文件名称,"file_path":文件绝对路径,"date_captured":图像最后修改日期/当前日期时间}
Annotations字段包含一个注释对象列表。注释对象的数据格式取决于标签类型,如下所示:
{"id":唯一标注id, "image_id":图像id, "category_id":类别id, "position": [x,y,width,height]边框位置,"attributes":包含属性数据," subblabels ":包含子标签数据}
x
和y
指定矩形的左上角并以0为索引。
w
指定矩形的宽度,这是它的长度x-轴。
h
指定矩形的高度,这是它的长度y-轴。
{“ID”:唯一的注释ID,“image_id”:image id,“category_id”:类别ID,“位置”:[[x1 y1 x2 y2 ... xn yn]]多边形中的n点,“属性”:包含属性数据,“sublabels”:包含子字blabels数据}
{“ID”:唯一的注释ID,“image_id”:image id,“category_id”:类别ID,“位置”:[x1 y1 x2 y2 ... xn yn]对于折线中的n点。,“属性”:包含属性数据,“sublabels”:包含子字Blabels数据}
(x1, y1,…指定点位置并以0为索引。
{"id":唯一标注id, "image_id":图像id, "category_id":类别id, "position":表单列表[xctr, yctr, zctr, xlen, ylen, zlen, xrot, yrot, zrot], "attributes":包含属性数据," subblabels ":包含子标签数据}
xctr
,yctr.
, 和ZCTR.
指定投影长方体的中心,索引为0。
xlen
,ylen
, 和Zlen.
指定投影长方体的长度x设在,y- 轴,和z-axis,在应用旋转之前。
xrot
,yrot
, 和Zrot.
指定投影长方体的旋转角度x设在,y- 轴,和z分别。当在其相应轴的向前方向上看时,这些角度是顺时针正的。
{"image_id":图像ID, "file_name":像素标签图像文件的名称,"file_path":像素标签图像文件的路径,"segments_info":段对象列表}
段对象格式:像素标签图像中的每个段表示为段对象
{"id":标签的PixelLabelID,如果PixeLabelID是一个数组,则为R+G*256+B*256^2, "category_id":类别id, "area":像素覆盖的区域}
{“ID”:唯一的注释ID,“image_id”:image id,“category_id”:适用于图像的场景标签的类别ID。
自定义标签类型无法导出到JSON文件。
您不能将数据从自定义阅读器ground truth数据源导出为JSON文件格式。
只有多边形和人群像素标签ROIS可以导出到COCO对象检测数据格式。
“exportgredtruthtojson”辅助函数生成的JSON文件不能将MATLAB导入到MATLAB中作为地面真理对象。
[1]林ty。等等。(2014)Microsoft Coco:上下文中的常见对象。在:舰队D.,Pajdla T.,Schiele B.,Tuytelaars T.(EDS)计算机愿景 - ECCV 2014. ECCV 2014.计算机科学的讲义笔记,Vol 8693。Springer,Cham。https://doi.org/10.1007/978-3-319-10602-1_48