
# 解析Pascal VOC文件
解析xml文件支持本地和OBS，如果是OBS，需要Session信息。
```
PascalVoc.parse_xml(xml_file_path, session=None)
```
#### 示例代码
指定xml路径，通过调用parse_xml来解析获取xml文件的信息。
```
from modelarts.dataset.format.voc.pascal_voc import PascalVoc
from modelarts.session import Session
path = "obs://your-obs-bucket/voc/test.xml"
session = Session()
pascal_voc = PascalVoc.parse_xml(path, session=session)
print(pascal_voc) # 打印解析结果
```
#### 参数说明
表1请求参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                    |
|:---|:---|:---|:---|
| xml_file_path | 是    | String | xml文件路径。                                                                                                              |
| session       | 否    | Object | 会话对象，初始化方法请参见[Session鉴权](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0123.html)。 当需要操作OBS时必填。 |
   
 表2pascal_voc 返回参数 
| 参数          | 参数类型       | 描述                                                                   |
|:---|:---|:---|
| folder      | String     | 文件夹名称。                                                               |
| file_name   | String     | 文件名称。                                                                |
| source      | Object     | 数据源信息，详细请见[表3]。   |
| width       | Long       | 图片长度。                                                                |
| height      | Long       | 图片高度。                                                                |
| depth       | Long       | 图片深度。                                                                |
| segmented   | String     | 分割。                                                                  |
| mask_source | String     | 图像分割得到的mask文件的云存储路径，目前只支持PNG格式。                                      |
| voc_objects | JSON Array | 标注对象列表，详细请见[表4]。 |
   
 表3source参数 
| 参数         | 参数类型   | 描述                              |
|:---|:---|:---|
| database   | String | 数据集名称，比如"The VOC2007 Database"。 |
| annotation | String | 标注，比如"PASCAL VOC2007"。          |
| image      | String | 图片信息。                           |
   
 表4voc_object参数 
| 参数         | 参数类型       | 描述                                                                                     |
|:---|:---|:---|
| name       | String     | 文件夹名称。                                                                                 |
| properties | JSON Array | 标注对象属性，为key-value列表格式，其中key和value的值均为String类型。                                         |
| pose       | String     | 标注内容的拍摄角度。                                                                             |
| truncated  | String     | 标注内容是否被截断（0表示完整）。                                                                      |
| occluded   | String     | 标注内容是否被遮挡（0表示未遮挡）。                                                                     |
| difficult  | String     | 标注目标是否难以识别（0表示容易识别）。                                                                   |
| confidence | Double     | 置信度，数值类型，范围0\<=confidence\<=1，表示机器标注的置信度。                                              |
| position   | Object     | 标注对象的位置信息，详细请见[表5]。                 |
| parts      | Object     | 子标注对象列表，即嵌套的voc_object列表，详细请见[表4]。 |
| mask_color | String     | 图像分割mask图像的颜色。                                                                         |
   
 表5Position说明 
| type    | 形状  | 标注信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| point   | 点   | 点的坐标 \<x\>100\<x\> \<y\>100\<y\>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| line    | 线   | 各点坐标 \<x1\>100\<x1\> \<y1\>100\<y1\> \<x2\>200\<x2\> \<y2\>200\<y2\>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| bndbox  | 矩形框 | 左下和右上两个点坐标 \<x_min\>100\<x_min\> \<y_min\>100\<y_min\> \<x_max\>200\<x_max\> \<y_max\>200\<y_max\>                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| polygon | 多边形 | 各点坐标 \<x1\>100\<x1\> \<y1\>100\<y1\> \<x2\>200\<x2\> \<y2\>100\<y2\> \<x3\>250\<x3\> \<y3\>150\<y3\> \<x4\>200\<x4\> \<y4\>200\<y4\> \<x5\>100\<x5\> \<y5\>200\<y5\> \<x6\>50\<x6\> \<y6\>150\<y6\> |
| circle  | 圆形  | 圆心坐标和半径 \<cx\>100\<cx\> \<cy\>100\<cy\> \<r\>50\<r\>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
