主要内容

导出地面真相对象自定义和COCO JSON文件

此示例演示如何将ground truth对象导出为自定义数据格式JavaScript对象表示法(JSON)文件和COCO[1]数据格式JSON文件。

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

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

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

  1. 使用图像标签机或视频标签机应用程序分别为图像或视频添加标签。

  2. 将标签导出到文件或工作区以生成一个ground truth对象。

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

装载地面真实物体

加载地面真实对象

负载(“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双}

添加信息和许可证信息(可选)

通过“Info”和“License名称-值”对,将元数据添加到注释中

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

导出地面真相对象到自定义数据格式JSON文件

使用exportGroundTruthToJSON函数将ground truth对象导出到JSON文件。

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

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

将对象检测地面真相对象导出为COCO数据格式JSON文件

使用exportGroundTruthToJSON“可可”名称值设置为符合事实的将用多边形标记的对象检测数据导出到COCO对象检测数据格式的JSON文件。

为对象检测创建一个ground truth对象,该对象可以导出到COCO数据格式的JSON文件,遵循以下步骤:

  1. 使用“多边形标签”类型为对象实例添加标签。

  2. 使用“像素”标签类型来标记对象的人群区域。其标签名称应为:polygonLabelName_crowd(其中polygonLabelName为对应多边形标签的标签名称)。

例如:

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

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

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

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

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

annotationsFileName =“vehicles\u annotations\u coco.json”;exportGroundTruthToJSON (VehicleImageSequenceGroundTruth annotationsFileName,...“信息”信息,“许可证”,执照,“可可”,对)
警告:标签类型、线、场景不受支持,在导出到COCO数据格式JSON文件期间将被忽略金宝app

自定义JSON数据格式

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

  1. 信息

  2. 许可证

  3. 类别

  4. 图像/视频

  5. 注释

信息

Info字段通过使用“Info”名称-值对参数指定数据集和注释信息。该值必须是标量结构。

默认值:

{"year":当前年份,"version": "1", "description": "Created using MATLAB", "date_created":当前日期时间}

执照

“许可证”字段使用“许可证名称-值对”参数指定有关许可证的信息。该值必须是结构数组。

默认值:[]

类别

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

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

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

  2. 子标签:Conatins子标签定义标签。

图像/视频

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

数据格式:

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

注释

“注释”字段包含注释对象的列表。注释对象的数据格式取决于标签类型,如下所示:

矩形ROI

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

  • w指定矩形的宽度,即矩形沿边框的长度x-轴心国。

  • h指定矩形的高度,即其沿矩形的长度y-轴心国。

多边形ROI

{“id”:唯一注释id,“image_id”:image id,“category_id”:category id,“position”:[[x1 y1 x2 y2…xN yN]]对于多边形中的N个点,“attributes”:包含属性数据,“sublabel”:包含子标签数据}

多段线ROI

{“id”:唯一注释id,“image_id”:image id,“category_id”:category id,“position”:[x1 y1 x2 y2…xN yN]用于多段线中的N个点。,“attributes”:包含属性数据,“sublabel”:包含子标签数据}
  • (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 ":包含子标签数据}
  • xctryctrzctr指定投影长方体的中心,索引为0。

  • xlen伊伦兹伦指定投影长方体的长度x-轴心国,y-轴线,以及z-axis,在应用旋转之前。

  • xrotyrot兹罗特指定投影长方体的旋转角度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”:image id,“category_id”:适用于图像的场景标签的category id}

局限性

  1. 无法将自定义标签类型导出到JSON文件。

  2. 无法将数据从自定义reader数据源导出为JSON文件格式。

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

  4. “exportGroundTruthToJSON”helper函数生成的JSON文件不能作为ground truth对象导入到MATLAB中。

参考文献

[1] 林蒂。等。(2014)微软COCO:上下文中的常见对象。In:Fleet D.,Pajdla T.,Schiele B.,Tuytelaars T.(eds)计算机视觉–ECCV 2014。ECCV 2014。计算机科学课堂讲稿,第8693卷。湛,斯普林格。https://doi.org/10.1007/978-3-319-10602-1_48