Ultralytics YOLO26 giờ đây hỗ trợ ước tính độ sâu đơn mắt
Tìm hiểu cách tác vụ ước tính độ sâu mới trong Ultralytics YOLO26 dự đoán độ sâu theo tỷ lệ mét cho từng pixel từ một ảnh RGB duy nhất, không cần hệ thống camera kép hay LiDAR.

Cho đến nay, việc bổ sung chiều sâu vào một pipeline YOLO đồng nghĩa với việc bạn phải tự lắp ráp thủ công. Mô hình chuẩn trước đây là chạy YOLO để phát hiện và kết hợp nó với một mô hình chiều sâu riêng biệt từ một dự án khác, chẳng hạn như MiDaS hoặc Depth Anything. Điều đó dẫn đến một dependency thứ hai, một framework thứ hai, và hai tập định dạng đầu vào lẫn đầu ra cần phải đồng bộ hóa.
Ước tính chiều sâu đơn mắt nay đã trở thành một tác vụ gốc trong Ultralytics YOLO26. Một ảnh RGB đơn lẻ sẽ tạo ra giá trị khoảng cách cho mọi pixel, sử dụng cùng một gói thư viện, quy trình làm việc và đường dẫn xuất (export path) giống như các tác vụ phát hiện (detection), phân đoạn (segmentation) và ước tính tư thế (pose).
Link to this sectionƯớc tính chiều sâu là gì?#
Depth estimation dự đoán bản đồ chiều sâu trên từng pixel (per-pixel depth map) từ một ảnh RGB đơn lẻ mà không cần đến camera thứ hai hay cảm biến bổ sung nào. Mỗi pixel đầu ra chứa một giá trị chiều sâu tính bằng mét, thể hiện khoảng cách ước tính từ camera đến điểm bề mặt đó.
Đầu ra là một bản đồ dạng số thực dày đặc có hình dạng (H, W), được căn chỉnh theo đầu vào, trong đó mỗi pixel mang một khoảng cách tuyệt đối tính bằng mét; tức là khoảng cách từ camera, chứ không phải thứ tự tương đối giữa vật thể ở gần hay ở xa.
Chiều sâu là một tác vụ độc lập với checkpoint riêng của nó, và đầu ra của nó chỉ thuần túy là bản đồ chiều sâu; nó không trả về bounding box hay mặt nạ phân đoạn (segmentation mask). Do đó, việc kết hợp phát hiện với chiều sâu đòi hỏi phải chạy hai mô hình và hai lượt suy luận (forward pass). Điểm khác biệt so với trước đây là cả hai giờ đây đều nằm trong một gói duy nhất, sử dụng chung một lần cài đặt, một giao diện huấn luyện và dự đoán, một đường dẫn xuất, và chỉ cần theo dõi một phiên bản duy nhất, thay vì phải duy trì thêm một framework thứ hai song song với framework đầu tiên.
Kết quả đầu ra trên từng pixel đó là yếu tố giúp chiều sâu trở nên hữu ích cho việc phát hiện vật thể và không gian trống (free-space), kiểm tra khoảng hở, bố cục cảnh quan, và hiểu được vật nào đang nằm trước vật nào.
Hình 1. Ước tính chiều sâu bằng Ultralytics YOLO26 phục vụ cho việc giám sát an toàn và tuân thủ.
Ultralytics YOLO26 cung cấp sẵn năm mô hình chiều sâu tiền huấn luyện (pretrained), từ yolo26n-depth cho đến yolo26x-depth, được huấn luyện trên một tập hợp đa dữ liệu rộng lớn bao gồm khoảng 2,19 triệu hình ảnh trong nhà và ngoài trời. Trên tập dữ liệu NYU Depth V2, độ chính xác δ1 của chúng dao động từ 0,882 đối với mô hình nano lên đến 0,933 đối với mô hình extra-large, giúp bạn có thể lựa chọn mức độ cân bằng giữa tốc độ và độ chính xác phù hợp với mục tiêu triển khai của mình.
Link to this sectionChiều sâu không giới hạn theo thiết kế#
Hầu hết các mô hình chiều sâu đều giới hạn phạm vi dự đoán của chúng trong một khoảng cố định, chẳng hạn như 0–10 mét, hoạt động khá tốt cho các khung cảnh trong nhà nhưng lại thất bại khi đưa ra ngoài trời. Thay vào đó, Ultralytics dự đoán chiều sâu trên thang logarit mở (open-ended log scale) mà không có bất kỳ giới hạn cứng nào.
Sự khác biệt được thể hiện rõ qua quá trình thử nghiệm. Một mô hình bị giới hạn phạm vi sẽ đạt ngưỡng bão hòa (plateau) gần như ngay lập tức khi được huấn luyện trên dữ liệu hỗn hợp trong nhà và ngoài trời, và sẽ sụp đổ trên các tập dữ liệu có khoảng cách xa hơn như KITTI, nơi các vật thể có thể cách xa tới 80 mét. Phương pháp của YOLO26 không có giới hạn đó, vì vậy nó tiếp tục cải thiện khi có thêm dữ liệu và hoạt động tốt từ khoảng cách vài centimet cho đến vài trăm mét. Trên KITTI, chỉ số δ1 đạt tới 0,942 ở phạm vi 80 m. Điều đó có nghĩa là chỉ với một dòng mô hình duy nhất, bạn có thể xử lý tốt cả cảnh cận cảnh trên mặt bàn lẫn cảnh giao thông trên đường cao tốc.
Link to this sectionSo sánh chiều sâu của Ultralytics YOLO26 với Depth Anything V2#
Nếu bạn hiện đang chạy Depth Anything song song với YOLO, sự khác biệt nằm ở tốc độ và chi phí tính toán đi kèm. Mô hình chiều sâu của YOLO26 chạy nhanh hơn tới 20,3 lần so với Depth Anything V2 Base và nhanh hơn 7,7 lần so với Depth Anything V2 Small, từ một mô hình nhỏ hơn rất nhiều (dưới 10 triệu tham số ở phiên bản nano, so với khoảng 24 triệu của checkpoint nhỏ hơn từ DA V2).
Hình 2. Đánh giá tốc độ (benchmark) của chiều sâu Ultralytics YOLO26 so với Depth Anything V2.
Khoảng cách đó chính là mục đích cốt lõi của thiết kế. Các mô hình của Depth Anything V2 có kích thước lớn hơn đáng kể; trong khi YOLO26-Depth được xây dựng để đạt hiệu suất chiều sâu mạnh mẽ ở mức kích thước và tốc độ giúp tiêu tốn ít tài nguyên tính toán hơn trên mỗi khung hình và có thể triển khai trên các phần cứng mà những mô hình kia không thể tiếp cận. Các số liệu về độ chính xác của từng mô hình trên NYU Depth V2 và KITTI đã được công bố trong tài liệu hướng dẫn, vì vậy bạn có thể đối chiếu chúng với yêu cầu thực tế của mình.
Link to this sectionKhả năng triển khai phần cứng#
Sự khác biệt về kích thước đó chính là yếu tố quyết định nơi mà chiều sâu có thể thực sự được ứng dụng. Hầu hết các nhóm đang đánh giá về tính năng chiều sâu không thiếu ý tưởng; họ thiếu năng lực tính toán. Các thiết bị bay không người lái công suất thấp, robot bốn chân, thiết bị đeo tay, camera hành trình, phần cứng hội nghị và máy tính công nghiệp đều chạm đến giới hạn về điện năng và chi phí trước khi chạm đến giới hạn về độ chính xác.
Tính năng chiều sâu được cung cấp dưới dạng năm mô hình tiền huấn luyện, giúp bạn có thể lựa chọn kích thước phù hợp với mục tiêu thay vì chọn kích thước để đạt giải trong các bài kiểm tra benchmark. Do chiều sâu là một tác vụ gốc của YOLO26, nó sử dụng chung đường dẫn xuất với các tác vụ phát hiện, phân đoạn và ước tính tư thế với các định dạng sau: ONNX, TensorRT, CoreML, NCNN, LiteRT.
Link to this sectionBắt đầu với chiều sâu trong Ultralytics YOLO26#
Gói Python của Ultralytics cung cấp một giao diện duy nhất, thống nhất để huấn luyện, xác thực và chạy suy luận trên mọi tác vụ của YOLO26, bao gồm cả chiều sâu. Việc chạy một mô hình chiều sâu tiền huấn luyện chỉ cần một lệnh đơn giản:
from ultralytics import YOLO
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-depth.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
# Access the results
for result in results:
depth_map = result.depth.data.cpu().numpy() # torch.Tensor → NumPy float32, shape (H, W), metersHoặc chạy từ CLI:
yolo depth predict model=yolo26n-depth.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo depth predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom modelAbsolute distance depends on your camera and your scene. If the shape of the depth map is right but the scale is off, model.calibrate() fits just two variables in the model's depth head, a scale and an offset, on around 100 labeled frames, in seconds, with no training and no change to the rest of the network.
Link to this sectionTinh chỉnh (fine-tuning) trên dữ liệu của riêng bạn#
Để thích ứng một mô hình chiều sâu tiền huấn luyện với camera hoặc lĩnh vực của riêng bạn, hãy bắt đầu từ trọng số tiền huấn luyện, sử dụng AdamW, và giảm tốc độ học (learning rate) xuống thấp hơn đáng kể so với mức mặc định khi huấn luyện từ đầu để quá trình tinh chỉnh giúp cải tiến mô hình thay vì ghi đè lên nó:
from ultralytics import YOLO
from ultralytics import YOLO
model = YOLO("yolo26s-depth.pt") # start from pretrained weights
model.train(
data="path/to/your_dataset.yaml",
epochs=20,
imgsz=640,
optimizer="AdamW",
lr0=1e-4, # ~100x below the from-scratch default
warmup_bias_lr=1e-4, # keep warmup gentle too
)Do phần đầu log mặc định không có giới hạn, điều này hoạt động ngay lập tức cho dù tập dữ liệu của bạn ở khoảng cách gần hay xa, mà không cần phải tinh chỉnh tham số max_depth. Nếu chỉ có tỷ lệ tuyệt đối bị lệch đối với camera cụ thể của bạn, model.calibrate() sẽ tính toán một bản hiệu chỉnh nhẹ nhàng, dạng đóng (closed-form) trên một tập chia nhỏ (split) đã gán nhãn nhỏ, chỉ trong vài giây mà không cần chạm đến trọng số của mạng.
Các tập dữ liệu ghép nối từng ảnh RGB với một tệp chiều sâu .npy trong cấu trúc thư mục tương ứng, và Ultralytics cung cấp sẵn các cấu hình tích hợp cho NYU Depth V2, KITTI, Hypersim, SUN RGB-D và ARKitScenes, giúp hầu hết các nhóm có thể bắt đầu xác thực dựa trên một benchmark tiêu chuẩn ngay lập tức.
Để biết thêm thông tin, hãy xem hướng dẫn khởi nhanh của chúng tôi.
Link to this sectionCác trường hợp sử dụng chính cho ước tính chiều sâu#
Vì tính năng mới này có thể hoạt động từ một camera thông thường duy nhất, ước tính chiều sâu đơn mắt mở ra vô số cơ hội cho các sản phẩm và ngành công nghiệp mà nếu không có nó, họ không thể biện minh được cho chi phí, mức tiêu thụ điện năng hoặc độ phức tạp khi hiệu chỉnh của một thiết lập stereo hoặc LiDAR. Do đó, hãy cùng điểm qua một số ngành công nghiệp và trường hợp sử dụng chính có thể hưởng lợi từ tính năng này:
- Robot và điều hướng tự động. Robot di động và thiết bị bay không người lái có thể ước tính khoảng cách vật thể và không gian trống từ một camera tích hợp duy nhất, hỗ trợ lập kế hoạch đường đi thời gian thực mà không cần phần cứng chiều sâu chuyên dụng.
- Nhận thức công nghiệp và logistics. Kiểm tra khoảng hở, phát hiện không gian trống, và bối cảnh kệ hàng hoặc lối đi từ một camera cố định đơn lẻ, tại bất kỳ đâu mà việc bổ sung cảm biến thứ hai là không thực tế.
- Giám sát an toàn và tuân thủ. Vùng an toàn trong kho hàng và xe nâng, phát hiện sự cố đường sắt, phát hiện người ngã và vật thể bỏ quên trên hệ thống CCTV hiện có: bổ sung ngữ cảnh khoảng cách vào các luồng camera đã được lắp đặt sẵn, hoạt động song song với các cảm biến đạt chuẩn an toàn hiện có thay vì thay thế chúng.
- Kiểm tra hạ tầng và tài sản. Phân tích khoảng hở đường dây trên không, kiểm tra tài sản và độ ăn mòn bằng drone, và công việc khảo sát trên không, nơi cùng một dòng mô hình phải xử lý được cả chi tiết cận cảnh lẫn các khung cảnh ở khoảng cách xa.
- Hỗ trợ lái xe và nhận thức ô tô. Đầu ra chiều sâu không giới hạn tầm nhìn ở khoảng cách xa có nghĩa là cùng một dòng mô hình xử lý cảnh cận cảnh trong nhà cũng có thể khái quát hóa cho các khung cảnh lái xe từ 80 m trở lên.
- Thực tế tăng cường (AR) và nội dung không gian. Việc đặt các đối tượng ảo một cách chân thực vào một khung cảnh thực, hoặc áp dụng các hiệu ứng nhận thức chiều sâu, bắt đầu từ việc biết được khoảng cách thực tế từ camera đến mọi pixel.
Link to this sectionMang ước tính chiều sâu đến mọi triển khai YOLO26#
Với việc ước tính chiều sâu nay đã trở thành một tác vụ gốc của YOLO26, các nhóm có thể tận dụng khoảng cách trên từng pixel từ bất kỳ camera RGB nào trên nhiều lĩnh vực công nghiệp, sử dụng cùng một quy trình huấn luyện (train), xác thực (val), dự đoán (predict) và xuất (export) quen thuộc từ các tác vụ phát hiện, phân đoạn và ước tính tư thế, đồng thời giảm bớt một dependency của bên thứ ba cần phải bảo trì.
Do đó, khi bạn lên kế hoạch phạm vi triển khai với chiều sâu của Ultralytics YOLO26, hãy cùng lưu ý một số điểm chính sau đây:
- Ultralytics YOLO Depth được xây dựng cho các camera RGB. Mọi camera tiêu chuẩn đều hoạt động tốt, bao gồm webcam, điện thoại, camera công nghiệp hoặc drone. Tuy nhiên, các định dạng dữ liệu khác như đám mây điểm LiDAR (LiDAR point cloud), radar, sonar, dải nhiệt và đa phổ, hoặc dữ liệu lưới (mesh) và IFC nằm ngoài định dạng đầu vào của mô hình.
- Khoảng cách theo mét cho các quyết định nhận thức. Đầu ra là khoảng cách thực tế tính bằng mét, rất phù hợp cho việc điều hướng, kiểm tra khoảng hở và giám sát. Tuy nhiên, đối với bất kỳ ứng dụng nào yêu cầu độ dung sai được chứng nhận, các thiết bị đo lường chuyên dụng vẫn là công cụ chính xác phù hợp.
- Suy luận trên từng khung hình (Per-image inference). Tác vụ chiều sâu chạy độc lập trên từng khung hình, tương thích với mọi tác vụ YOLO26 khác, do đó có thể tích hợp mượt mà vào một pipeline xử lý từng khung hình hiện có mà không cần thay đổi. Việc suy luận xuyên suốt một chuỗi khung hình (sequence) vẫn nằm ở lớp ứng dụng của bạn.
- Ultralytics YOLO26-Depth thể hiện hiệu suất mạnh mẽ nhất trên các bề mặt có kết cấu và không trong suốt. Kính, gương, nước đọng, kim loại đánh bóng và bầu trời quang đãng vốn dĩ có tính mơ hồ đối với bất kỳ phương pháp sử dụng một camera nào, vì vậy bạn nên tiến hành kiểm chứng trên các khung cảnh đại diện cho môi trường thực tế của mình.
Bạn tò mò về thị giác máy tính AI? Hãy khám phá các tùy chọn cấp phép của chúng tôi để đưa thị giác máy tính vào các dự án của bạn. Ghé thăm kho lưu trữ GitHub của chúng tôi để khám phá toàn bộ các tác vụ và tích hợp của Ultralytics, đồng thời xem qua Ultralytics Platform để bắt đầu xây dựng các quy trình làm việc thị giác máy tính đầu cuối (end-to-end) của riêng bạn.






