Ultralytics YOLO27:

Bộ dữ liệu độ sâu Hypersim#

Hypersim là bộ dữ liệu tổng hợp chân thực như ảnh chụp về các cảnh trong nhà, được thiết kế để hỗ trợ hiểu cảnh trong nhà toàn diện. Ảnh được tạo bằng phương pháp ray tracing từ các nội thất 3D Evermotion do chuyên gia dựng, tạo ra hình ảnh kết xuất cực kỳ chân thực đi kèm ground truth độ sâu dày đặc, chính xác đến từng pixel.

Vì Hypersim hoàn toàn là dữ liệu tổng hợp, mỗi pixel đều có giá trị độ sâu chính xác, không bị nhiễu cảm biến, thiếu dữ liệu phản hồi hay lỗi đo lường. Nhờ đó, đây là nguồn hình học trong nhà sạch, dày đặc, rất phù hợp để huấn luyện các model ước lượng độ sâu đơn ảnh.

Tính năng chính#

  • Cảnh trong nhà tổng hợp chân thực như ảnh chụp, được tạo bằng phương pháp ray tracing từ nội thất 3D Evermotion chuyên nghiệp.
  • Chỉ bao gồm môi trường trong nhà.
  • Ground truth độ sâu dày đặc theo từng pixel hoàn hảo, không có nhiễu cảm biến hay giá trị bị thiếu.
  • Phạm vi độ sâu chủ yếu ≤10 m (một số khoảng cách lớn hơn).
  • Đóng góp 74,619 ảnh (68,242 train / 6,377 val) vào hỗn hợp huấn luyện depth của Ultralytics.

Cấu trúc dataset#

Bộ dữ liệu độ sâu Hypersim được chia thành hai tập con:

  1. Train: 68,242 ảnh kèm bản đồ độ sâu dày đặc tương ứng để huấn luyện.
  2. Val: 6,377 ảnh kèm bản đồ độ sâu dày đặc tương ứng để xác thực trong quá trình huấn luyện.

Mỗi ảnh RGB được ghép với một ảnh PNG độ sâu uint16 đã được scale, theo định dạng bộ dữ liệu depth của Ultralytics.

Tải dữ liệu#

Hypersim không hỗ trợ tự động tải xuống — bộ dữ liệu (~1.9 TB gồm các tệp ZIP theo từng cảnh) do Apple phân phối theo giấy phép CC BY-SA 3.0 và được tải bằng script chính thức từ repository ml-hypersim (có trình tải xuống chọn lọc tại contrib/99991):

git clone https://github.com/apple/ml-hypersim && cd ml-hypersim
python code/python/tools/dataset_download_images.py --downloads_dir ./downloads --decompress_dir ./scenes

Các khung hình RGB là bản xem trước frame.*.tonemap.jpg, còn dữ liệu độ sâu nằm trong frame.*.depth_meters.hdf5. Các giá trị được lưu là khoảng cách tia đến tâm camera, không phải độ sâu phẳng — hãy chuyển đổi trước khi lưu và ánh xạ các pixel NaN (cửa sổ, bầu trời) thành 0 (không hợp lệ). Sử dụng phân chia cảnh chính thức metadata_images_split_scene_v1.csv để phân công train/val. Tham khảo cách chuyển đổi sang định dạng bộ dữ liệu depth của Ultralytics:

import shutil
from pathlib import Path

import h5py
import numpy as np

from ultralytics.data.utils import save_depth_png

W, H, FOCAL = 1024, 768, 886.81  # Hypersim camera intrinsics
x, y = np.meshgrid(np.linspace(-W / 2, W / 2, W), np.linspace(-H / 2, H / 2, H))
ray2plane = (FOCAL / np.sqrt(x**2 + y**2 + FOCAL**2)).astype(np.float32)  # distance → planar depth

src, dst = Path("scenes"), Path("datasets/depth-hypersim")
out = "train"  # assign per scene from metadata_images_split_scene_v1.csv
(dst / f"images/{out}").mkdir(parents=True, exist_ok=True)
(dst / f"depth/{out}").mkdir(parents=True, exist_ok=True)
for h5 in sorted(src.rglob("*.depth_meters.hdf5")):
    scene, cam, frame = h5.parts[-4], h5.parent.name.split("_geometry")[0], h5.name.split(".")[1]
    rgb = h5.parents[1] / f"{cam}_final_preview" / f"frame.{frame}.tonemap.jpg"
    dist = np.asarray(h5py.File(h5)["dataset"], np.float32)
    depth = np.nan_to_num(dist * ray2plane, nan=0.0)  # NaN (sky, glass) → 0 = invalid
    name = f"{scene}_{cam}_{frame}"
    save_depth_png(dst / f"depth/{out}/{name}.png", depth)
    shutil.copy(rgb, dst / f"images/{out}/{name}.jpg")

Vai trò trong YOLO26-Depth#

Hypersim là một trong các nguồn huấn luyện trong hỗn hợp đa bộ dữ liệu quy mô lớn (~2.19M ảnh) dùng để pretrain các model Ultralytics YOLO26-Depth. Trong hỗn hợp này, Hypersim đóng góp hình học trong nhà sạch và dày đặc, bổ sung cho dữ liệu cảm biến thực tế nhiễu hơn.

Thiết lập này không có benchmark Hypersim riêng biệt với tập dữ liệu giữ lại để đánh giá. Thay vào đó, các model thu được được đánh giá trên những benchmark độ sâu đơn ảnh tiêu chuẩn: NYU Depth V2, KITTI, Make3D, ETH3D và iBims-1.

YAML của dataset#

Tệp YAML dùng để định nghĩa cấu hình bộ dữ liệu. Tệp này chứa thông tin về đường dẫn, class và các thông tin liên quan khác của bộ dữ liệu. Với Hypersim, tệp depth-hypersim.yaml định nghĩa các đường dẫn và class duy nhất depth.

ultralytics/cfg/datasets/depth-hypersim.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Hypersim dataset for monocular depth estimation — photorealistic synthetic indoor (ray-traced), dense depth up to ~10 m
# Documentation: https://docs.ultralytics.com/datasets/depth/hypersim
# Example usage: yolo depth train data=depth-hypersim.yaml model=yolo26n-depth.pt
# No autodownload — obtain the source data (see docs) and arrange it as below.
# parent
# ├── ultralytics
# └── datasets
#     └── depth-hypersim
#         ├── images/{train,val}  # RGB images
#         └── depth/{train,val}   # paired 16-bit *.png depth maps (images/ -> depth/)

path: depth-hypersim # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 68242 images
val: images/val # val images (relative to 'path') 6377 images

nc: 1
names:
  0: depth

channels: 3

Cách sử dụng#

Để huấn luyện model YOLO26n-Depth trên bộ dữ liệu Hypersim với kích thước ảnh 640, bạn có thể dùng các đoạn mã sau. Để xem danh sách đầy đủ các tham số hiện có, hãy tham khảo trang Huấn luyện của model.

Ví dụ huấn luyện
from ultralytics import YOLO

# Tải model
model = YOLO("yolo26n-depth.pt")  # tải model đã huấn luyện trước (được khuyến nghị khi huấn luyện)

# Huấn luyện model
results = model.train(data="depth-hypersim.yaml", epochs=100, imgsz=640)

Model được tiền huấn luyện#

Họ model depth YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) tự động tải xuống từ các bản phát hành của Ultralytics và được huấn luyện trên hỗn hợp đa bộ dữ liệu quy mô lớn có Hypersim. Khám phá YOLO26x-depth trên Ultralytics Platform.

Trích dẫn và lời cảm ơn#

Nếu sử dụng bộ dữ liệu Hypersim trong nghiên cứu hoặc công việc phát triển, vui lòng trích dẫn bài báo sau:

Trích dẫn
@inproceedings{roberts2021hypersim,
      title={Hypersim: A Photorealistic Synthetic Dataset for Holistic Indoor Scene Understanding},
      author={Mike Roberts and Jason Ramapuram and Anurag Ranjan and Atulit Kumar and Miguel Angel Bautista and Nathan Paczan and Russ Webb and Joshua M. Susskind},
      booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
      year={2021}
}

Chúng tôi xin ghi nhận công lao của những người tạo ra Hypersim vì đã cung cấp bộ dữ liệu tổng hợp chân thực như ảnh chụp về cảnh trong nhà này cho cộng đồng thị giác máy tính.

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

  • Hypersim là bộ dữ liệu tổng hợp chân thực như ảnh chụp về cảnh trong nhà của Apple, được tạo bằng phương pháp ray tracing từ các nội thất 3D Evermotion chuyên nghiệp. Vì mỗi pixel đều có giá trị độ sâu chính xác, không bị nhiễu cảm biến hay thiếu dữ liệu phản hồi, 74,619 ảnh (68,242 train, 6,377 val) cung cấp hình học trong nhà sạch, dày đặc, bổ sung cho dữ liệu cảm biến thực tế nhiễu hơn trong hỗn hợp huấn luyện YOLO26-Depth.

  • Hypersim không hỗ trợ tải xuống tự động. Tải các cảnh (~1.9 TB) bằng script chính thức từ repository ml-hypersim, sau đó chuyển đổi khoảng cách tia depth_meters.hdf5 thành độ sâu phẳng và ghi thành ảnh PNG đơn vị millimeter bằng script trong phần Lấy dữ liệu. Ánh xạ các pixel NaN như cửa sổ và bầu trời thành 0 để chúng được xem là không hợp lệ.

  • Chạy yolo depth train data=depth-hypersim.yaml model=yolo26n-depth.pt epochs=100 imgsz=640 hoặc dùng ví dụ Python trong phần Cách sử dụng. Trang Huấn luyện liệt kê tất cả tham số hiện có.

Người đóng góp

Bình luận