Inference
Ultralytics Platform cung cấp API inference để kiểm tra các model đã được huấn luyện. Sử dụng tab Predict trên trình duyệt để xác thực nhanh hoặc REST API để truy cập theo lập trình.

Tab Dự đoán (Predict)
Mỗi model đều bao gồm một tab Predict để chạy inference trên trình duyệt:
- Điều hướng đến model của bạn
- Nhấp vào tab Predict
- Tải lên một hình ảnh, sử dụng ví dụ mẫu hoặc mở webcam của bạn
- Xem các kết quả dự đoán ngay lập tức với các lớp phủ bounding box

Phương thức đầu vào
Bảng predict hỗ trợ nhiều phương thức đầu vào:
| Phương thức | Mô tả |
|---|---|
| Tải lên hình ảnh | Kéo thả hoặc nhấp để tải lên một hình ảnh |
| Hình ảnh ví dụ | Nhấp vào các ví dụ tích hợp sẵn (hình ảnh từ tập dữ liệu hoặc hình ảnh mặc định) |
| Quay bằng webcam | Luồng video trực tiếp với tính năng chụp một khung hình |
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:#fffTải lên hình ảnh
Kéo thả hoặc nhấp để tải lên:
- Định dạng hỗ trợ: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
- Kích thước tối đa: 10MB
- Tự động inference: Kết quả sẽ tự động xuất hiện sau khi tải lên
Bảng predict sẽ chạy inference tự động khi bạn tải lên hình ảnh, chọn một ví dụ hoặc chụp khung hình webcam. Không cần nhấp nút.
Hình ảnh ví dụ
Bảng predict hiển thị các hình ảnh ví dụ từ tập dữ liệu được liên kết với model của bạn. Nếu không có tập dữ liệu nào được liên kết, các ví dụ mặc định sẽ được sử dụng:
| Hình ảnh | Nội dung |
|---|---|
bus.jpg | Cảnh đường phố với các phương tiện giao thông |
zidane.jpg | Cảnh thể thao với con người |
Đối với các model OBB, các hình ảnh chụp từ trên không về tàu thuyền và sân bay sẽ được hiển thị thay thế.
Các hình ảnh ví dụ được tải sẵn khi trang được tải, vì vậy việc nhấp vào một ví dụ sẽ kích hoạt inference gần như ngay lập tức mà không cần chờ tải xuống.
Webcam
Nhấp vào thẻ webcam để bắt đầu luồng camera trực tiếp:
- Cấp quyền truy cập camera khi được nhắc
- Nhấp vào bản xem trước video để chụp một khung hình
- Inference chạy tự động trên khung hình đã chụp
- Nhấp lại để khởi động lại webcam
Xem kết quả
Kết quả inference hiển thị:
- Bounding boxes với các nhãn lớp dưới dạng lớp phủ SVG
- Điểm tin cậy (Confidence scores) cho mỗi lần phát hiện
- Màu sắc lớp từ bảng màu của tập dữ liệu của bạn (hoặc bảng màu mặc định của Ultralytics)
- Phân tích tốc độ: Thời gian tiền xử lý, inference, hậu xử lý và thời gian mạng

Bảng kết quả hiển thị:
| Trường | Mô tả |
|---|---|
| Danh sách phát hiện | Mỗi lần phát hiện đi kèm với tên lớp và độ tin cậy |
| Thống kê tốc độ | Tiền xử lý, inference, hậu xử lý, mạng (ms) |
| Phản hồi JSON | Phản hồi API thô trong một khối code |
Tham số Inference
Điều chỉnh hành vi phát hiện với các tham số trong phần Parameters có thể thu gọn:

| Tham số | Phạm vi | Mặc định | Mô tả |
|---|---|---|---|
| Confidence | 0.01 – 1.0 | 0.25 | Ngưỡng tin cậy tối thiểu |
| IoU | 0.0 – 0.95 | 0.7 | Ngưỡng NMS IoU |
| Image Size | 320, 640, 1280 (nút gạt trên giao diện) | 640 | Kích thước đầu vào (API chấp nhận bất kỳ giá trị nào từ 32 – 1280) |
Việc thay đổi bất kỳ tham số nào sẽ tự động chạy lại inference trên hình ảnh hiện tại với độ trễ debounce là 500ms. Không cần tải lại.
Ngưỡng tin cậy
Lọc các dự đoán theo độ tin cậy:
- Cao hơn (0.5+): Ít dự đoán hơn nhưng độ chắc chắn cao hơn
- Thấp hơn (0.1-0.25): Nhiều dự đoán hơn, có thể có nhiễu
- Mặc định (0.25): Cân bằng cho hầu hết các trường hợp sử dụng
Ngưỡng IoU
Kiểm soát Non-Maximum Suppression:
- Cao hơn (0.7+): Cho phép nhiều hộp chồng lấp hơn
- Thấp hơn (0.3-0.5): Hợp nhất các kết quả phát hiện gần nhau mạnh mẽ hơn
- Mặc định (0.7): Hành vi NMS cân bằng cho hầu hết các trường hợp sử dụng
Triển khai Predict
Mỗi endpoint chuyên dụng đang chạy đều bao gồm một tab Predict trực tiếp trên thẻ triển khai của nó. Điều này sử dụng dịch vụ inference của chính bản triển khai đó thay vì dịch vụ predict dùng chung, cho phép bạn kiểm tra endpoint đã triển khai của mình ngay từ trình duyệt.
REST API
Truy cập inference theo lập trình:
Xác thực
Bao gồm khóa API của bạn trong các yêu cầu:
Authorization: Bearer YOUR_API_KEYĐể chạy inference từ các script, notebook hoặc ứng dụng của riêng bạn, hãy bao gồm một khóa API. Tạo khóa tại Settings > API Keys.
Endpoint
POST https://platform.ultralytics.com/api/models/{modelId}/predictYêu cầu
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())
Phản hồi
{
"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"
}
}
}
Các trường phản hồi
| Trường | Loại | Mô tả |
|---|---|---|
images | mảng | Danh sách các hình ảnh đã được xử lý |
images[].shape | mảng | Kích thước hình ảnh [chiều cao, chiều rộng] |
images[].results | mảng | Danh sách các kết quả phát hiện |
images[].results[].name | chuỗi | Tên lớp |
images[].results[].confidence | float | Độ tin cậy phát hiện (0-1) |
images[].results[].box | đối tượng | Tọa độ BBox |
images[].speed | đối tượng | Thời gian xử lý tính bằng mili giây |
metadata | đối tượng | Metadata của yêu cầu và thông tin phiên bản |
Phản hồi Đặc thù theo Tác vụ
Định dạng phản hồi thay đổi tùy theo tác vụ:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}Thanh toán
Inference dùng chung (tab Predict và endpoint /api/models/{id}/predict) được bao gồm mà không phát sinh thêm chi phí trên tất cả các gói. Không có phí cho mỗi yêu cầu đối với inference dùng chung.
Đối với các khối lượng công việc production yêu cầu throughput cao hơn, hãy triển khai dedicated endpoint.
Giới hạn Tốc độ (Rate Limits)
Inference dùng chung bị giới hạn ở mức 20 yêu cầu/phút cho mỗi API key. Khi bị điều tiết, API sẽ trả về mã 429 cùng với header Retry-After. Xem tài liệu tham khảo rate limit đầy đủ cho tất cả các danh mục endpoint.
Triển khai dedicated endpoint để đạt được inference không giới hạn mà không bị giới hạn tốc độ, throughput có thể dự đoán được và phản hồi có độ trễ thấp ổn định. Đối với inference cục bộ, hãy xem hướng dẫn Predict mode.
Xử lý Lỗi
Các phản hồi lỗi phổ biến:
| Mã | Thông báo | Giải pháp |
|---|---|---|
| 400 | Hình ảnh không hợp lệ | Kiểm tra định dạng tệp |
| 401 | Chưa được xác thực | Xác minh API key |
| 404 | Không tìm thấy model | Kiểm tra ID model |
| 429 | Đã đạt giới hạn tốc độ | Đợi và thử lại, hoặc sử dụng dedicated endpoint để có throughput không giới hạn |
| 500 | Lỗi máy chủ | Thử lại yêu cầu |
Câu hỏi thường gặp (FAQ)
Tôi có thể chạy inference trên video không?
Cả hai phương pháp inference đều chấp nhận tệp video:
- Dedicated endpoints chấp nhận trực tiếp các tệp video. Các định dạng được hỗ trợ (tối đa 100 MB): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Mỗi khung hình được xử lý riêng lẻ và kết quả được trả về cho từng khung hình. Xem dedicated endpoints để biết chi tiết.
- Shared inference (
/api/models/{id}/predict) sử dụng cùng dịch vụ predict và chấp nhận các định dạng video tương tự. Tuy nhiên, Predict tab trên trình duyệt trong UI chỉ cho phép tải lên hình ảnh — hãy sử dụng trực tiếp REST API hoặc dedicated endpoint cho các quy trình làm việc với video. Shared endpoint cũng bị giới hạn tốc độ ở mức 20 req/phút, vì vậy dedicated endpoints là lựa chọn tốt hơn cho các khối lượng công việc video nặng.
Làm thế nào để tôi nhận được hình ảnh đã chú thích?
API trả về các dự đoán dưới dạng JSON. Để trực quan hóa:
- Sử dụng các dự đoán để vẽ hộp tại cục bộ
- Sử dụng phương thức
plot()của Ultralytics:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")Xem tài liệu Predict mode để biết đầy đủ về API kết quả và các tùy chọn trực quan hóa.
Kích thước hình ảnh tối đa là bao nhiêu?
- Giới hạn tải lên: 10MB
- Khuyến nghị: <5MB để có inference nhanh
- Tự động thay đổi kích thước: Hình ảnh được thay đổi kích thước theo tham số
Image Sizeđã chọn
Các hình ảnh lớn sẽ được tự động thay đổi kích thước trong khi vẫn giữ nguyên tỷ lệ khung hình.
Tôi có thể chạy batch inference không?
API hiện tại xử lý mỗi hình ảnh cho mỗi yêu cầu. Đối với batch:
- Gửi các yêu cầu đồng thời
- Sử dụng dedicated endpoint để có throughput cao hơn
- Xem xét inference cục bộ cho các batch lớn
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))