추론
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 기본 팔레트)에서 가져온
- 속도 분석: 전처리, 추론, 후처리 및 네트워크 시간

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

| 파라미터 | 범위 | 기본값 | 설명 |
|---|---|---|---|
| 신뢰도 | 0.01-1.0 | 0.25 | 최소 신뢰도 임계값 |
| IoU | 0.0-0.95 | 0.70 | NMS IoU 임계값 |
| 이미지 크기 | 320, 640, 1280 | 640 | 크기 조정 입력 (버튼 토글) |
자동 재실행
어떤 매개변수든 변경하면 500ms 디바운스(debounce)와 함께 현재 이미지에 대한 추론이 자동으로 다시 실행됩니다. 다시 업로드할 필요가 없습니다.
신뢰도 임계값
신뢰도에 따라 예측 필터링:
- 높음 (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.x.x",
"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/models/{id}/predict (엔드포인트)는 추가 비용 없이 포함됩니다 모든 요금제에 적용됩니다. 공유 추론에 대해서는 요청당 요금이 부과되지 않습니다.
더 높은 처리량이 필요한 프로덕션 워크로드의 경우, 전용 엔드포인트를 배포하십시오.
속도 제한
공유 추론은 속도 제한이 적용됩니다. API 키당 분당 20회 요청. 제한될 때 API는 다음을 반환합니다. 429 with a Retry-After 헤더. 전체 보기 속도 제한 참조 모든 엔드포인트 범주에 대해.
더 많은 처리량이 필요하신가요?
속도 제한 없이 무제한 추론, 예측 가능한 처리량, 일관된 낮은 지연 시간 응답을 위해 전용 엔드포인트를 배포하세요. 로컬 추론의 경우 예측 모드 가이드를 참조하세요.
오류 처리
일반적인 오류 응답:
| 코드 | 메시지 | 솔루션 |
|---|---|---|
| 400 | 유효하지 않은 이미지 | 파일 형식 확인 |
| 401 | 권한 없음 | API 키 확인 |
| 404 | 모델을 찾을 수 없음 | 모델 ID를 확인합니다. |
| 429 | 속도 제한됨 | 대기 후 재시도하거나, 무제한 처리량을 위한 전용 엔드포인트를 사용하십시오. |
| 500 | 서버 오류 | 요청 재시도 |
FAQ
비디오에서 추론을 실행할 수 있나요?
이는 추론 방법에 따라 다릅니다:
- 전용 엔드포인트는 비디오 파일을 직접 수락합니다. 지원되는 형식(최대 100MB): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. 각 프레임은 개별적으로 처리되며 결과는 프레임별로 반환됩니다. 자세한 내용은 전용 엔드포인트를 참조하십시오.
- 공유 추론 (
/api/models/{id}/predict)는 이미지 전용입니다. 비디오의 경우, 프레임을 로컬에서 추출하고 각 프레임을 별도의 요청으로 전송한 다음 결과를 집계합니다.
주석이 달린 이미지를 어떻게 얻을 수 있나요?
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))