Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

JSON

JSONは、API、アノテーション、モデル出力に使われる、オブジェクト、配列、値を表すテキスト形式です。構文規則、MLでの用途、JSON Lines、コードについて解説します。

JavaScript Object Notationの略称であるJSONは、構造化データの保存や交換に使う軽量なテキスト形式です。Douglas Crockfordが2000年代初頭に仕様を定め、JavaScriptのオブジェクトリテラル構文を基にしており、現在はIETF RFC 8259およびECMA-404として標準化されています。JSONは言語に依存せず、人が読みやすく、ほぼすべてのプログラミング言語の標準ライブラリで解析できるため、Web APIのデフォルト形式になっています。機械学習(ML)では、推論エンジンから予測結果を受け取り、データセットのアノテーションを保存し、実験のメタデータを記録し、大規模言語モデル(LLM)の構造化出力を定義します。

JSON構文#

JSONドキュメントは、2種類のコンテナと4種類の値で構成されます。

  • オブジェクト: 波括弧で囲まれたキーと値の順不同の集合です。例:{"name": "bus", "confidence": 0.94}。キーは二重引用符で囲んだ文字列である必要があります。
  • 配列: 角括弧で囲まれた順序付きリストです。例:[48.5, 398.0, 245.3, 902.1]。
  • 値: 文字列、数値、リテラルtrue、false、null、またはネストされたオブジェクトと配列です。

この形式には厳格なルールがあります。コメント、末尾のカンマ、シングルクォートで囲まれた文字列、および値NaNとInfinityは使用できません。ただし、Pythonのjsonモジュールは、allow_nan=Falseが設定されていない限り、デフォルトでNaNを書き込み、厳格なパーサーが拒否するファイルを生成します。RFC 8259はまた、数値を確実に交換できるのはIEEE 754倍精度の範囲内に限られると警告しています。そのため、一部のデータベースIDのように2⁵³ − 1を超える整数は、文字列として送信されることがよくあります。

機械学習ワークフローにおけるJSON#

セキュリティシステムのカメラがフレームを物体検出サービスに送信すると、通常、モデルサービング層はJSONで応答します。検出された物体ごとに1つのレコードがあり、クラス、信頼度スコア、バウンディングボックスの座標が含まれます。結果は、ダッシュボード、モバイルアプリ、MongoDBなどのドキュメントデータベースですぐに利用できます。

アノテーション形式でもJSONが使用されます。COCOデータセットでは、各データセット分割のすべてのラベルを1つのJSONファイルに保存し、そのJSONファイルに含まれる主な3つのリストは、ファイル名とサイズを含むimages、クラスIDと名前を含むcategories、および各エントリーがIDで画像とカテゴリを参照し、左上隅を原点とするピクセル単位のボックスを[x, y, width, height]として保存するannotationsです。一方、YOLO形式では画像ごとに正規化された中心座標を記録したテキストファイルを1つ使用し、2つの形式間の変換はデータアノテーションパイプラインで一般的な手順ですが、カスタムデータセットクラスを使ってCOCO JSONからYOLOを直接学習することもできます。

JSON Lines(NDJSONとも呼ばれます)は、1行ごとに完全なJSONオブジェクトを1つ記述します。ファイル全体を解析せずに追記、ストリーミング、分割できるため、学習ログ、予測ストリーム、LLMのファインチューニングに使う指示データセットに適しています。LLMでは、JSON Schemaによってアプリケーションが期待する正確なフィールドを記述し、構造化出力と関数呼び出しによって、モデルがそれに適合するJSONを生成するよう制約します。GeoJSONはRFC 7946として標準化されており、この形式を地理的特徴に適用します。これにより、衛星画像解析で検出結果を地図上に配置できます。

予測結果をJSONに変換する#

Ultralytics YOLOのResultsオブジェクトは、to_json()を使って予測結果をシリアライズします。検出ごとに1つのレコードを書き出し、クラス名、クラスID、信頼度、ボックスの角x1、y1、x2、y2に加えて、インスタンスセグメンテーションモデルとポーズ推定モデルではマスクまたはキーポイントの座標を記録します。次の例では、サンプル画像にYOLO26を適用し、Pythonの標準ライブラリでJSONを再度解析します。

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))

出力されたレコードは、キーname、class、confidenceを持つJSONオブジェクトです。ネストされた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を活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう