JSON
JSON이 AI 데이터 교환을 간소화하는 방법을 알아봅니다. 원활한 API 통합과 모델 배포를 위해 Ultralytics YOLO26 예측 결과를 JSON으로 내보내는 방법을 살펴봅니다.
JSON 또는 JavaScript 객체 표기법은 데이터를 저장하고 전송하는 데 사용되는 경량 텍스트 기반 형식입니다. 인공지능 및 머신러닝 분야에서 JSON은 서버, 웹 애플리케이션, 추론 엔진 간 데이터 교환을 위한 범용 표준으로 사용됩니다. 키-값 쌍과 순서가 있는 목록으로 구성된 구조는 사람이 읽고 작성하기 쉬우며, 기계가 구문 분석하고 생성하기도 간편합니다. 언어에 독립적이므로 JSON은 Python으로 학습된 모델과 JavaScript, C++ 또는 Go에서 실행되는 배포 환경 간의 원활한 통신을 지원합니다.
AI 파이프라인 및 배포에서의 JSON#
컴퓨터 비전 모델을 프로덕션 환경에 배포하면 일반적으로 REST API를 통해 다른 소프트웨어 구성 요소와 상호 작용합니다. 예를 들어 감시 시스템이 객체 탐지 모델을 실행하는 서버로 비디오 프레임을 보내면, 서버는 이미지를 분석하고 결과를 반환합니다. 서버는 바이너리 이미지를 다시 보내는 대신 바운딩 박스의 좌표, 감지된 클래스 이름 및 관련 신뢰도 점수가 포함된 JSON 문자열로 응답합니다. 이러한 텍스트 기반 응답은 프런트엔드 대시보드, 모바일 앱 또는 로깅 및 분석을 위한 MongoDB와 같은 NoSQL 데이터베이스에서 쉽게 사용할 수 있습니다.
추론을 넘어 JSON은 학습 데이터를 구조화하는 데도 중요합니다. 널리 사용되는 COCO 데이터셋 형식은 이미지 파일 경로, 라이선스 정보 및 어노테이션 좌표를 정의하기 위해 포괄적인 JSON 스키마를 사용합니다. 이는 간단한 공백 구분 텍스트 파일을 사용하는 YOLO TXT 형식과 대조됩니다. Ultralytics Platform의 고급 도구는 클라우드에서 복잡한 프로젝트 메타데이터와 데이터셋 버전 관리를 위해 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은 웹 개발 및 API 설계에서 널리 사용되지만, 딥러닝 워크플로에서 흔히 접하는 다른 데이터 직렬화 형식과 구분하는 것이 중요합니다.
- JSON과 YAML 비교: YAML은 사람이 최대한 쉽게 읽을 수 있도록 설계되었고 주석을 지원하므로 구성 파일에 선호되는 형식입니다. 예를 들어 Ultralytics의 하이퍼파라미터 튜닝 설정이나 데이터셋 경로는
.yaml파일에 정의됩니다. JSON은 더 엄격하고 주석을 지원하지 않으며 일반적으로 기계가 더 빠르게 구문 분석할 수 있으므로 데이터 전송 및 API 응답에 더 적합합니다. - JSON과 XML 비교: XML은 장황한 태그 기반 구조를 사용합니다. 한때 Pascal VOC와 같은 데이터셋의 표준이었지만, 파일 크기가 더 작고 구문이 더 단순한 JSON이 현대의 머신러닝 운영(MLOps)에서 XML을 대부분 대체했습니다.
표준화 및 상호 운용성#
JSON의 광범위한 채택은 다양한 도구 간 상호 운용성을 촉진합니다. 인스턴스 세그멘테이션 마스크를 내보내거나, 이미지 분류 라벨을 저장하거나, 모델 배포 파이프라인을 구성하는 경우에도 JSON은 데이터가 구조화되고 접근 가능한 상태로 유지되도록 합니다. JSON의 역할은 지리 데이터 구조를 인코딩하기 위한 특수 형식인 GeoJSON으로도 확장됩니다. GeoJSON은 위성 이미지 분석에서 감지된 객체를 지리 좌표에 매핑하는 데 자주 사용됩니다. 개발자는 Python에 기본 제공되는 json 라이브러리를 활용하여 이러한 데이터 구조를 쉽게 검증하고, 구문 분석하고, 조작함으로써 견고한 AI 애플리케이션을 구축할 수 있습니다.









