Suy luận
Nền tảng Ultralytics Cung cấp API suy luận để kiểm tra các mô hình đã được huấn luyện. Sử dụng giao diện dựa trên trình duyệt. Predict tab để xác thực nhanh hoặc REST API để truy cập theo chương trình.

Tab Dự đoán
Mỗi mẫu đều bao gồm một Predict tab dành cho suy luận dựa trên trình duyệt:
- Điều hướng đến mô hình của bạn
- Nhấp vào tab Dự đoán
- Tải ảnh lên, sử dụng ví dụ hoặc mở webcam của bạn.
- Xem ngay các dự đoán với lớp phủ khung giới hạn.

Phương thức nhập liệu
Bảng dự đoán hỗ trợ nhiều phương thức nhập liệu:
| Phương thức | Mô tả |
|---|---|
| Tải ảnh lên | Kéo và thả hoặc nhấp chuột để tải ảnh lên. |
| Ví dụ hình ảnh | Nhấp vào các ví dụ có sẵn (hình ảnh bộ dữ liệu hoặc giá trị mặc định) |
| Chụp bằng webcam | Hình ảnh camera trực tiếp với khả năng chụp từng 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:#fff
Tả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
- Kích thước tối đa: 10MB
- Suy luận tự động : Kết quả hiển thị tự động sau khi tải lên.
Suy luận tự động
Bảng dự đoán tự động thực hiện suy luận khi bạn tải ảnh lên, chọn ví dụ hoặc chụp khung hình từ webcam. Không cần nhấn nút nào.
Hì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 mô hình 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:
| Ảnh | Nội dung |
|---|---|
bus.jpg | Cảnh đường phố với phương tiện |
zidane.jpg | Cảnh thể thao với người |
Đối với các mô hình OBB, hình ảnh trên không của tàu thuyền và sân bay sẽ được hiển thị.
Hình ảnh được tải trước
Các hình ảnh ví dụ được tải trước khi trang khởi chạy, vì vậy việc nhấp vào một hình ảnh ví dụ sẽ kích hoạt quá trình suy luận gần như tức thì mà không cần chờ tải xuống.
Webcam
Nhấp vào thẻ webcam để bắt đầu xem trực tiếp:
- Cấp quyền truy cập camera khi được yêu cầu.
- Nhấp vào xem trước video để chụp ảnh màn hình.
- Quá trình suy luận diễn ra tự động trên khung hình đã chụp.
- Nhấp chuột lại để khởi động lại webcam
Xem kết quả
Hiển thị kết quả suy luận:
- Các hộp giới hạn có nhãn lớp dưới dạng lớp phủ SVG
- Điểm tin cậy cho mỗi lần detect
- Chọn màu sắc cho từng lớp từ bảng màu của tập dữ liệu (hoặc Ultralytics bảng màu mặc định)
- Phân tích tốc độ : Thời gian 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ị như sau:
| Trường | Mô tả |
|---|---|
| Danh sách phát hiện | Mỗi lần phát hiện đều kèm theo tên lớp và độ tin cậy. |
| Thông số 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 khối mã |
Tham số suy luận
Điều chỉnh hành vi phát hiện bằng các tham số trong phần Tham số có thể thu gọn:

| Tham số | Phạm vi | Mặc định | Mô tả |
|---|---|---|---|
| Ngưỡng tin cậy | 0,01-1,0 | 0.25 | Ngưỡng tin cậy tối thiểu |
| IoU | 0,0-0,95 | 0.70 | Ngưỡng IoU NMS |
| Kích thước hình ảnh | 320, 640, 1280 | 640 | Nhập kích thước thay đổi (nút chuyển đổi) |
Tự động chạy lại
Việc thay đổi bất kỳ tham số nào sẽ tự động chạy lại quá trình suy luận trên ảnh hiện tại với độ trễ 500ms. Không cần tải lại ảnh.
Ngưỡng tin cậy
Lọ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ể 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
Điều khiển Non-Maximum Suppression:
- Cao hơn (0,7 trở lên) : Cho phép nhiều hộp chồng lên nhau hơn
- Thấp hơn (0,3-0,5) : Kết hợp các phát hiện gần đó một cách mạnh mẽ hơn
- Mặc định (0.70) : Cân bằng NMS hành vi đối với hầu hết các trường hợp sử dụng
Dự đoán triển khai
Mỗi lần chạy điểm cuối chuyên dụng bao gồm một Predict Nhấp chuột trực tiếp vào thẻ triển khai. Thao tác này sử dụng dịch vụ suy luận riêng của quá trình triển khai thay vì dịch vụ dự đoán dùng chung, cho phép bạn kiểm tra điểm cuối đã triển khai từ trình duyệt.
REST API
Truy cập suy luận theo chương 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
Cần có khóa API
Để chạy suy luận từ các tập lệnh, sổ tay hoặc ứng dụng của riêng bạn, hãy bao gồm khóa API. Tạo khóa đó trong Settings (Mục Khóa API trong tab Hồ sơ).
Điểm cuối
POST https://platform.ultralytics.com/api/models/{modelId}/predict
Yê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())
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);

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.4.14",
"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 hình ảnh đã 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 detect |
images[].results[].name | chuỗi | Tên lớp |
images[].results[].confidence | số thực | Độ tin cậy của detect (0-1) |
images[].results[].box | đối tượng | Tọa độ hộp giới hạn |
images[].speed | đối tượng | Thời gian xử lý tính bằng mili giây |
metadata | đối tượng | Yêu cầu thông tin siêu dữ liệu và phiên bản |
Phản hồi theo tác vụ cụ thể
Định dạng phản hồi thay đổi theo tác vụ:
{
"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}
}
Giới hạn tốc độ
Suy luận chung bị giới hạn tốc độ ở mức 20 yêu cầu/phút cho mỗi khóa APIKhi bị hạn chế tốc độ, API sẽ trả về... 429 với một Retry-After tiêu đề. Xem toàn bộ tham chiếu giới hạn tỷ lệ cho tất cả các loại điểm cuối.
Cần thông lượng cao hơn?
Triển khai một điểm cuối chuyên dụng để suy luận không giới hạn , không giới hạn tốc độ, thông lượng có thể dự đoán được và phản hồi độ trễ thấp nhất quán. Để biết thêm thông tin về suy luận cục bộ, hãy xem hướng dẫn về chế độ Dự đoán .
Xử lý lỗi
Các phản hồi lỗi thường gặp:
| 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 ủy quyền | Xác minh khóa API |
| 404 | Không tìm thấy mô hình | Kiểm tra mã số mẫu |
| 429 | Bị giới hạn tốc độ | Chờ và thử lại, hoặc sử dụng điểm cuối chuyên dụng để có thông lượng 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
Tôi có thể chạy suy luận trên video không?
API chấp nhận các khung hình riêng lẻ. Đối với video:
- Trích xuất khung hình cục bộ
- Gửi từng khung hình đến API
- Tổng hợp kết quả
Đối với video thời gian thực, hãy cân nhắc triển khai một điểm cuối chuyên dụng.
Làm cách nào để lấy hình ảnh đã được chú thích?
API trả về các dự đoán JSON. Để trực quan hóa:
- Sử dụng các dự đoán để vẽ hộp cục bộ
- Sử dụng Ultralytics
plot()phương thức:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
Xem tài liệu về chế độ Dự đoán để biết đầy đủ 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
- Recommended: <5MB for fast inference
- Tự động thay đổi kích thướcẢnh được điều chỉnh kích thước cho phù hợp với ảnh đã chọn.
Image Sizetham số
Các hình ảnh lớn đượ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 suy luận theo lô không?
API hiện tại xử lý một hình ảnh cho mỗi yêu cầu. Đối với xử lý theo lô (batch):
- Gửi các yêu cầu đồng thời
- Sử dụng điểm cuối chuyên dụng để đạt thông lượng cao hơn
- Cân nhắc suy luận cục bộ cho các lô lớn
Suy luận hàng loạt với 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))