这个示例向您展示了如何将ground truth对象导出为自定义数据格式JavaScript object Notation (JSON)文件,以及COCO[1]数据格式JSON文件。
您可以解析JSON文件,以用于机器学习框架中的训练和推理。自定义数据格式JSON文件的格式类似于COCO数据格式。不同之处在于,表示JSON文件的标签注释的格式被修改为包括ground truth对象支持的各种标签类型。金宝app
这个例子使用了一个ground truth对象,它包含先前使用Video Labeler应用程序生成的标签。
要从Labeler应用程序导出一个ground truth对象到JSON文件,遵循以下步骤:
使用“图像标签”或“视频标签”应用程序分别对图像或视频进行标签。
将标签导出到文件或工作区以生成一个地面真理对象。
按照此示例中的步骤操作。
装载一个地面实值对象
加载(“VehicleImageSequenceGroundTruth.mat”)
显示标签定义
LearsimageSequenceGroundtruth.Labledefinitions.
ans =3×6表名称类型LabelColor组描述层次结构 _________ _______ _____________________________ ___________ ___________ ____________ {' 汽车的}多边形0.5862 0.8276 0.3103{‘汽车’}{0 x0 char} {1 x1 struct}{“车道”}行0.49412 0.18431 0.55686{‘路’}{0 x0 char} {0 x0双}{‘阳光’}场景1 0.41176 - 0.16078{‘没有’}{0 x0 char} {0 x0双}
通过指定信息和许可证名称 - 值对将元数据添加到注释
info = struct(......'年',2020年,......“版本”那'1'那......'描述'那'车辆数据集'那......'创建日期',日期时间......);许可证= struct(......“url”, {“www.tatmou.com”那“www.tatmou.com”},......“名字”, {'许可证1'那'许可证2'}......);
使用Exportgroundtruthtojson.
函数要将地面真相对象导出到JSON文件。
这Exportgroundtruthtojson.
函数解析地面真相对象中的数据,以描述的自定义数据格式对其进行编码下面,然后生成JSON文件。
annotationsFileName ='车辆_ annotations.json';Exportgroundtruthtojson(LefortimageSequenceGroundtruth,Annotationsfilename,“信息”,信息,“许可证”许可证)
使用Exportgroundtruthtojson.
与“可可”
名称-值设置为真正的
将用多边形标记的对象检测数据导出到COCO对象检测数据格式的JSON文件。
要创建可以导出到Coco数据格式JSON文件的对象检测的地面真相对象,请按照下列步骤操作:
使用Polygon标签类型来标记对象实例。
使用像素标签类型来标记对象的人群区域。它的标签名称应如下:polygonlabelname_crowd(其中polygonlabelname是相应多边形标签的标签名称)。
例如:
要注释包含个人实例和人群区域的图像,
创建具有名称的类型多边形的标签“人”
用于注释人员实例。
创建一个名称的相应像素标签“person_crowd”
注释人群区域。
这'_人群'
后缀用于将两个标签绑定在一起。因此,确保对于每个人群像素标签,存在相应的多边形标签。
注意:虽然导出到COCO对象检测数据格式,但抛出预期的警告,指定忽略的标签类型。在这种情况下,由于地面真相对象具有线标签,因此它们将被忽略。
annotationsFileName =“vehicles_annotations_coco.json”;Exportgroundtruthtojson(LefortimageSequenceGroundtruth,Annotationsfilename,......“信息”,信息,“许可证”许可证,“可可”,真正的)
警告:不支持标签类型,线,场景,在导出到COCO数据格式JSON文件时被忽略金宝app
导出的JSON文件包含这五个字段:
信息
许可证
类别
图像/视频
注释
信息字段使用“Info”名称值对参数指定数据集和注释信息。该值必须是标量结构。
默认值:
{“一年”:当前年份,“版本”:“1”,“描述”:“使用MATLAB创建”,“date_created”:当前DateTime}
许可证字段通过使用许可证名称-值对参数指定有关许可证的信息。该值必须是结构数组。
默认值:[]
Categories字段包含基础真值标签定义表的内容。表中的变量名用作字段,并被修改为类似于COCO数据格式。另一个字段Id标识每个标签定义。
每个category对象包含以下两个额外的字段,如果存在,它们将替换'Hierarchy'变量:
属性:包含标签的属性定义。
子标签:包含子标签的标签定义。
图像/视频字段包含图像(或视频)对象和相关信息的列表。
数据格式:
{“ID”:唯一图像ID,“time_stamp”:图像帧的时间戳(仅适用于带时间戳的数据源),“宽度”:图像/视频的宽度,“高度”:图像/视频的高度,“file_name”:文件的名称,“file_path”:绝对文件路径,“date_capture”:图像/当前DateTime的最后修改日期}
Annotations字段包含注释对象列表。注释对象的数据格式取决于标签类型,如下:
{“ID”:唯一的注释ID,“image_id”:image ID,“category_id”:类别ID,“位置”:[x,y,宽度,高度]边界框位置,“属性”:包含属性数据,“子标签”“:包含子制造数据}
X
和y
指定矩形的左上角,并为0索引。
W.
指定矩形的宽度,即矩形沿边框的长度X设在。
H
指定矩形的高度,即矩形沿边框的长度y设在。
{"id":唯一标注id, "image_id":图像id, "category_id":类别id, "position": [[x1 y1 x2 y2…]对于多边形中的N个点,"attributes":包含属性数据," subblabels ":包含子标签数据}
{"id":唯一标注id, "image_id":图像id, "category_id":类别id, "position": [x1 y1 x2 y2…对于折线上的N个点。那"attributes": Contains attributes data, "sublabels": Contains sublabels data }
x1,y1,...指定点位置,并为0索引。
{“ID”:唯一的注释ID,“image_id”:image id,“category_id”:类别ID,“位置”:表单列表[xctr,yctr,zctr,xlen,ylen,zlen,xrot,yrot,zrot],“属性”:包含属性数据,“sublabels”:包含子字Blabels数据}
XCTR.
那yctr
,zctr
指定投影长方体的中心,并为0索引。
xlen.
那ylen.
,zlen
指定投影长方体的长度沿着X-轴,y设在,Z.旋转之前,分别在旋转之前分别进行速度。
Xrot.
那yrot.
,zrot
指定沿着投影长方体的旋转角度X-轴,y设在,Z.分别设在。这些角度是顺时针正的,当看在他们相应的轴向前的方向。
{“image_id”:image id,“file_name”:像素标签映像文件的名称,“file_path”:像素标签映像文件的路径,“segments_info”:段对象列表}
段对象格式:像素标签图像中的每个段都表示为一个段对象
{“ID”:如果PixelabelID是阵列,“Categor_ID”:类别ID,“区域”:像素所覆盖的区域,则标签或R + G * 256 + B * 256 ^ 2的Pixellabelid
{"id":唯一标注id, "image_id":图像id, "category_id":场景标签适用于图像的Category id}
自定义标签类型不能导出到JSON文件。
您无法将数据从自定义读取器地面真实性数据源导出为JSON文件格式。
只有Polygon和crowd Pixel Label ROIs可以导出为COCO对象检测数据格式。
“exportGroundTruthToJSON”helper函数生成的JSON文件不能作为ground truth对象导入到MATLAB中。
[1] Lin TY. et al. (2014) Microsoft COCO: Context中的公共对象。见:Fleet D., Pajdla T., Schiele B., Tuytelaars T.(编)Computer Vision - ECCV 2014。2014年大会。《计算机科学课堂讲稿》,第8693卷。施普林格,可汗。https://doi.org/10.1007/978-3-319-10602-1_48