Ultralytics YOLO27: Tham gia danh sách chờ.
Bắt đầu

Chia ảnh độ phân giải cao theo ô

Dùng tile=True để xử lý ảnh độ phân giải cao theo các cửa sổ chồng lấp trước khi thay đổi kích thước ảnh cho phù hợp với đầu vào của model. Cách này có thể giữ lại chi tiết của vật thể nhỏ vốn sẽ bị mất nếu thay đổi kích thước toàn bộ ảnh. Không cần cài thêm package.

Chia tile sử dụng các pipeline huấn luyện, xác thực và dự đoán thông thường. Dự đoán trả về một đối tượng Results cho mỗi ảnh gốc. Xác thực hợp nhất các dự đoán trước khi đánh giá chúng với annotation gốc; loss huấn luyện được tính trên các tile.

Cách sử dụng#

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.train(data="aerial.yaml", tile=True, imgsz=640)
metrics = model.val(data="aerial.yaml", tile=True, imgsz=640)
results = model.predict("large-image.tif", tile=640, imgsz=640, batch=8)
yolo predict model=yolo26n.pt source=large-image.tif tile=640 imgsz=640 batch=8

tile=True sử dụng imgsz làm kích thước cửa sổ. Một số nguyên dương, chẳng hạn như tile=1024, đặt kích thước cửa sổ độc lập với imgsz. tile=False là giá trị mặc định. Các cửa sổ chồng lấp 20%, trong đó các cửa sổ cuối được căn theo ranh giới ảnh. Ảnh nhỏ hơn sử dụng một cửa sổ duy nhất bao phủ toàn bộ ảnh.

batch kiểm soát số tile mà model xử lý cùng lúc trong khi dự đoán. Backend hiện có xử lý các batch kích thước cố định khi export, bao gồm cả batch cuối chưa đủ kích thước. Model đã export giữ nguyên đồ thị đầu vào thông thường; chia tile được thực hiện trong pipeline dự đoán Python.

Đối với video, hãy phát trực tuyến kết quả để giới hạn mức sử dụng bộ nhớ và dùng các tùy chọn dự đoán hiện có để lưu hoặc hiển thị kết quả:

for result in model.predict("video.mp4", tile=640, stream=True, save=True):
    print(result.boxes)
yolo predict model=yolo26n.pt source=video.mp4 tile=640 save=True

Tác vụ và model#

Tác vụKết quả trên toàn ảnh
DetectKhôi phục tọa độ của box theo ảnh nguồn và loại bỏ các dự đoán trùng lặp bằng iou, agnostic_nms và max_det.
SegmentÁp dụng cùng cách chọn box và đặt các mask được chọn vào ảnh nguồn.
Ngữ nghĩaGhép các bản đồ lớp, chọn tile nằm gần tâm nhất trong những vùng chồng lấp.
Độ sâuTrộn các bản đồ độ sâu chồng lấp với trọng số tăng dần về phía tâm của mỗi tile.
Phân loạiTính trung bình xác suất của các tile.
Tư thếÁp dụng cách chọn box và khôi phục các keypoint tương ứng.
OBBKhôi phục các box xoay và sử dụng NMS xoay.

Pipeline dùng chung hỗ trợ dự đoán với các model tác vụ YOLO, YOLO-World, YOLOE, RT-DETR và FastSAM. Prompt trực quan của YOLOE được nhúng từ toàn bộ ảnh nguồn và dùng lại cho các tile. FastSAM chọn các mask theo prompt sau khi hợp nhất chúng về tọa độ ảnh nguồn. Predictor SAM giữ nguyên pipeline prompt và tạo crop riêng; chúng không chấp nhận tile.

Trong quá trình huấn luyện, các hộp và đa giác được cắt theo cửa sổ, việc cắt OBB giữ nguyên hướng và các keypoint nằm ngoài cửa sổ sẽ mất thông tin khả kiến. Các instance còn lại dưới 10% diện tích hộp giới hạn ban đầu sẽ bị loại bỏ. Các cửa sổ trống vẫn được giữ làm ví dụ âm. Target ngữ nghĩa và độ sâu sử dụng cùng cửa sổ với ảnh tương ứng.

Hiệu năng và chất lượng#

  • Chia tile thực hiện nhiều lượt forward của model hơn so với suy luận trên toàn ảnh. Hãy chọn kích thước tile và batch lớn nhất có thể mà vẫn giữ được mức chi tiết cần thiết trong giới hạn bộ nhớ hiện có.
  • Các tile liên tiếp dùng lại ảnh nguồn đã giải mã. Với cache="ram", quá trình huấn luyện chỉ lưu ảnh nguồn một lần; cache="disk" sử dụng cache ảnh hiện có. Quá trình huấn luyện xáo trộn các tile, vì vậy caching đặc biệt hữu ích với ảnh nguồn lớn được nén.
  • Mask và bản đồ dày đặc có kích thước bằng ảnh nguồn vẫn cần lượng bộ nhớ tỷ lệ thuận với kích thước ảnh gốc. max_det giới hạn số mask instance được giữ lại.
  • Chia tile loại bỏ ngữ cảnh toàn cục. Hãy xác thực độ chính xác trên dữ liệu của riêng bạn, đặc biệt với tác vụ phân loại và độ sâu, vì kết quả trên từng tile có thể không nhất quán trên toàn cục.
  • Việc loại bỏ dự đoán trùng lặp chọn toàn bộ dự đoán; không tái dựng một vật thể từ các phần nhìn thấy riêng lẻ. Vùng chồng lấp giúp giảm hiện tượng cắt cụt ở biên nhưng không thể loại bỏ hoàn toàn hiện tượng này đối với vật thể lớn hơn một tile.
  • Không hỗ trợ nguồn tensor, embed và visualize. Theo dõi chạy trên các dự đoán đã hợp nhất một lần cho mỗi khung hình nguồn, bao gồm cả đặc trưng ReID.
Người đóng góp

Bình luận

Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.