JSON
了解 JSON 如何简化 AI 数据交换。了解如何将 Ultralytics YOLO26 预测结果导出为 JSON,以实现无缝 API 集成和模型部署。
JSON,即 JavaScript 对象表示法,是一种用于存储和传输数据的轻量级文本格式。在人工智能和机器学习领域,它作为服务器、Web 应用与推理引擎之间数据交换的通用标准。其结构由键值对和有序列表组成,便于人类读写,也易于机器解析和生成。由于与编程语言无关,JSON 能够促进使用 Python 训练的模型与运行于 JavaScript、C++ 或 Go 上的部署环境之间的无缝通信。
AI 流水线和部署中的 JSON#
当计算机视觉模型部署到生产环境时,通常会通过 REST API 与其他软件组件交互。例如,监控系统将视频帧发送到运行目标检测模型的服务器时,服务器会分析图像并返回结果。服务器不会返回二进制图像,而是返回一个 JSON 字符串,其中包含边界框的坐标、检测到的类别名称及其对应的置信度分数。这种基于文本的响应很容易被前端仪表板、移动应用或 MongoDB 等 NoSQL 数据库使用,以进行日志记录和分析。
除了推理之外,JSON 对组织训练数据也至关重要。广泛使用的 COCO 数据集格式采用全面的 JSON 架构来定义图像文件路径、许可信息和标注坐标。与之相比,YOLO TXT 格式等其他格式使用简单的空格分隔文本文件。Ultralytics 平台上的高级工具通常会使用 JSON,在云端管理复杂的项目元数据和数据集版本。
将模型预测结果转换为 JSON#
现代框架简化了数据序列化流程,使开发者能够直接将模型输出导出为 JSON。ultralytics 库提供了用于序列化检测结果的内置方法,从而可以轻松地将 YOLO26 模型集成到更大的软件生态系统中。
以下示例演示了如何使用 Ultralytics YOLO26 模型运行推理,并将检测结果转换为标准化的 JSON 字符串:
import json
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Convert the first result object to a JSON string
# This serializes boxes, classes, and confidence scores
json_output = results[0].tojson()
# Parse back to a dict to verify structure
data = json.loads(json_output)
print(f"Detected {len(data)} objects.")JSON 与相关格式的对比#
虽然 JSON 广泛用于Web 开发和 API 设计,但在深度学习工作流中,必须将其与其他常见的数据序列化格式区分开来。
- JSON 与 YAML 的对比: YAML 旨在实现最大程度的人类可读性,并支持注释,因此是配置文件的首选格式。例如,Ultralytics 中的超参数调优设置或数据集路径会定义在
.yaml文件中。JSON 的限制更严格,不支持注释,通常也更适合机器解析,因此更适用于数据传输和 API 响应。 - JSON 与 XML 的对比: XML 采用冗长的基于标签的结构。虽然它曾经是 Pascal VOC 等数据集的标准格式,但由于 JSON 文件更小、语法更简单,在现代机器学习运维中,XML 已基本被 JSON 取代。
标准化与互操作性#
JSON 的广泛采用促进了不同工具之间的互操作性。无论是导出实例分割掩码、存储图像分类标签,还是配置模型部署流水线,JSON 都能确保数据保持结构化且易于访问。其应用还扩展到 GeoJSON,这是一种用于编码地理数据结构的专用格式,常用于卫星图像分析,将检测到的对象映射到地理坐标上。借助 Python 内置的 json 库,开发者可以轻松验证、解析和操作这些数据结构,从而构建稳健的 AI 应用。









