Link to this sectionSuy luận#
Ultralytics Platform cung cấp API suy luận để 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.

Link to this sectionTab Dự đoán (Predict)#
Mỗi model đều bao gồm tab Predict cho việc suy luận 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 hình ảnh ví dụ hoặc mở webcam của bạn
- Xem kết quả dự đoán ngay lập tức với các lớp phủ bounding box

Link to this sectionPhương thức đầu vào#
Bảng điều khiển dự đoán 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 và thả hoặc nhấp để tải lên 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ập dữ liệu hoặc mặc định) |
| Chụp từ webcam | Luồng video trực tiếp với khả năng chụp ảnh đơn khung |
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:#fffLink to this sectionTải lên hình ảnh#
Kéo và thả hoặc nhấp để tải lên:
- Các định dạng được hỗ trợ: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
- Dung lượng tối đa: 10MB
- Tự động suy luận: Kết quả xuất hiện tự động sau khi tải lên
Bảng dự đoán sẽ tự động chạy suy luận khi bạn tải lên hình ảnh, chọn ví dụ hoặc chụp khung hình webcam. Không cần nhấp nút.
Link to this sectionHình ảnh ví dụ#
Bảng dự đoán 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 |
zidane.jpg | Cảnh thể thao với con người |
Đối với các model OBB, 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 tải xong, vì vậy việc nhấp vào một ví dụ sẽ kích hoạt suy luận gần như tức thì mà không cần chờ đợi tải xuống.
Link to this sectionWebcam#
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 yêu cầu
- Nhấp vào bản xem trước video để chụp khung hình
- Suy luận tự động chạy trên khung hình đã chụp
- Nhấp lại để khởi động lại webcam
Link to this sectionXem kết quả#
Kết quả suy luận hiển thị:
- Bounding box với nhãn lớp dưới dạng lớp phủ SVG
- Điểm tin cậy (Confidence score) 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 (hoặc bảng màu mặc định của Ultralytics)
- Phân tích tốc độ: Tiền xử lý, suy luận, hậu xử lý và thời gian mạng

Bảng kết quả hiển thị:
| Trường (Field) | Mô tả |
|---|---|
| Danh sách các đối tượng phát hiện | Mỗi đối tượng phát hiện kèm tên lớp và độ tin cậy |
| Số liệu thống kê tốc độ | Tiền xử lý, suy luận, hậu xử lý, mạng (ms) |
| Phản hồi JSON | Phản hồi API thô trong một khối mã |
Link to this sectionTham số suy luận#
Đ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 |
| Kích thước Hình ảnh | 320, 640, 1280 (chuyển đổi trên UI) | 640 | Kích thước thay đổi đầ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 suy luận trên hình ảnh hiện tại với độ trễ 500ms. Không cần tải lên lại.
Link to this sectionNgưỡ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, độ chính xác cao hơn
- Thấp hơn (0.1-0.25): Nhiều dự đoán hơn, có thể kèm theo 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
Link to this sectionNgưỡ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 lần phát hiện gần nhau một cách quyết liệt 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
Link to this sectionSuy luận triển khai#
Mỗi endpoint chuyên dụng đang chạy đều bao gồm một tab Predict ngay trên thẻ triển khai của nó. Tính năng này sử dụng dịch vụ suy luận riêng của bản triển khai thay vì dịch vụ dự đoán dùng chung, cho phép bạn kiểm tra endpoint đã triển khai từ trình duyệt.
Link to this sectionREST API#
Truy cập suy luận theo lập trình:
Link to this sectionXá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 suy luận từ các tập lệnh, notebook hoặc ứng dụng của riêng bạn, hãy bao gồm khóa API. Tạo một khóa trong Settings > API Keys.
Link to this sectionEndpoint#
POST https://platform.ultralytics.com/api/models/{modelId}/predictLink to this sectionYê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())
Link to this sectionTham số yêu cầu#
| Tham số | Loại | Mặc định | Phạm vi | Mô tả |
|---|---|---|---|---|
file | tệp | - | - | Tệp hình ảnh hoặc video (bắt buộc trừ khi source được đặt) |
conf | float | 0.25 | 0.01 – 1.0 | Ngưỡng tin cậy tối thiểu |
iou | float | 0.7 | 0.0 – 0.95 | Ngưỡng NMS IoU |
imgsz | int | 640 | 32 – 1280 | Kích thước hình ảnh đầu vào theo pixel |
normalize | bool | false | - | Trả về tọa độ bounding box theo thang đo 0 – 1 |
decimals | int | 5 | 0 – 10 | Độ chính xác thập phân cho các giá trị tọa độ |
source | string | - | - | URL hình ảnh hoặc chuỗi base64 (thay thế cho file) |
Link to this sectionPhả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"
}
}
}
Link to this sectionCác trường phản hồi#
| Trường (Field) | Loại | Mô tả |
|---|---|---|
images | array | Danh sách các hình ảnh đã được xử lý |
images[].shape | array | Kích thước ảnh [chiều cao, chiều rộng] |
images[].results | array | Danh sách các kết quả phát hiện |
images[].results[].class | int | Chỉ số lớp (ID số nguyên) |
images[].results[].name | string | Tên lớp |
images[].results[].confidence | float | Độ tin cậy của kết quả phát hiện (0-1) |
images[].results[].box | đối tượng | Tọa độ hộp bao |
images[].speed | đối tượng | Thời gian xử lý tính bằng mili giây |
metadata | đối tượng | Metadata yêu cầu và thông tin phiên bản |
Link to this sectionPhản hồi đặc thù cho từng 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}
}Link to this sectionThanh toán#
Tính năng suy luận dùng chung (tab Predict và endpoint /api/models/{id}/predict) được bao gồm mà không tính thêm chi phí trên tất cả các gói. Không có phí tính theo mỗi yêu cầu cho suy luận dùng chung.
Đối với khối lượng công việc thực tế đòi hỏi thông lượng cao hơn, hãy triển khai một dedicated endpoint.
Link to this sectionGiới hạn tốc độ (Rate Limits)#
Suy luận dùng chung bị giới hạn tốc độ ở mức 20 yêu cầu/phút cho mỗi API key. Khi bị giới hạn, API sẽ trả về mã 429 kèm tiêu đề Retry-After. Xem tài liệu tham khảo về giới hạn tốc độ đầy đủ cho tất cả các loại endpoint.
Triển khai một dedicated endpoint để suy luận không giới hạn mà không có rào cản về tốc độ, thông lượng có thể dự đoán và phản hồi có độ trễ thấp nhất quán. Để suy luận cục bộ, hãy xem hướng dẫn chế độ Predict.
Link to this sectionXử lý lỗi#
Các phản hồi lỗi phổ biến:
| Mã | Thông báo | Giải pháp |
|---|---|---|
| 400 | Ảnh không hợp lệ | Kiểm tra định dạng tệp |
| 401 | Không được phép (Unauthorized) | Xác minh API key |
| 404 | Không tìm thấy mô hình | Kiểm tra ID mô hình |
| 429 | Giới hạn tốc độ (Rate limited) | Đợi và thử lại, hoặc sử dụng dedicated endpoint để có thông lượng không giới hạn |
| 500 | Lỗi máy chủ | Thử lại yêu cầu |
| 503 | Dịch vụ không khả dụng | Dịch vụ Predict đang khởi động hoặc không thể truy cập; hãy đợi một lát rồi thử lại |
Link to this sectionCâu hỏi thường gặp#
Link to this sectionTôi có thể chạy suy luận trên video không?#
Cả hai phương thức suy luận đều chấp nhận tệp video:
- Dedicated endpoints chấp nhận trực tiếp tệp video. Các định dạng được hỗ trợ (lên đến 100 MB): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Mỗi khung hình được xử lý riêng biệt và kết quả được trả về theo từng khung hình. Xem dedicated endpoints để biết chi tiết.
- Suy luận dùng chung (
/api/models/{id}/predict) sử dụng cùng dịch vụ dự đoán và chấp nhận các định dạng video tương tự. Tuy nhiên, tab Predict trên trình duyệt trong giao diện người dùng chỉ 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. Endpoint dùng chung cũng bị giới hạn tốc độ ở mức 20 yêu cầu/phút, vì vậy dedicated endpoints là lựa chọn tốt hơn cho khối lượng công việc video lớn.
Link to this sectionLàm cách nào để lấy ảnh đã được 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 bao 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 chế độ Predict để biết đầy đủ về API kết quả và các tùy chọn trực quan hóa.
Link to this sectionKích thước ảnh tối đa là bao nhiêu?#
- Giới hạn tải lên: 10MB
- Khuyến nghị: <5MB để suy luận nhanh
- Tự động thay đổi kích thước: Ảnh được thay đổi kích thước theo tham số
Image Sizeđã chọn
Ảnh lớn sẽ tự động được thay đổi kích thước trong khi vẫn giữ nguyên tỷ lệ khung hình.
Link to this sectionTôi có thể chạy suy luận theo lô (batch) không?#
API hiện tại xử lý một ảnh mỗi yêu cầu. Để xử lý theo lô:
- Gửi các yêu cầu đồng thời
- Sử dụng dedicated endpoint để có thông lượng cao hơn
- Cân nhắc suy luận cục bộ cho các lô 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))