Bảo mật cấp doanh nghiệp: Tuân thủ ISO 27001 + SOC 2 Type I.

Link to this sectionTổng quan về các tập dữ liệu ước tính độ sâu#

Monocular depth estimation assigns a floating-point depth value in meters to every pixel in an image. The training target is a dense per-pixel depth map stored as a .npy float32 array. Each value represents the distance from the camera to the corresponding scene point.

Hướng dẫn này giải thích định dạng tập dữ liệu được sử dụng bởi các model ước tính độ sâu Ultralytics YOLO và liệt kê các cấu hình tập dữ liệu tích hợp sẵn có để huấn luyện và kiểm định.

Link to this sectionĐịnh dạng tập dữ liệu được hỗ trợ#

Link to this sectionĐịnh dạng bản đồ độ sâu NPY#

Each training sample consists of one RGB image and one paired .npy depth file. The depth file stores a 2D float32 NumPy array with shape (H, W) where values are depths in meters.

  • Depth files must use the .npy extension and contain a float32 array.
  • Mỗi tệp độ sâu phải có cùng tên gốc với tệp ảnh tương ứng (ví dụ: scene_001.npy ghép cặp với scene_001.jpg).
  • Trình tải tập dữ liệu tìm các tệp độ sâu bằng cách thay thế thành phần thư mục images bằng depth trong đường dẫn tệp và thay thế phần mở rộng ảnh bằng .npy.
  • Các pixel có độ sâu ≤ 0 được coi là không hợp lệ và bị loại trừ khỏi quá trình tính toán hàm mất mát (loss) và các chỉ số (metric).

Bố cục tiêu chuẩn giữ ảnh và bản đồ độ sâu trong các thư mục song song:

dataset/
├── images/
│   ├── train/
│   └── val/
└── depth/
    ├── train/
    └── val/

Ví dụ, một ảnh tại images/train/scene_001.jpg được ghép cặp với bản đồ độ sâu tại depth/train/scene_001.npy.

Link to this sectionĐịnh dạng YAML cho tập dữ liệu#

Các tập dữ liệu ước tính độ sâu được cấu hình bằng các tệp YAML. Các trường chính là:

KhóaMô tả
pathThư mục gốc của tập dữ liệu.
trainĐường dẫn hình ảnh huấn luyện tương đối so với path, hoặc đường dẫn tuyệt đối.
valĐường dẫn hình ảnh xác thực tương đối so với path, hoặc đường dẫn tuyệt đối.
testĐường dẫn hình ảnh kiểm tra tùy chọn.
ncSố lượng lớp — luôn là 1 đối với ước tính độ sâu.
namesÁnh xạ tên lớp — luôn là {0: depth}.
ultralytics/cfg/datasets/nyu-depth.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# NYU Depth V2 dataset for monocular depth estimation
# Documentation: https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html
# 795 train + 654 val (Eigen test split) images, 480x640, indoor scenes, depth in meters
# Example usage: yolo depth train data=nyu-depth.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
#     └── nyu-depth  ← downloads here (≈1.5 GB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: nyu-depth # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 795 images
val: images/val # val images (relative to 'path') 654 images

# Depth maps are paired .npy files (float32, meters) under depth/<split>/, resolved by
# swapping '/images/' -> '/depth/' on each image path.

# Classes
nc: 1
names:
  0: depth

channels: 3

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/nyu-depth.zip

Link to this sectionCách sử dụng#

Huấn luyện một model ước tính độ sâu YOLO26 với Python hoặc CLI:

Ví dụ
from ultralytics import YOLO

# Load a pretrained depth model
model = YOLO("yolo26n-depth.pt")

# Train on the NYU Depth V2 dataset
results = model.train(data="nyu-depth.yaml", epochs=100, imgsz=640)

Link to this sectionCác tập dữ liệu được hỗ trợ#

Các model độ sâu YOLO26 được tiền huấn luyện trên một tập hợp đa dạng các tập dữ liệu (~2,19 triệu ảnh) bao gồm từ trong nhà (≤10 m) đến ngoài trời (~80 m), sau đó được đánh giá zero-shot trên năm bộ benchmark. Mỗi tập dữ liệu có một trang dành riêng:

Gỡ lỗi

  • Depth8 — 8 ảnh SUN RGB-D trong một tệp lưu trữ tự động tải xuống có dung lượng 1,3 MB, dùng để kiểm tra quy trình nhanh

Nguồn tiền huấn luyện

  • ARKitScenes — thực tế trong nhà, Apple ARKit LiDAR (nguồn thực tế lớn nhất)
  • SUN RGB-D — thực tế trong nhà, RGB-D đa cảm biến
  • DIODE — thực tế trong nhà + ngoài trời, dữ liệu thực (ground truth) từ máy quét laser dày đặc
  • Hypersim — mô phỏng trong nhà với độ chân thực cao
  • TartanAir — mô phỏng, môi trường đa dạng
  • Virtual KITTI 2 — mô phỏng lái xe ngoài trời
  • KITTI — thực tế lái xe ngoài trời, Velodyne LiDAR (cũng là một bộ benchmark đánh giá)
  • ImageNet (pseudo-labeled) — tập hợp chưng cất gán nhãn giả, nguồn đơn lẻ lớn nhất

Bộ benchmark đánh giá

  • NYU Depth V2 — bộ benchmark trong nhà chính
  • KITTI Eigen — bộ benchmark lái xe ngoài trời
  • ETH3D — độ chính xác cao trong nhà + ngoài trời
  • Make3D — ngoài trời, dữ liệu out-of-distribution
  • iBims-1 — trong nhà chất lượng cao (cạnh và bề mặt phẳng)

Độ chính xác của từng model trên các bộ benchmark này và các trọng số đã được tiền huấn luyện có thể tải xuống được liệt kê trên trang tác vụ Ước tính độ sâu. Một tệp YAML tập dữ liệu mà trường train liệt kê nhiều thư mục ảnh sẽ kết hợp các nguồn này cho việc huấn luyện hỗn hợp quy mô lớn.

Link to this sectionThêm tập dữ liệu của riêng bạn#

  1. Lưu các ảnh RGB dưới các thư mục phân chia như images/trainimages/val.
  2. Save one .npy float32 depth array per image under the matching depth/train and depth/val folders using the same file stem as the image.
  3. Đảm bảo các giá trị độ sâu tính bằng mét và các pixel không hợp lệ hoặc bị thiếu sử dụng 0 hoặc các giá trị âm.
  4. Tạo một tệp YAML tập dữ liệu với path, train, val, nc: 1, và names: {0: depth}.
path: path/to/my-depth-dataset
train: images/train
val: images/val

nc: 1
names:
    0: depth

Link to this sectionCâu hỏi thường gặp#

Link to this sectionBản đồ độ sâu nên sử dụng định dạng tệp nào?#

Depth maps must be saved as NumPy .npy files containing float32 arrays of shape (H, W). Each element stores the depth in meters for the corresponding image pixel. Do not use PNG or 16-bit integer formats — the loader expects raw float arrays.

Link to this sectionCác pixel độ sâu không hợp lệ được xử lý như thế nào?#

Các pixel có giá trị độ sâu ≤ 0 được coi là không hợp lệ và được che (mask) khỏi cả việc tính toán mất mát và đánh giá chỉ số. Điều này bao gồm nhiễu cảm biến, vùng bầu trời và các bề mặt phản chiếu nơi độ sâu không thể đo lường một cách tin cậy.

Link to this sectionNhững chỉ số nào được sử dụng để đánh giá?#

Việc kiểm định ước tính độ sâu báo cáo tập hợp chỉ số Depth Anything tiêu chuẩn:

  • delta1 / delta2 / delta3 — tỷ lệ phần trăm các pixel nằm trong ngưỡng 1,25×, 1,25²×, 1,25³×. Chỉ số càng cao càng tốt.
  • abs_rel — sai số tương đối trung bình tuyệt đối. Chỉ số càng thấp càng tốt.
  • rmse — sai số căn quân phương (root mean squared error) tính bằng mét. Chỉ số càng thấp càng tốt.
  • silog — sai số logarit bất biến tỷ lệ (scale-invariant logarithmic error). Chỉ số càng thấp càng tốt.

Link to this sectionTên tệp độ sâu có cần phải khớp với tên tệp ảnh không?#

Có. Mỗi tệp độ sâu .npy phải chia sẻ cùng tên gốc với ảnh tương ứng. Trình tải suy ra đường dẫn độ sâu bằng cách thay thế thành phần thư mục images bằng depth và thay thế phần mở rộng ảnh bằng .npy. Các ảnh bị thiếu hoặc không đọc được tệp độ sâu sẽ bị loại bỏ trong quá trình quét tập dữ liệu (đã cache) cùng với một cảnh báo, giống hệt như các ảnh bị hỏng; nếu không tìm thấy cặp ảnh-độ sâu hợp lệ nào, lỗi sẽ được đưa ra.

Những người đóng góp

Bình luận