更新时间:2022-11-24 GMT+08:00

创建和保存Pascal VOC文件

需要先创建包含Pascal VOC信息的对象,然后保存。Pascal VOC信息请见表2。路径支持本地和OBS,如果是OBS,需要Session信息。

pascal_voc.save_xml(xml_file_path, save_mode='w', session=None)

示例代码

在保存Pascal VOC的XML文件之前需要先创建包含Pascal VOC信息的对象,包括voc object信息等。保存的时候调用save_xml接口,将session信息传入,即可保存到指定路径。
from modelarts.dataset.format.voc.pascal_voc import PascalVoc
from modelarts.dataset.format.voc.voc_object import VocObject
from modelarts.session import Session

path = "obs://your-obs-bucket/voc/test2.xml"
size_list = [640, 321, 3]
file_name = "000000089955.jpg"
voc_object_tags = ["trafficlight", "trafficlight"]
voc_object_properties = [{"@modelarts:color": "#FFFFF0", "@modelarts:shortcut": "C",
                          "pose": "0", "truncated": "0", "difficult": "0",
                          "@modelarts:shape": "bndbox", "@modelarts:feature": [[347, 186], [382, 249]]},
                         {"@modelarts:color": "#FFFFE0", "@modelarts:shortcut": "D",
                          "pose": "0", "truncated": "0", "difficult": "0",
                          "@modelarts:shape": "bndbox", "@modelarts:feature": [[544, 50], [591, 149]]}]
voc_objects = []
for i in range(len(voc_object_tags)):
    object_tag = voc_object_tags[i]
    object_properties = voc_object_properties[i]
    voc_objects.append(VocObject(name=object_tag, properties=object_properties))

pascal_voc = PascalVoc(file_name=file_name, width=size_list[0], height=size_list[1], depth=size_list[2],
                       voc_objects=voc_objects)
session = Session()
pascal_voc.save_xml(path, session=session)

参数说明

表1 请求参数

参数

是否必选

参数类型

描述

xml_file_path

String

Pascal VOC格式的XML文件保存路径。

session

Object

会话对象,初始化方法请参见Session鉴权。 当需要操作OBS时必填。

save_mode

String

保存模式。默认为w,即重写模式,另外还支持a,为追加模式。