Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Letterboxing

Letterboxing thay đổi kích thước ảnh theo hình dạng mục tiêu mà vẫn giữ nguyên tỷ lệ khung hình bằng cách thêm phần đệm, nhờ đó các đối tượng không bị biến dạng và toàn bộ trường nhìn được giữ lại.

Letterboxing là kỹ thuật thay đổi kích thước ảnh, giữ nguyên tỷ lệ khung hình đồng thời thêm phần đệm để đạt kích thước mục tiêu. Kỹ thuật này phóng to hoặc thu nhỏ đồng đều ảnh, rồi lấp đầy phần còn trống bằng các pixel viền, nhờ đó giữ nguyên tỷ lệ của các đối tượng và toàn bộ trường nhìn. Trong thị giác máy tính, kỹ thuật này chuẩn bị các ảnh có hình dạng khác nhau cho những model nhận đầu vào có cùng hình dạng.

Ngoài lĩnh vực AI, letterboxing còn mô tả cách hiển thị phim màn ảnh rộng với các dải ngang.

Cách Letterboxing bảo toàn hình học của ảnh#

Tỷ lệ khung hình là mối tương quan giữa chiều rộng và chiều cao của ảnh. Trong quá trình tiền xử lý dữ liệu, letterboxing chọn giá trị nhỏ hơn trong hai hệ số tỷ lệ: chiều rộng mục tiêu chia cho chiều rộng ban đầu và chiều cao mục tiêu chia cho chiều cao ban đầu. Cả hai chiều đều dùng hệ số đó, nhờ vậy ảnh sau khi đổi kích thước nằm gọn trong khung mục tiêu. Các pixel còn lại trở thành phần đệm. Thao tác đổi kích thước và thêm phần đệm của TensorFlow triển khai phương pháp này bằng các viền có giá trị bằng 0.

Ví dụ, ảnh kích thước 1280 x 720 được đưa vào khung mục tiêu 640 x 640 sẽ dùng hệ số tỷ lệ 0.5. Phần nội dung ảnh có kích thước 640 x 360, để lại 280 hàng pixel làm phần đệm: 140 hàng phía trên và 140 hàng phía dưới khi căn giữa. Ảnh chân dung sẽ có viền hai bên. Vì vậy, ảnh được xử lý bằng letterboxing có thể có phần đệm ngang hoặc dọc; khung mục tiêu cũng có thể là hình chữ nhật.

Ultralytics YOLO sử dụng phép biến đổi LetterBox để bảo toàn hình học cho đầu vào phát hiện, phân đoạn và tư thế, với giá trị đệm màu xám mặc định là 114. Khi dự đoán phát hiện, phân đoạn và tư thế bằng YOLO26, phần đệm hình chữ nhật tối thiểu giảm viền xuống bội số stride tương thích nếu hình dạng batch và backend suy luận hỗ trợ.

Letterboxing so với kéo giãn và cắt ảnh#

Ba lựa chọn thay đổi kích thước xử lý khác nhau khi hình dạng ảnh không khớp với khung mục tiêu:

  • Letterboxing giữ nguyên tỷ lệ và toàn bộ ảnh, dành một phần diện tích đầu vào cho phần đệm.
  • Kéo giãn thay đổi riêng chiều rộng và chiều cao để lấp đầy khung mục tiêu. Khi các hệ số tỷ lệ khác nhau, hình tròn sẽ biến thành hình elip.
  • Cắt ảnh giữ nguyên tỷ lệ khi kết hợp với thay đổi kích thước đồng đều, sau đó loại bỏ nội dung nằm ngoài vùng được chọn. Các đối tượng gần mép ảnh có thể bị cắt mất.

Những lựa chọn này ảnh hưởng đến phát hiện đối tượng, vốn phụ thuộc vào hình dạng và vị trí, cũng như phân loại ảnh, trong đó việc cắt ảnh làm thay đổi bằng chứng trực quan cho một lớp.

Phần đệm cũng chiếm diện tích đầu vào. Trong ví dụ 1280 x 720, nội dung ảnh chiếm 56.25% diện tích hình vuông và phần đệm chiếm 43.75%. Việc giảm mẫu làm mất các chi tiết nhỏ bên trong phần nội dung đó; thêm pixel viền không tạo ra chi tiết bổ sung về đối tượng. Với ảnh độ phân giải cao có các đối tượng nhỏ, suy luận theo ô xử lý các vùng ảnh riêng biệt ở tỷ lệ đối tượng hiệu dụng lớn hơn.

Ví dụ Letterboxing bằng Python#

Cài đặt Pillow bằng pip install pillow. Thao tác ImageOps.pad thay đổi kích thước ảnh và căn giữa ảnh trên canvas có phần đệm. Ví dụ này sử dụng ảnh xe buýt được phân phối cho các hướng dẫn về thị giác máy tính.

from urllib.request import urlretrieve

from PIL import Image, ImageOps

urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
image = Image.open("bus.jpg")
image = image.convert("RGB")

# Preserve proportions and fill the unused area with gray.
letterboxed = ImageOps.pad(image, (640, 640), color=(114, 114, 114))
letterboxed.save("letterboxed_bus.png")
print(f"{image.size} -> {letterboxed.size}")

Kích thước đầu ra là (810, 1080) -> (640, 640), biểu thị theo chiều rộng và chiều cao. Ảnh đã lưu chứa toàn bộ ảnh chụp, được đổi kích thước thành 480 x 640, với viền rộng 80 pixel ở mỗi bên.

Ánh xạ chú thích và dự đoán#

Letterboxing biến đổi hệ tọa độ cũng như các pixel. Tọa độ của mọi hộp giới hạn đều phải được nhân tỷ lệ và dịch chuyển theo phần đệm bên trái hoặc phía trên. Hình học tương tự cũng áp dụng cho keypoint trong ước lượng tư thế và đường viền đối tượng trong phân đoạn instance. Nếu không điều chỉnh chú thích trong quá trình huấn luyện, mục tiêu sẽ lệch khỏi các đối tượng mà chúng mô tả.

Sau khi suy luận, đổi tỷ lệ tọa độ sẽ đảo ngược phép biến đổi: trừ độ lệch do phần đệm, rồi chia cho hệ số thay đổi kích thước. Với một hộp được định vị chính xác nhưng có phần đệm khác 0, nếu bỏ qua độ lệch đó, hộp sẽ bị dịch chuyển và giá trị giao trên hợp với ground truth sẽ giảm. Trong ví dụ xe buýt, điểm có tọa độ sau khi thêm đệm là (320, 320) được ánh xạ về tọa độ ban đầu (405, 540) sau khi trừ 80 khỏi x và chia cả hai tọa độ cho 640 / 1080.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning