Tập dữ liệu độ sâu Hypersim#
Hypersim là một tập dữ liệu tổng hợp chân thực quang học gồm các cảnh trong nhà, được thiết kế để hiểu toàn diện cảnh trong nhà. Các hình ảnh của nó được dò tia (ray-traced) từ các không gian nội thất 3D Evermotion được tạo chuyên nghiệp, tạo ra các bản kết xuất có độ thực tế cao kết hợp với dữ liệu gốc độ sâu từng pixel hoàn hảo, dày đặc.
Vì Hypersim hoàn toàn là tổng hợp, mọi pixel đều có giá trị độ sâu chính xác mà không có nhiễu cảm biến, điểm phản hồi bị thiếu hoặc hiện vật đo lường. Điều này làm cho nó trở thành một nguồn tuyệt vời về hình học trong nhà sạch sẽ, dày đặc để huấn luyện các model depth estimation đơn ảnh.
Tính năng chính#
- Các cảnh trong nhà tổng hợp chân thực, được ray-trace từ các nội thất 3D chuyên nghiệp của Evermotion.
- Chỉ áp dụng cho môi trường trong nhà.
- Ground truth độ sâu trên từng pixel dày đặc, hoàn hảo, không có nhiễu cảm biến hoặc thiếu giá trị.
- Phạm vi độ sâu chủ yếu là ≤10 m (với một số khoảng cách lớn hơn).
- Đóng góp 74.619 hình ảnh (68.242 tập train / 6.377 tập val) vào tập hợp huấn luyện độ sâu của Ultralytics.
Cấu trúc tập dữ liệu#
Tập dữ liệu độ sâu Hypersim được chia thành hai tập con:
- Train: 68.242 hình ảnh với bản đồ độ sâu dày đặc đi kèm để huấn luyện.
- Val: 6.377 hình ảnh với bản đồ độ sâu dày đặc đi kèm để xác thực trong quá trình huấn luyện.
Mỗi hình ảnh RGB đi kèm với một bản đồ độ sâu float32 .npy lưu trữ khoảng cách theo từng pixel tính bằng mét, tuân theo Ultralytics depth dataset format.
Nhận dữ liệu#
Hypersim không có tính năng tự động tải xuống — tập dữ liệu (khoảng ~1.9 TB các file ZIP theo từng cảnh) được phân phối bởi Apple theo CC BY-SA 3.0 license và được tải xuống bằng script chính thức từ ml-hypersim repository (một trình tải xuống có chọn lọc có sẵn trong 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 ./scenesCác khung hình RGB là bản xem trước frame.*.tonemap.jpg và độ sâu nằm ở frame.*.depth_meters.hdf5. Các giá trị được lưu trữ 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 metadata_images_split_scene_v1.csv chính thức để gán train/val. Chuyển đổi tham chiếu sang Ultralytics depth dataset format:
import shutil
from pathlib import Path
import h5py
import numpy as np
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}"
np.save(dst / f"depth/{out}/{name}.npy", depth)
shutil.copy(rgb, dst / f"images/{out}/{name}.jpg")Vai trò trong YOLO26-Depth#
Hypersim là một trong những nguồn huấn luyện trong hỗn hợp đa tập dữ liệu rộng lớn (~2,19 triệu hình ảnh) được sử dụng để tiền huấn luyện các model YOLO26-Depth của Ultralytics. Trong hỗn hợp này, Hypersim đóng gó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ế vốn có nhiều nhiễu hơn.
Không có điểm chuẩn (benchmark) Hypersim độc lập nào trong thiết lập này. Thay vào đó, các model thu được được đánh giá trên các tiêu chuẩn độ sâu đơn ảnh phổ biến: NYU Depth V2, KITTI, Make3D, ETH3D và iBims-1.
YAML tập dữ liệu#
Một file YAML (Yet Another Markup Language) được sử dụng để định nghĩa cấu hình tập dữ liệu. Nó chứa thông tin về các đường dẫn, class và các thông tin liên quan khác của tập dữ liệu. Đối với Hypersim, file depth-hypersim.yaml định nghĩa các đường dẫn và class đơn lẻ depth.
# 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 *.npy, float32 meters (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: 3Cách sử dụng#
Để huấn luyện model YOLO26n-Depth trên tập dữ liệu Hypersim với kích thước ảnh là 640, bạn có thể sử dụng các đoạn code sau. Để có danh sách toàn diện các tham số khả dụng, hãy tham khảo trang Training của model.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-depth.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="depth-hypersim.yaml", epochs=100, imgsz=640)Các model đã được tiền huấn luyện#
Họ YOLO26 depth (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 tập hợp đa tập dữ liệu rộng lớn mà Hypersim là một phần trong đó. Khám phá YOLO26x-depth trên Ultralytics Platform.
Trích dẫn và Ghi nhận#
Nếu bạn sử dụng tập dữ liệu Hypersim trong nghiên cứu hoặc công việc phát triển của mình, vui lòng trích dẫn bài báo sau:
@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ác tác giả của Hypersim vì đã cung cấp tập dữ liệu trong nhà tổng hợp chân thực này cho cộng đồng thị giác máy tính.