深圳Yolo 视觉
深圳
立即加入
词汇表

XML

了解 XML 如何通过数据注释、配置和交换来支持 AI 和 ML。了解它的结构、用途和实际应用!

可扩展标记语言(通常称为 XML)是一种灵活的、基于文本的格式,用于在不同的计算系统中存储、组织和传输数据。 跨不同计算系统传输数据。HTML 侧重于数据的显示方式,而 XML 则不同。 利用自定义标记的分层结构来定义元素和属性,从而描述数据是什么。这种 功能使其成为数据交换和配置管理的持久标准。在快速发展的 在快速发展的机器学习(ML)领域,XML 仍然是 在快速发展的机器学习(ML)领域,XML 仍然是构建复杂数据集的重要格式,尤其是那些需要详细元数据和严格验证的数据集。 万维网联盟(W3C)定义的标准。

XML 在人工智能中的作用

在 在人工智能(AI)领域,结构化 数据是推动复杂算法的动力。XML 为 数据注释提供了一个强大的框架,使工程师能够将原始信息(如图像或文本 原始信息(如图像或文本)与丰富的描述性元数据进行封装。这种结构化方法对于 这种结构化方法对于有监督的学习至关重要。 标注的示例来学习模式。虽然现代工作流越来越多地使用轻量级格式,但 XML 的冗长 和严格的语法确保了数据的完整性,使其成为传统系统、企业集成和特定应用的首选。 集成和特定的 计算机视觉任务的首选。

人工智能和机器学习在现实世界中的应用

XML 在多种实际应用中都发挥着重要作用,尤其是在数据标准化和互操作性至关重要的情况下。 是至关重要的。

  • 物体检测数据集(PASCALVOC):XML 在计算机视觉领域最突出的应用之一是 PASCAL 视觉对象类 (VOC)格式。在这种 标准中,数据集中的每张图像都与包含注释细节的 XML 文件配对。这些文件定义了 边界框坐标(xmin、ymin、xmax、ymax) 以及每个对象的类别标签。模型如 YOLO11等模型可以 像 YOLO11 这样的模型可以利用这些注释(通常转换为 txt 格式)来学习如何识别和定位物体,这是物体检测的基础过程。 对象检测的基础。
  • 医学影像和医疗保健:医疗保健领域的人工智能,互操作性至关重要。 医学数字成像和通信(DICOM)标准、 数字成像和通信医学(DICOM)标准被普遍用于医学扫描,经常与 XML 相连接,以处理复杂的元数据。XML 允许 结构化报告患者数据、研究参数和诊断结果,促进医学影像分析,并确保数据的互操作性。 医疗图像分析,并确保 人工智能模型严格遵守健康数据标准,如 HL7

比较 XML、JSON 和 YAML

要了解 XML 在现代人工智能堆栈中的位置,最好将它与其他数据序列化格式区分开来。 数据序列化格式 Ultralytics 术语表中的其他数据序列化格式:

  • XML 与JSON(JavaScript 对象符号) JSON 更轻便、更简洁、解析速度更快,因此成为网络应用程序接口和简单数据传输的标准。 不过,XML 支持模式和命名空间,可为复杂的、以文档为中心的数据提供更强的验证。
  • XML 与YAMLYAML 优先考虑人类 可读性,是 模型配置 Ultralytics 标准。 YAML 依赖于缩进,而 XML 则依赖于明确的开头和结尾标记。XML 通常用于 机器对机器的验证比人的可编辑性更重要。

为计算机视觉解析 XML

在处理传统数据集或特定的训练数据格式时 训练数据格式时,开发人员通常需要解析 XML 来提取标签和坐标。下面的Python 示例演示了如何从原始 XML 字符串中提取边界框信息。 信息,模拟训练模型前的典型数据预处理步骤。

import xml.etree.ElementTree as ET

# Simulating a PASCAL VOC style XML annotation content
voc_xml_data = """
<annotation>
    <object>
        <name>person</name>
        <bndbox>
            <xmin>50</xmin>
            <ymin>30</ymin>
            <xmax>200</xmax>
            <ymax>400</ymax>
        </bndbox>
    </object>
</annotation>
"""

# Parse the XML data
root = ET.fromstring(voc_xml_data)

# Extract label and coordinates for object detection
for obj in root.findall("object"):
    label = obj.find("name").text
    bbox = obj.find("bndbox")
    coords = [int(bbox.find(tag).text) for tag in ["xmin", "ymin", "xmax", "ymax"]]

    print(f"Class: {label}, Box: {coords}")
    # Output: Class: person, Box: [50, 30, 200, 400]

在将现有的基于 XML 的数据集转换为与现代 YOLO 架构兼容的格式时,这种解析逻辑至关重要。 YOLO 架构兼容的格式时,这种解析YOLO 至关重要。了解这些结构可以让 从业人员能够有效地利用庞大的 开源数据集

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入