추론
Ultralytics Platform 훈련된 모델 테스트를 위한 추론 API를 제공합니다. 브라우저 기반 Predict 탭을 눌러 빠르게 확인하거나 REST API 프로그램 방식 접근을 위해.

예측 탭
모든 모델에는 포함됩니다. Predict 브라우저 기반 추론을 위한 탭:
- 모델로 이동
- 예측 탭을 클릭하세요
- 이미지를 업로드하거나, 예시를 사용하거나, 웹캠을 켜세요
- 바운딩 박스 오버레이로 예측 결과를 즉시 확인하세요

입력 방법
예측 패널은 여러 입력 방식을 지원합니다:
| 메서드 | 설명 |
|---|---|
| 이미지 업로드 | 이미지를 드래그 앤 드롭하거나 클릭하여 업로드하세요 |
| 예시 이미지 | 내장된 예제(데이터셋 이미지 또는 기본값)를 클릭하세요 |
| 웹캠 캡처 | 실시간 카메라 영상과 단일 프레임 캡처 |
graph LR
A[Upload Image] --> D[Auto-Inference]
B[Example Image] --> D
C[Webcam Capture] --> D
D --> E[Results + Overlays]
style D fill:#2196F3,color:#fff
style E fill:#4CAF50,color:#fff
이미지 업로드
드래그 앤 드롭 또는 클릭하여 업로드:
- 지원되는 형식: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
- 최대 크기: 10MB
- 자동 추론: 업로드 후 결과가 자동으로 표시됩니다
자동 추론
예측 패널은 이미지를 업로드하거나, 예시를 선택하거나, 웹캠 프레임을 캡처할 때 자동으로 추론을 실행합니다. 버튼 클릭이 필요하지 않습니다.
예시 이미지
예측 패널에는 모델에 연결된 데이터 세트의 예시 이미지가 표시됩니다. 데이터 세트가 연결되지 않은 경우 기본 예시가 사용됩니다:
| 이미지 | 내용 |
|---|---|
bus.jpg | 차량이 있는 거리 풍경 |
zidane.jpg | 사람들이 있는 스포츠 장면 |
OBB 모델의 경우, 대신 보트와 공항의 항공 사진이 표시됩니다.
사전 로드된 이미지
페이지 로드 시 예시 이미지가 미리 불러와지므로, 예시를 클릭하면 다운로드 대기 시간 없이 거의 즉시 추론이 실행됩니다.
웹캠
웹캠 카드를 클릭하여 실시간 카메라 영상을 시작하세요:
- 카메라 권한 요청 시 허용하세요
- 동영상 미리보기를 클릭하여 프레임을 캡처하세요
- 추론은 캡처된 프레임에서 자동으로 실행됩니다
- 다시 클릭하여 웹캠을 재시작하세요
결과 보기
추론 결과 표시:
- SVG 오버레이로 표시된 클래스 레이블이 있는 바운딩 박스
- 각 감지에 대한 신뢰도 점수
- 데이터 세트의 색상 팔레트(또는 Ultralytics 팔레트)에서 클래스 색상
- 속도 분해: 전처리, 추론, 후처리 및 네트워크 시간

결과 패널에는 다음과 같이 표시됩니다:
| 필드 | 설명 |
|---|---|
| 탐지 목록 | 클래스 이름과 신뢰도를 포함한 각 탐지 |
| 속도 통계 | 전처리, 추론, 후처리, 네트워크 (ms) |
| JSON 응답 | 코드 블록 내의 원시 API 응답 |
추론 매개변수
접을 수 있는 매개변수 섹션의 매개변수를 사용하여 감지 동작을 조정하십시오:

| 파라미터 | 범위 | 기본값 | 설명 |
|---|---|---|---|
| 신뢰도 | 0.01-1.0 | 0.25 | 최소 신뢰도 임계값 |
| IoU | 0.0-0.95 | 0.70 | NMS IoU 임계값 |
| 이미지 크기 | 320, 640, 1280 | 640 | 크기 조정 입력 (버튼 토글) |
자동 재실행
매개변수를 변경하면 현재 이미지에 대해 500밀리초 디바운스(반동 제거) 후 추론을 자동으로 재실행합니다. 재업로드할 필요가 없습니다.
신뢰도 임계값
신뢰도에 따라 예측 필터링:
- 높음 (0.5 이상): 더 적고, 더 확실한 예측
- 낮음 (0.1-0.25): 더 많은 예측, 일부 노이즈 포함
- 기본값 (0.25): 대부분의 사용 사례에 균형 잡힘
IoU 임계값
NMS 제어:
- 높음 (0.7+): 더 많은 상자 중첩 허용
- 낮음 (0.3-0.5): 인접한 탐지 결과를 더 적극적으로 병합
- 기본값 (0.70): 대부분의 사용 사례에 대해 균형 잡힌 NMS
배포 예측
각 실행 전용 엔드포인트 포함한다 Predict 배포 카드에서 직접 탭합니다. 이는 공유 예측 서비스 대신 배포 자체의 추론 서비스를 사용하므로, 브라우저에서 배포된 엔드포인트를 테스트할 수 있습니다.
REST API
추론을 프로그래밍 방식으로 액세스:
인증
요청에 API 키 포함:
Authorization: Bearer YOUR_API_KEY
API 키가 필요합니다
자신의 스크립트, 노트북 또는 앱에서 추론을 실행하려면 API 키를 포함하세요. 생성하려면 Settings (프로필 탭의 API 키 섹션).
엔드포인트
POST https://platform.ultralytics.com/api/models/{modelId}/predict
요청
import requests
url = "https://platform.ultralytics.com/api/models/MODEL_ID/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
curl -X POST \
"https://platform.ultralytics.com/api/models/MODEL_ID/predict" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.25" \
-F "iou=0.7" \
-F "imgsz=640"
const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("conf", "0.25");
formData.append("iou", "0.7");
formData.append("imgsz", "640");
const response = await fetch(
"https://platform.ultralytics.com/api/models/MODEL_ID/predict",
{
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY" },
body: formData,
}
);
const result = await response.json();
console.log(result);

응답
{
"images": [
{
"shape": [1080, 1920],
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
},
{
"class": 2,
"name": "car",
"confidence": 0.87,
"box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
}
],
"speed": {
"preprocess": 1.2,
"inference": 12.5,
"postprocess": 2.3
}
}
],
"metadata": {
"imageCount": 1,
"functionTimeCall": 0.018,
"model": "model.pt",
"version": {
"ultralytics": "8.4.14",
"torch": "2.6.0",
"torchvision": "0.21.0",
"python": "3.13.0"
}
}
}

응답 필드
| 필드 | 유형 | 설명 |
|---|---|---|
images | array | 처리된 이미지 목록 |
images[].shape | array | 이미지 크기 [높이, 너비] |
images[].results | array | detect 목록 |
images[].results[].name | 문자열 | 클래스 이름 |
images[].results[].confidence | 부동 소수점 | detect 신뢰도 (0-1) |
images[].results[].box | object | 바운딩 박스 좌표 |
images[].speed | object | 처리 시간 (밀리초) |
metadata | object | 메타데이터 및 버전 정보 요청 |
작업별 응답
응답 형식은 작업에 따라 다름:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"segments": [[100, 50], [150, 60], ...]
}
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"keypoints": [
{"x": 200, "y": 75, "conf": 0.95},
...
]
}
{
"results": [
{"class": 0, "name": "cat", "confidence": 0.95},
{"class": 1, "name": "dog", "confidence": 0.03}
]
}
{
"class": 0,
"name": "ship",
"confidence": 0.89,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"obb": {"x1": 105, "y1": 48, "x2": 295, "y2": 55, "x3": 290, "y3": 395, "x4": 110, "y4": 402}
}
속도 제한
공유 추론은 속도 제한이 적용됩니다. API 키당 분당 20회 요청. 제한될 경우, API는 반환합니다 429 with a Retry-After 헤더. 전체 보기 속도 제한 참조 모든 엔드포인트 범주에 대해.
더 많은 처리량이 필요하신가요?
제한 없는 추론을 위해 전용 엔드포인트를 배포하세요. 속도 제한 없이 예측 가능한 처리량과 일관된 저지연 응답을 제공합니다. 로컬 추론에 대해서는 예측 모드 가이드를 참조하세요.
오류 처리
일반적인 오류 응답:
| 코드 | 메시지 | 솔루션 |
|---|---|---|
| 400 | 유효하지 않은 이미지 | 파일 형식 확인 |
| 401 | 권한 없음 | API 키 확인 |
| 404 | 모델을 찾을 수 없음 | 모델 ID 확인 |
| 429 | 속도 제한됨 | 대기 후 재시도하거나, 무제한 처리량을 위한 전용 엔드포인트를 사용하십시오. |
| 500 | 서버 오류 | 요청 재시도 |
FAQ
비디오에서 추론을 실행할 수 있나요?
API는 개별 프레임을 허용합니다. 비디오의 경우:
- 로컬에서 프레임 추출
- 각 프레임을 API로 전송
- 결과 집계
실시간 비디오의 경우 전용 엔드포인트 배포를 고려하십시오.
주석이 달린 이미지를 어떻게 얻을 수 있나요?
API는 JSON 예측을 반환합니다. 시각화하려면:
- 예측을 사용하여 로컬에서 상자 그리기
- Ultralytics 사용
plot()메서드:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
전체 결과 API 및 시각화 옵션에 대해서는 예측 모드 문서를 참조하십시오.
최대 이미지 크기는 얼마인가요?
- 업로드 제한: 10MB
- Recommended: <5MB for fast inference
- 자동 크기 조정이미지는 선택한 크기로 조정됩니다.
Image Size매개변수
큰 이미지는 종횡비를 유지하면서 자동으로 크기 조정됩니다.
배치 추론을 실행할 수 있나요?
현재 API는 요청당 하나의 이미지를 처리합니다. 배치 처리의 경우:
- 동시 요청 전송
- 더 높은 처리량을 위해 전용 엔드포인트 사용
- 대규모 배치에는 로컬 추론을 고려하십시오.
Python 이용한 배치 추론
import concurrent.futures
import requests
url = "https://predict-abc123.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
images = ["img1.jpg", "img2.jpg", "img3.jpg"]
def predict(image_path):
with open(image_path, "rb") as f:
return requests.post(url, headers=headers, files={"file": f}).json()
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
results = list(executor.map(predict, images))