Chuyển đến nội dung

API suy luận Ultralytics HUB

Sau khi bạn huấn luyện một mô hình, bạn có thể sử dụng API Suy luận Chia sẻ miễn phí. Nếu bạn là người dùng Pro, bạn có thể truy cập API Suy luận Chuyên dụng. Ultralytics HUB Inference API cho phép bạn chạy suy luận thông qua REST API của chúng tôi mà không cần cài đặt và thiết lập môi trường Ultralytics YOLO cục bộ.

Ảnh chụp màn hình Ultralytics HUB của tab Triển khai bên trong trang Mô hình với một mũi tên chỉ vào thẻ Dedicated Inference API và một mũi tên chỉ vào thẻ Shared Inference API


Xem: Hướng dẫn API suy luận Ultralytics HUB

API suy luận chuyên dụng

Để đáp ứng nhu cầu cao và sự quan tâm rộng rãi, chúng tôi rất vui mừng ra mắt Ultralytics HUB Dedicated Inference API, cung cấp khả năng triển khai chỉ bằng một cú nhấp chuột trong một môi trường chuyên dụng cho người dùng Pro của chúng tôi!

Lưu ý

Chúng tôi rất vui mừng được cung cấp tính năng này MIỄN PHÍ trong giai đoạn beta công khai như một phần của Gói Pro, với các cấp trả phí có thể có trong tương lai.

  • Phạm vi toàn cầu: Được triển khai trên 38 khu vực trên toàn thế giới, đảm bảo truy cập với độ trễ thấp từ mọi vị trí. Xem danh sách đầy đủ các khu vực của Google Cloud.
  • Được hỗ trợ bởi Google Cloud Run: Được hỗ trợ bởi Google Cloud Run, cung cấp cơ sở hạ tầng có khả năng mở rộng vô hạn và độ tin cậy cao.
  • Tốc độ cao: Độ trễ dưới 100ms có thể đạt được để suy luận YOLOv8n ở độ phân giải 640 từ các khu vực lân cận dựa trên thử nghiệm của Ultralytics.
  • Nâng cao tính bảo mật: Cung cấp các tính năng bảo mật mạnh mẽ để bảo vệ dữ liệu của bạn và đảm bảo tuân thủ các tiêu chuẩn ngành. Tìm hiểu thêm về bảo mật trên Google Cloud.

Để sử dụng Ultralytics HUB API Suy luận Chuyên dụng, hãy nhấp vào nút Bắt đầu Điểm cuối. Tiếp theo, hãy sử dụng URL điểm cuối duy nhất như được mô tả trong các hướng dẫn bên dưới.

Ảnh chụp màn hình Ultralytics HUB của tab Deploy (Triển khai) bên trong trang Model (Mô hình) với một mũi tên chỉ vào nút Start Endpoint (Khởi động Điểm cuối) trong thẻ Dedicated Inference API (API Suy luận Chuyên dụng)

Mẹo

Chọn khu vực có độ trễ thấp nhất để có hiệu suất tốt nhất như được mô tả trong tài liệu.

Để tắt endpoint chuyên dụng, hãy nhấp vào nút Dừng Endpoint.

Ảnh chụp màn hình Ultralytics HUB của tab Deploy (Triển khai) bên trong trang Model (Mô hình) với một mũi tên chỉ vào nút Stop Endpoint (Dừng Điểm cuối) trong thẻ Dedicated Inference API (API Suy luận Chuyên dụng)

API suy luận dùng chung

Để sử dụng Ultralytics HUB API Suy luận Chia sẻ, hãy làm theo các hướng dẫn bên dưới.

Ultralytics HUB Shared Inference API có các giới hạn sử dụng sau:

  • 100 cuộc gọi / giờ

Python

Để truy cập Ultralytics HUB Inference API bằng Python, hãy sử dụng đoạn mã sau:

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

Lưu ý

Thay thế MODEL_ID với ID mô hình mong muốn, API_KEY với khóa API thực tế của bạn và path/to/image.jpg với đường dẫn đến hình ảnh bạn muốn chạy suy luận.

Nếu bạn đang sử dụng API suy luận chuyên dụng, hãy thay thế url nữa.

cURL

Để truy cập Ultralytics HUB Inference API bằng cURL, hãy sử dụng đoạn mã sau:

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"

Lưu ý

Thay thế MODEL_ID với ID mô hình mong muốn, API_KEY với khóa API thực tế của bạn và path/to/image.jpg với đường dẫn đến hình ảnh bạn muốn chạy suy luận.

Nếu bạn đang sử dụng API suy luận chuyên dụng, hãy thay thế url nữa.

Các đối số

Xem bảng dưới đây để có danh sách đầy đủ các đối số suy luận có sẵn.

Đối số Mặc định Loại Mô tả
file file Tệp hình ảnh hoặc video được sử dụng để suy luận.
imgsz 640 int Kích thước của ảnh đầu vào, phạm vi hợp lệ là 32 - 1280 pixel.
conf 0.25 float Ngưỡng tin cậy cho các dự đoán, phạm vi hợp lệ 0.01 - 1.0.
iou 0.45 float Intersection over Union Ngưỡng (IoU), phạm vi hợp lệ 0.0 - 0.95.

Phản hồi

Ultralytics HUB Inference API trả về một phản hồi JSON.

Phân loại (Classification)

Mô hình phân loại

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-cls.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].to_json())
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"
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
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

Phát hiện vật thể

Mô hình phát hiện

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].to_json())
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"
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
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

OBB

Mô hình OBB

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-obb.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
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"
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": ...
}

Phân đoạn

Mô hình phân đoạn

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-seg.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
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"
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": ...
}

Pose (Dáng điệu/Tư thế)

Mô Hình Tư Thế

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-pose.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
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"
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": ...
}


📅 Đã tạo 1 năm trước ✏️ Cập nhật 5 tháng trước

Bình luận