Ultralytics HUB 추론 API
모델을 학습한 후에는 공유 추론 API를 무료로 사용할 수 있습니다. Pro 사용자의 경우, 전용 추론 API에 액세스할 수 있습니다. Ultralytics HUB 추론 API를 사용하면 Ultralytics YOLO 환경을 로컬에 설치 및 설정할 필요 없이 REST API를 통해 추론을 실행할 수 있습니다.
Watch: Ultralytics HUB 추론 API 연습
전용 추론 API
높은 수요와 폭넓은 관심에 부응하여, 프로 사용자를 위한 전용 환경에서 클릭 한 번으로 배포할 수 있는 Ultralytics HUB 전용 추론 API를 공개하게 되어 매우 기쁘게 생각합니다!
참고
프로 요금제의 일부로 공개 베타 버전에서 이 기능을 무료로 제공하게 되어 기쁘게 생각하며, 향후 유료화할 예정입니다.
- 글로벌 서비스 범위: 전 세계 38개 지역에 배포되어 어느 위치에서나 지연 시간이 짧은 액세스를 보장합니다. Google 클라우드 리전 전체 목록 보기.
- Google 클라우드 런 지원: 무한한 확장성과 높은 안정성의 인프라를 제공하는 Google Cloud Run의 지원을 받습니다.
- 빠른 속도: Ultralytics 테스트 결과, 인근 지역에서 640 해상도로 YOLOv8n 추론 시 100ms 미만의 지연 시간이 가능합니다.
- 강화된 보안: 강력한 보안 기능을 제공하여 데이터를 보호하고 업계 표준을 준수할 수 있도록 합니다. Google 클라우드 보안에 대해 자세히 알아보세요.
Ultralytics HUB 전용 추론 API를 사용하려면 엔드포인트 시작 버튼을 클릭합니다. 그런 다음 아래 가이드에 설명된 대로 고유한 엔드포인트 URL을 사용합니다.
팁
설명서에 설명된 대로 최상의 성능을 위해 지연 시간이 가장 짧은 지역을 선택하세요.
전용 엔드포인트를 종료하려면 엔드포인트 중지 버튼을 클릭합니다.
공유 추론 API
Ultralytics HUB 공유 추론 API를 사용하려면 아래 가이드를 따르세요.
Ultralytics HUB 공유 추론 API에는 다음과 같은 사용 제한이 있습니다:
- 시간당 100 통화
Python
Python 을 사용하여 Ultralytics HUB 추론 API에 액세스하려면 다음 코드를 사용합니다:
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
참고
교체 MODEL_ID
를 원하는 모델 ID와 함께 입력합니다, API_KEY
실제 API 키와 path/to/image.jpg
를 추론을 실행하려는 이미지의 경로와 함께 입력합니다.
사용 중인 경우 전용 추론 API에서 url
도 마찬가지입니다.
cURL
cURL을 사용하여 Ultralytics HUB 추론 API에 액세스하려면 다음 코드를 사용합니다:
curl -X POST "https://predict.ultralytics.com" \
-H "x-api-key: API_KEY" \
-F "model=https://hub.ultralytics.com/models/MODEL_ID" \
-F "file=@/path/to/image.jpg" \
-F "imgsz=640" \
-F "conf=0.25" \
-F "iou=0.45"
참고
교체 MODEL_ID
를 원하는 모델 ID와 함께 입력합니다, API_KEY
실제 API 키와 path/to/image.jpg
를 추론을 실행하려는 이미지의 경로와 함께 입력합니다.
사용 중인 경우 전용 추론 API에서 url
도 마찬가지입니다.
인수
사용 가능한 추론 인수의 전체 목록은 아래 표를 참조하세요.
인수 | 기본값 | 유형 | 설명 |
---|---|---|---|
file |
file |
추론에 사용할 이미지 또는 동영상 파일입니다. | |
imgsz |
640 |
int |
입력 이미지의 크기, 유효한 범위는 32 - 1280 픽셀. |
conf |
0.25 |
float |
예측에 대한 신뢰도 임계값, 유효 범위 0.01 - 1.0 . |
iou |
0.45 |
float |
유니온 위의 교차로 (IoU) 임계값, 유효 범위 0.0 - 0.95 . |
응답
Ultralytics HUB 추론 API는 JSON 응답을 반환합니다.
분류
분류 모델
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
탐지
탐지 모델
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
OBB
OBB 모델
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 374.85565,
"x2": 392.31824,
"x3": 412.81805,
"x4": 395.35547,
"y1": 264.40704,
"y2": 267.45728,
"y3": 150.0966,
"y4": 147.04634
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}
세분화
세분화 모델
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 118,
"x2": 416,
"y1": 112,
"y2": 660
},
"segments": {
"x": [
266.015625,
266.015625,
258.984375,
...
],
"y": [
110.15625,
113.67188262939453,
120.70311737060547,
...
]
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}
포즈
포즈 모델
import requests
# API URL
url = "https://predict.ultralytics.com"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"file": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"images": [
{
"results": [
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {
"x1": 118,
"x2": 416,
"y1": 112,
"y2": 660
},
"keypoints": {
"visible": [
0.9909399747848511,
0.8162999749183655,
0.9872099757194519,
...
],
"x": [
316.3871765136719,
315.9374694824219,
304.878173828125,
...
],
"y": [
156.4207763671875,
148.05775451660156,
144.93240356445312,
...
]
}
}
],
"shape": [
750,
600
],
"speed": {
"inference": 200.8,
"postprocess": 0.8,
"preprocess": 2.8
}
}
],
"metadata": ...
}