Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

JSON

JSON — текстовый формат объектов, массивов и значений, используемый в API, аннотациях и выходных данных моделей. Правила синтаксиса, применение в ML, JSON Lines и код.

JSON — сокращение от JavaScript Object Notation («нотация объектов JavaScript»), облегчённый текстовый формат для хранения и обмена структурированными данными. Дуглас Крокфорд описал его в начале 2000-х, взяв за основу синтаксис литералов объектов JavaScript; сейчас формат стандартизирован в IETF RFC 8259 и ECMA-404. JSON не зависит от языка программирования, удобен для чтения и разбирается стандартными библиотеками почти всех языков, поэтому стал форматом по умолчанию для веб-API. В машинном обучении (ML) JSON передаёт результаты из движков инференса, хранит аннотации датасетов и метаданные экспериментов, а также задаёт структуру ответов больших языковых моделей (LLMs).

Синтаксис JSON#

Документ JSON состоит из двух контейнеров и четырёх типов значений:

  • Объекты: Неупорядоченные наборы пар «ключ — значение» в фигурных скобках, например {"name": "bus", "confidence": 0.94}. Ключи должны быть строками в двойных кавычках.
  • Массивы: Упорядоченные списки в квадратных скобках, например [48.5, 398.0, 245.3, 902.1].
  • Значения: Строки, числа, литералы true, false и null, а также вложенные объекты и массивы.

Формат строгий. Комментарии, завершающие запятые, строки в одинарных кавычках и значения NaN и Infinity не допускаются, хотя модуль Python json по умолчанию записывает NaN, если не задан allow_nan=False, создавая файлы, которые отклоняют строгие парсеры. В RFC 8259 также отмечено, что числа надёжно передаются только в диапазоне точности чисел с плавающей запятой двойной точности IEEE 754, поэтому целые числа больше 2⁵³ − 1, например некоторые идентификаторы баз данных, часто передаются в виде строк.

JSON в рабочих процессах машинного обучения#

Когда камера в системе безопасности отправляет кадр в сервис обнаружения объектов, уровень обслуживания моделей обычно отвечает в формате JSON: по одной записи на обнаруженный объект с его классом, оценкой уверенности и координатами ограничивающего прямоугольника. Эти данные можно сразу использовать в панелях мониторинга, мобильных приложениях и документоориентированных базах данных, например MongoDB.

Форматы аннотаций тоже используют JSON. В наборе данных COCO все метки одного раздела хранятся в одном JSON-файле с тремя основными списками: images содержит имена и размеры файлов, categories — идентификаторы и имена классов, а annotations — записи, каждая из которых указывает изображение и категорию по идентификатору и хранит рамку как [x, y, width, height] в пикселях от верхнего левого угла. Формат YOLO, напротив, использует один текстовый файл на изображение с нормализованными координатами центра. Преобразование между этими форматами — обычный этап конвейеров разметки данных, хотя пользовательский класс набора данных также может обучать YOLO напрямую на JSON COCO.

В JSON Lines, также известном как NDJSON, на каждой строке записан целый объект JSON. Такие файлы можно дополнять, передавать потоком и разбивать на части без разбора всего документа, что удобно для журналов обучения, потоков предсказаний и наборов инструкций, используемых для дообучения LLM. Для LLM JSON Schema описывает точные поля, ожидаемые приложением, а структурированные выходные данные и вызов функций ограничивают модель формированием соответствующего JSON. GeoJSON, стандартизированный в RFC 7946, применяет этот формат к географическим объектам, благодаря чему результаты анализа спутниковых снимков можно размещать на карте.

Преобразование предсказаний в JSON#

Объекты Results Ultralytics YOLO сериализуют предсказания с помощью to_json(), записывая по одной записи на обнаружение с именем класса, идентификатором класса, уверенностью и координатами углов рамки x1, y1, x2, y2, а также координатами маски или ключевых точек для моделей сегментации экземпляров и оценки позы. В следующем примере YOLO26 запускается на тестовом изображении, после чего JSON разбирается стандартной библиотекой Python:

import json

from ultralytics import YOLO

# Загрузи предварительно обученную модель обнаружения YOLO26 и запусти инференс
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]

# Сериализуй каждое обнаружение в строку JSON (normalize=True масштабирует рамки в диапазон 0–1)
json_string = result.to_json()

# Любой парсер JSON сможет прочитать данные обратно, например в список словарей Python
detections = json.loads(json_string)
print(json.dumps(detections[0], indent=2))

Выведенная запись — это объект JSON с ключами name, class и confidence, а также вложенным объектом box, содержащим координаты углов в пикселях.

  • YAML: Более удобный для чтения формат с комментариями и вложенностью, задаваемой отступами; часто используется для конфигураций обучения и описаний датасетов. YAML 1.2 задуман как надмножество JSON, поэтому большинство документов JSON являются допустимыми документами YAML.
  • XML: Формат на основе тегов, используемый для аннотаций Pascal VOC. Он многословнее JSON и поддерживает атрибуты, пространства имён и схемы.
  • CSV: Плоский табличный формат, компактный для табличных данных, но не поддерживающий вложенные объекты и списки.
  • Бинарные форматы: Protocol Buffers и MessagePack компактнее JSON и быстрее разбираются, но не предназначены для чтения человеком. Файлы моделей ONNX хранятся в виде сообщений Protocol Buffers.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения