主要内容

将Ground Truth对象导出到自定义和COCO JSON文件

这个示例向您展示了如何将一个基本事实对象导出到自定义数据格式JavaScript对象符号(JSON)文件,以及导出到COCO[1]数据格式JSON文件。

您可以解析JSON文件,用于机器学习框架中的训练和推理。自定义数据格式JSON文件的格式类似于COCO数据格式。不同之处在于,表示JSON文件的标签注释的格式被修改为包括ground truth对象支持的各种标签类型。金宝app

这个例子使用了一个ground truth对象,它包含了之前使用Video Labeler应用程序生成的标签。

要从Labeler应用程序导出一个ground truth对象到JSON文件,请遵循以下步骤:

  1. 使用图像标签器或视频标签器应用程序分别标签图像或视频。

  2. 将标签导出到文件或工作区,以生成一个基本事实对象。

  3. 按照本例中的步骤操作。

加载地面真相对象

加载一个ground truth对象

负载(“VehicleImageSequenceGroundTruth.mat”

显示标签定义

VehicleImageSequenceGroundTruth。LabelDefinitions
ans =3×6表名称类型LabelColor组描述层次结构  _________ _______ _____________________________ ___________ ___________ ____________ {' 汽车的}多边形0.5862 0.8276 0.3103{‘汽车’}{0×0字符}{1×1 struct}{“车道”}行0.49412 0.18431 0.55686{‘路’}{0×0字符}{0×0双}{‘阳光’}场景1 0.41176 - 0.16078{‘没有’}{0×0字符}{0×0双}

添加信息和License信息(可选)

通过指定Info和License Name-Value对,将元数据添加到注释中

信息= struct(...“年”, 2020,...“版本”' 1 '...“描述”“车辆数据集”...“date_created”,日期时间...);许可证= struct(...“url”, {“www.tatmou.com”“www.tatmou.com”},...“名字”, {“许可证1”《许可证2》...);

将Ground Truth对象导出为自定义数据格式JSON文件

使用exportGroundTruthToJSON函数将基本真相对象导出到JSON文件。

exportGroundTruthToJSON函数解析ground truth对象中的数据,并将其编码为所描述的自定义数据格式下面,然后生成JSON文件。

annotationsFileName =“vehicles_annotations.json”;exportGroundTruthToJSON (VehicleImageSequenceGroundTruth annotationsFileName,“信息”信息,“许可证”许可证)

导出对象检测地面真相对象到一个COCO数据格式JSON文件

使用exportGroundTruthToJSON“可可”Name-Value设置为真正的将使用多边形标记的对象检测数据导出到COCO对象检测数据格式JSON文件。

要创建用于对象检测的基本真相对象,可以将其导出为COCO数据格式JSON文件,请执行以下步骤:

  1. 使用多边形标签类型来标记对象实例。

  2. 使用像素标签类型来标记对象的人群区域。它的标签名应该如下:polygonLabelName_crowd(其中polygonLabelName是对应多边形标签的标签名)。

例如:

要注释同时包含人员实例和人群区域的图像,

  1. 创建类型为polygon的标签,名称为“人”用于注释人员实例。

  2. 创建一个对应的带有name的Pixel标签“person_crowd”注释人-人群区域。

“_crowd”后缀用于将两个标签绑定在一起。因此,确保每个人群像素标签都有一个对应的多边形标签。

注意:当导出到COCO对象检测数据格式时,将抛出一个预期的警告,指定被忽略的标签类型。在这种情况下,由于ground truth对象具有Line标签,它们将被忽略。

annotationsFileName =“vehicles_annotations_coco.json”;exportGroundTruthToJSON (VehicleImageSequenceGroundTruth annotationsFileName,...“信息”信息,“许可证”许可证,“可可”,真正的)
警告:不支持标签类型,Line, Scene,在导出到COCO数据格式JSON文件时将金宝app被忽略

自定义JSON数据格式

导出的JSON文件包含以下五个字段:

  1. 信息

  2. 许可证

  3. 类别

  4. 图像/视频

  5. 注释

信息

Info字段使用'Info'名-值对参数指定数据集和注释信息。取值必须为标量结构。

默认值:

{"year":当前年份,"version": "1", "description": "用MATLAB创建的","date_created":当前日期时间}

许可证

License字段通过使用License名称-值对参数指定关于License的信息。必须为结构数组。

默认值:[]

类别

Categories字段包含地面真值标签定义表的内容。表中的变量名用作字段,并修改为与COCO数据格式类似。附加字段Id标识每个标签定义。

每个category对象包含以下两个额外的字段,如果'Hierarchy'变量存在,它们将替换它:

  1. Attributes:包含标签的属性定义。

  2. 子标签:包含标签的子标签定义。

图像/视频

图像/视频字段包含图像(或视频)对象和相关信息的列表。

数据格式:

{"id":图像的唯一id, "time_stamp":图像帧的时间戳(只适用于有时间戳的数据源),"width":图像/视频的宽度,"height":图像/视频的高度,"file_name":文件的名称,"file_path":文件的绝对路径," date_俘获":图像的最后修改日期/当前日期时间}

注释

Annotations字段包含一个注释对象列表。标注对象的数据格式与标签类型有关,如下所示:

矩形ROI

{"id":唯一注释id, "image_id":图像id, "category_id":类别id, "position": [x,y,width,height]包围框位置,"attributes":包含属性数据," subblabels ":包含子标签数据}
  • x而且y指定矩形的左上角,索引为0。

  • w指定矩形的宽度,即矩形沿x设在。

  • h指定矩形的高度,即矩形沿y设在。

多边形ROI

{"id":唯一注释id, "image_id":图像id, "category_id":类别id, "position": [[x1 y1 x2 y2…xN yN]], "attributes":包含属性数据," subblabels ":包含子标签数据}

多段线ROI

{"id":唯一注释id, "image_id":图像id, "category_id":类别id, "position": [x1 y1 x2 y2…]xnyn]为折线上的N个点。,"attributes": Contains attributes data, "sublabels": Contains sublabels data }
  • (x1, y1,…指定点位置,索引为0。

ProjectedCuboid ROI

{"id":唯一注释id, "image_id":图像id, "category_id":类别id, "position":表单列表[xctr, yctr, zctr, xlen, ylen, zlen, xrot, yrot, zrot], "attributes":包含属性数据," subblabels ":包含子标签数据}
  • xctryctr,zctr指定投影长方体的中心,索引为0。

  • xlenylen,zlen指定沿投影的长方体的长度x设在,y设在,z-轴,在应用旋转之前。

  • xrotyrot,zrot指定投影长方体沿的旋转角度x设在,y设在,z分别设在。当观察它们对应轴的正向时,这些角是顺时针正的。

PixelLabel ROI

{"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":图像id, "category_id":图像适用场景标签的类别id}

限制

  1. 自定义标签类型不能导出到JSON文件。

  2. 不能将自定义阅读器地面真相数据源中的数据导出为JSON文件格式。

  3. 只有Polygon和crowd Pixel Label ROIs可以导出为COCO对象检测数据格式。

  4. “exportGroundTruthToJSON”辅助函数生成的JSON文件不能作为一个真实对象导入到MATLAB中。

参考文献

林泰等人(2014)微软COCO:上下文中的公共对象。见:Fleet D., Pajdla T., Schiele B., Tuytelaars T.(编)计算机视觉- ECCV 2014。2014年大会。计算机科学课堂讲稿,卷8693。施普林格,可汗。https://doi.org/10.1007/978-3-319-10602-1_48