YOLO Vision 2026:

Suy luận#

Ultralytics Platform cung cấp tính năng suy luận trên trình duyệt để kiểm thử các model đã train và các endpoint chuyên dụng để truy cập qua lập trình.

Ultralytics Platform Model Predict Tab With Detections Overlay

Tab Dự đoán (Predict)#

Mỗi model có weights đều bao gồm một tab Predict để chạy inference trên trình duyệt:

  1. Điều hướng đến model của bạn
  2. Nhấp vào tab Predict
  3. 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
  4. Xem lại lớp phủ theo tác vụ, tóm tắt dự đoán, thời gian và phản hồi thô

Các model không có weights sẽ hiển thị trạng thái trống — hãy train model hoặc tải weights lên trước.

Ultralytics Platform Predict Tab Image Upload Dropzone

Phươ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ứcMô tả
Tải lên hình ảnhKé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ừ webcamLuồng video trực tiếp với khả năng chụp ảnh đơn khung
graph LR
    A[Upload Image]:::start --> D[Auto-Inference]:::proc
    B[Example Image]:::start --> D
    C[Webcam Capture]:::start --> D
    D --> E[Results + Overlays]:::out

    classDef start fill:#4CAF50,color:#fff
    classDef proc fill:#2196F3,color:#fff
    classDef out fill:#9C27B0,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
  • Kích thước tối đa: 10 MB
  • Tự động suy luận: Kết quả xuất hiện tự động sau khi tải lên
Tự động Suy luậ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.

Thay đổi kích thước ở phía Client

Trước khi tải lên, bảng điều khiển sẽ thay đổi kích thước ảnh sao cho cạnh dài nhất khớp với Image Size đã chọn và yêu cầu tọa độ được chuẩn hóa. Điều này giúp việc thử nghiệm trên trình duyệt diễn ra nhanh chóng; các request do chính bạn gửi sẽ không bị thay đổi kích thước.

Hình ảnh ví dụ#

Bảng predict hiển thị tối đa hai ảnh ví dụ từ dataset được liên kết với model của bạn, ưu tiên split val, sau đó đến test, rồi train. Nếu không có dataset nào được liên kết, các ví dụ mặc định sẽ được sử dụng:

Hình ảnhNội dung
bus.jpgCảnh đường phố với các phương tiện
zidane.jpgCảnh thể thao với con người

Đối với các model OBB, ảnh chụp trên không về tàu thuyền và sân bay sẽ được hiển thị thay thế.

Hình ảnh được tải sẵn

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.

Webcam#

Nhấp vào thẻ webcam để bắt đầu luồng camera trực tiếp:

  1. Cấp quyền truy cập camera khi được yêu cầu
  2. Nhấp vào bản xem trước video để chụp khung hình
  3. Suy luận tự động chạy trên khung hình đã chụp
  4. Nhấp lại để khởi động lại webcam

Xem kết quả#

Kết quả suy luận hiển thị đầu ra phù hợp với tác vụ của model: các hộp, mặt nạ, điểm then chốt, hộp định hướng, điểm phân loại, độ bao phủ ngữ nghĩa hoặc bản đồ chiều sâu. Kết quả đối tượng sử dụng màu sắc lớp của dataset khi khả dụng. Bảng này cũng hiển thị thời gian tiền xử lý, suy luận, hậu xử lý và mạng.

Ultralytics Platform Predict Tab Results With Detections And Speed Stats Bảng kết quả hiển thị:

Trường (Field)Mô tả
Tóm tắt kết quảDanh sách theo từng detection, hoặc top 5 class cho các model classification và semantic
Số liệu thống kê tốc độTiền xử lý, suy luận, hậu xử lý và mạng (ms)
Phiên bảnCác phiên bản Ultralytics và PyTorch, cộng với khoảng cách độ sâu hoặc kích thước mask nếu có
Phản hồi JSONPhản hồi API thô trong một khối code, với dữ liệu bản đồ base64 được lược bỏ

Có hai điều khiển nằm trên phần xem trước sau khi có kết quả: nhấp vào ảnh để phóng to với các lớp phủ vẫn giữ nguyên, và sử dụng nút tải xuống để lưu JPEG đã được chú thích của kết quả hiện tại.

Tham số suy luận#

Điều chỉnh hành vi suy luận bằng ba thanh trượt bên dưới hình ảnh:

Ultralytics Platform Predict Tab Parameters Sliders

Tham sốPhạm viMặc địnhMô tả
Confidence0,01 – 1,0, bước nhảy 0,010.25Ngưỡng độ tin cậy tối thiểu
IoU0,0 – 0,95, bước nhảy 0,010.7Ngưỡng NMS IoU
Kích thước Hình ảnh32 – 1280, bước nhảy 32640Kích thước thay đổi đầu vào
Tự động chạy lại

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.

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, độ 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

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): Loại bỏ các phát hiện chồng chéo 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

Suy luận triển khai#

Mỗi dedicated endpoint đang chạy đều bao gồm một tab Predict ngay trên thẻ deployment của nó. Tính năng này sử dụng dịch vụ suy luận của riêng deployment thay vì dịch vụ predict dùng chung, cho phép bạn kiểm thử endpoint đã deploy trực tiếp từ trình duyệt.

API Endpoint chuyên dụng#

Thẻ API Docs trong tab model Predict chứa các ví dụ request bằng Python, JavaScript và cURL, được điền sẵn độ tin cậy, IoU và kích thước ảnh hiện được đặt trên các thanh trượt. URL và khóa là các placeholder cho đến khi bạn triển khai model — nút Deploy bên cạnh các tab code sẽ chuyển đến tab Deploy của model. Sau khi triển khai, tab Code của thẻ triển khai sẽ điền URL của endpoint đó và, đối với chủ sở hữu workspace, khóa API được liên kết của endpoint đó, sẵn sàng để sao chép và chạy.

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
Yêu cầu khóa API

Để 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 API key. Tạo một key trong Settings > API Keys. Một endpoint chuyên dụng chỉ chấp nhận khóa duy nhất mà nó được tạo ra; model API chia sẻ chấp nhận bất kỳ khóa hoạt động nào trong workspace, và các model công khai cũng chấp nhận các request ẩn danh.

Endpoint#

Các endpoint chuyên dụng nhận request trên URL riêng của chúng:

POST https://YOUR_DEPLOYMENT_URL.run.app/predict

Inference chia sẻ sử dụng Platform API với đường dẫn đầy đủ của model:

POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predict

Cả hai đều chấp nhận cùng một body multipart/form-data và trả về cùng một cấu trúc phản hồi. Với Python SDK, hãy sử dụng client.models.predict(owner, project, model, body=...) cho inference chung hoặc client.deployments.predict(owner, deployment, body=...) cho một deployment chuyên dụng:

from ultralytics_platform import Platform

client = Platform()  # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
    results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})

Yêu cầu#

import requests

url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

with open("image.jpg", "rb") as image_file:
    response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())

Ultralytics Platform Predict Tab Code Examples Python Tab

Tham số yêu cầu#

Tham sốLoạiMặc địnhPhạm viMô tả
filetệp--Tệp hình ảnh hoặc video (bắt buộc trừ khi source được thiết lập)
conffloat0.250.01 – 1.0Ngưỡng độ tin cậy tối thiểu
ioufloat0.70.0 – 0.95Ngưỡng NMS IoU
imgszint64032 – 1280Kích thước hình ảnh đầu vào tính bằng pixel
normalizeboolfalse-Trả về tọa độ BBox dưới dạng 0 – 1
decimalsint50 – 10Độ chính xác thập phân cho các giá trị tọa độ
bitsint88, 12, 16Lượng tử hóa bản đồ độ sâu, chỉ dành cho model độ sâu
sourcestring--URL hình ảnh hoặc chuỗi base64 (thay thế cho file)

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,
        "functionTimeAlive": 1284.51,
        "functionTimeCall": 0.018,
        "task": "detect",
        "version": {
            "ultralytics": "8.x.x",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

Ultralytics Platform Predict Tab Json Response View

Các trường phản hồi#

Trường (Field)LoạiMô tả
imagesarrayDanh sách các ảnh đã xử lý, mỗi mục tương ứng với một frame video đối với video
images[].shapearrayKích thước ảnh [chiều cao, chiều rộng]
images[].resultsarrayDanh sách các kết quả phát hiện
images[].results[].classintChỉ số lớp (ID số nguyên)
images[].results[].namestringTên lớp
images[].results[].confidencefloatĐộ tin cậy của kết quả phát hiện (0-1)
images[].results[].boxđối tượngTọa độ hộp bao
images[].semantic_maskđối tượngBản đồ class theo từng pixel (chỉ dành cho model semantic)
images[].depthđối tượngBản đồ độ sâu theo từng pixel (chỉ dành cho model độ sâu)
images[].speedđối tượngThời gian xử lý tính bằng mili giây
metadatađối tượngSố lượng ảnh, thời gian dịch vụ, tác vụ và các phiên bản Ultralytics/PyTorch

Phả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}
}

Giới hạn tốc độ (Rate Limits)#

API model dùng chung bị giới hạn ở 20 request/phút cho mỗi API key, người gọi đã đăng nhập hoặc IP ẩn danh. Khi bị giới hạn tốc độ, API sẽ trả về 429 với header Retry-After. Xem toàn bộ tài liệu tham khảo về rate-limit cho tất cả các danh mục endpoint.

Cần thông lượng cao hơn?

Các request được gửi trực tiếp đến dedicated endpoint không đi qua bộ giới hạn tốc độ Platform API. Endpoint vẫn giảm tải với 429 và header Retry-After khi nó tạm thời đạt dung lượng tối đa. Đối với inference cục bộ khối lượng lớn, hãy xem Predict mode guide.

Xử lý lỗi#

Các phản hồi lỗi phổ biến:

Thông báoGiải pháp
400Ảnh không hợp lệKiểm tra định dạng file, hoặc model đã có weights được train chưa
401Không được phép (Unauthorized)Xác minh API key
404Không tìm thấy mô hìnhKiểm tra tên chủ sở hữu, dự án và model
413Input quá lớnGiảm kích thước file xuống dưới giới hạn của endpoint
429Giới hạn tốc độ (Rate limited)Đợi và thử lại, hoặc gửi request trực tiếp đến dedicated endpoint
500Lỗi máy chủThử lại yêu cầu
503Dịch vụ không khả dụngDị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

Câu hỏi thường gặp#

  • Cả hai phương thức suy luận đều chấp nhận tệp video:

    • Dedicated endpoints chấp nhận các file video trực tiếp. Các định dạng được hỗ trợ (lên tới 100 MB): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Mỗi frame được xử lý riêng lẻ và kết quả được trả về theo từng frame. Xem dedicated endpoints để biết chi tiết.
    • Shared inference (POST /api/models/{owner}/{project}/{model}/predict) sử dụng cùng một dịch vụ predict và chấp nhận các định dạng video giống nhau. Tab Predict trên trình duyệt chỉ chọn ảnh, vì vậy hãy sử dụng API hoặc dedicated endpoint cho video.
  • Trong tab Predict, nút tải xuống phía trên phần xem trước sẽ lưu kết quả hiện tại dưới dạng JPEG đã được chú thích. Bản thân API trả về các dự đoán dạng JSON. Để trực quan hóa những kết quả đó:

    1. Sử dụng các dự đoán để vẽ hộp bao cục bộ
    2. 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 toàn bộ API kết quả và các tùy chọn trực quan hóa.

    • Giới hạn tab Predict: 10 MB
    • Giới hạn API: 100 MB cho cả shared inference và dedicated endpoint
    • Tự động resize trong tab Predict: Hình ảnh được resize về kích thước Image Size đã chọn trước khi tải lên

    Ảnh lớn sẽ tự động được thay đổi kích thước trong trình duyệt trong khi vẫn giữ nguyên tỷ lệ khung hình. Các request do chính bạn gửi sẽ không bị thay đổi kích thước, vì vậy các ảnh vượt quá giới hạn sẽ bị từ chối với 413.

  • API hiện tại xử lý một ảnh mỗi yêu cầu. Để xử lý theo lô:

    1. Gửi các request riêng biệt cho từng hình ảnh
    2. Phân phối request trên các endpoint chuyên dụng khi thích hợp
    3. Sử dụng suy luận cục bộ cho các batch lớn
    Suy luận theo lô với Python
    import concurrent.futures
    
    import requests
    
    url = "https://YOUR_DEPLOYMENT_URL.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))

Bình luận