Ultralytics YOLO27:

Tập dữ liệu độ sâu ARKitScenes#

ARKitScenes là tập dữ liệu RGB-D trong nhà quy mô lớn, thu thập trong môi trường thực bằng ARKit của Apple trên các thiết bị iPad Pro được trang bị máy quét LiDAR. Đây là tập dữ liệu RGB-D trong nhà thực lớn nhất cùng loại, cung cấp các cảnh trong nhà đa dạng được ghi lại tự nhiên cùng ground truth độ sâu chính xác cho tác vụ ước tính độ sâu đơn ảnh.

Tính năng chính#

  • Được thu thập bằng máy quét LiDAR và camera RGB của ARKit trên iPad Pro của Apple, tạo ra dữ liệu cảm biến thực (không tổng hợp).
  • Bao gồm các cảnh trong nhà đa dạng phục vụ việc hiểu cảnh trong nhà 3D.
  • Khoảng độ sâu ngắn, xấp xỉ 0,5–6 m (độ sâu tối đa trung vị khoảng 2,4 m), đặc trưng của quá trình thu thập dữ liệu trong nhà bằng thiết bị cầm tay.
  • Ground truth độ sâu dày đặc được tạo từ LiDAR, căn chỉnh với các khung hình RGB.
  • Nguồn dữ liệu thực tế lớn nhất trong hỗn hợp pretraining độ sâu của Ultralytics.

Cấu trúc dataset#

Dataset độ sâu ARKitScenes được chia thành hai tập con:

  1. Train: 676,080 ảnh đi kèm bản đồ độ sâu để huấn luyện.
  2. Val: 21,559 ảnh đi kèm bản đồ độ sâu để xác thực trong quá trình huấn luyện model.

Mỗi mẫu gồm một ảnh RGB và một ảnh PNG độ sâu uint16 đi kèm, tính bằng milimét (depth_scale: 1000), theo định dạng dataset độ sâu của Ultralytics. Các số liệu này là tập con được dùng cho những model đã phát hành, tạo từ 4,347 trong số 4,520 video Training và 102 trong số 551 video Validation; chuyển đổi toàn bộ các tập sẽ tạo ra nhiều cặp dữ liệu hơn.

Tải dữ liệu#

ARKitScenes không hỗ trợ tự động tải xuống — dữ liệu do Apple phân phối và việc tải xuống yêu cầu chấp nhận các điều khoản cấp phép trong repository ARKitScenes. Clone repository và tải các tài nguyên lowres_wide (RGB) cùng lowres_depth của tập con raw, bao gồm toàn bộ các tập Training gồm 4,520 video và Validation gồm 551 video. Bắt buộc phải có danh sách video; truyền CSV của tập split mà không có --split sẽ tải cả hai fold trong một lần gọi:

git clone https://github.com/apple/ARKitScenes && cd ARKitScenes
python3 download_data.py raw --video_id_csv raw/raw_train_val_splits.csv \
  --raw_dataset_assets lowres_wide lowres_depth --download_dir ./data

Các khung hình được lưu trong data/raw/{Training,Validation}/<video_id>/{lowres_wide,lowres_depth}/. Dự trù khoảng 2.5 TB dung lượng ổ đĩa: các luồng thô chạy ở ~60 FPS và quá trình chuyển đổi bên dưới giữ lại mỗi khung hình thứ 30 (~2 Hz).

Các khung hình độ sâu là ảnh PNG uint16, tính bằng milimét (0 = không hợp lệ); tên tệp RGB/độ sâu là dấu thời gian thu thập không khớp chính xác — ghép mỗi khung hình RGB với khung hình độ sâu có dấu thời gian gần nhất. Tham khảo cách chuyển đổi sang định dạng dataset độ sâu của Ultralytics:

import shutil
from bisect import bisect_left
from pathlib import Path

src, dst = Path("data/raw"), Path("datasets/depth-arkitscenes")
for split, out in (("Training", "train"), ("Validation", "val")):
    (dst / f"images/{out}").mkdir(parents=True, exist_ok=True)
    (dst / f"depth/{out}").mkdir(parents=True, exist_ok=True)
    for video in sorted((src / split).iterdir()):
        depths = sorted((video / "lowres_depth").glob("*.png"), key=lambda p: float(p.stem.split("_")[-1]))
        if not depths:
            continue
        times = [float(p.stem.split("_")[-1]) for p in depths]
        rgbs = sorted((video / "lowres_wide").glob("*.png"), key=lambda p: float(p.stem.split("_")[-1]))
        for rgb in rgbs[30::30]:  # every 30th frame of the ~60 FPS capture (~2 Hz)
            t = float(rgb.stem.split("_")[-1])
            i = min(bisect_left(times, t), len(times) - 1)
            if i and t - times[i - 1] < times[i] - t:
                i -= 1  # nearest-timestamp depth frame
            name = f"{out}_{video.name}_{depths[i].stem}"
            shutil.copy2(rgb, dst / f"images/{out}/{name}.png")
            shutil.copy2(depths[i], dst / f"depth/{out}/{name}.png")

Vai trò trong YOLO26-Depth#

ARKitScenes là nguồn huấn luyện trong hỗn hợp pretraining đa dataset YOLO26-Depth của Ultralytics, gồm khoảng 2.19M cặp ảnh–độ sâu. Là nguồn dữ liệu thực tế lớn nhất trong hỗn hợp này, dataset cung cấp lượng lớn dữ liệu độ sâu LiDAR trong nhà, làm nền tảng cho độ chính xác của model ở phạm vi ngắn trong nhà. Các model thu được được đánh giá trên những benchmark tiêu chuẩn NYU, KITTI, Make3D, ETH3D và iBims-1.

YAML của dataset#

Tệp YAML được dùng để xác định cấu hình dataset. 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 dataset.

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

# ARKitScenes dataset for monocular depth estimation — real indoor RGB-D from Apple ARKit (iPad Pro LiDAR), depth ~0.5-6 m
# Documentation: https://docs.ultralytics.com/datasets/depth/arkitscenes
# Example usage: yolo depth train data=depth-arkitscenes.yaml model=yolo26n-depth.pt
# No autodownload — obtain the source data (see docs) and arrange it as below.
# parent
# ├── ultralytics
# └── datasets
#     └── depth-arkitscenes
#         ├── images/{train,val}  # RGB images
#         └── depth/{train,val}   # paired 16-bit *.png depth maps (images/ -> depth/)

path: depth-arkitscenes # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 676080 images
val: images/val # val images (relative to 'path') 21559 images

nc: 1
names:
  0: depth

channels: 3

Cách sử dụng#

Để huấn luyện model YOLO26n-depth trên dataset ARKitScenes với kích thước ảnh 640, bạn có thể dùng các đoạn code 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 độ sâu đã pretrained (được khuyến nghị khi huấn luyện)

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

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

Họ model YOLO26 depth được huấn luyện trên hỗn hợp pretraining độ sâu đa dataset quy mô lớn, trong đó có ARKitScenes. Các model này tự động tải xuống trong lần sử dụng đầu tiên từ bản phát hành assets v8.4.0 của Ultralytics, chẳng hạn như YOLO26x-depth, và có nhiều kích cỡ phù hợp với các yêu cầu khác nhau về độ chính xác và tài nguyên.

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

Nếu sử dụng dataset ARKitScenes trong nghiên cứu hoặc phát triển, vui lòng trích dẫn bài báo sau:

Trích dẫn
@inproceedings{baruch2021arkitscenes,
      title={ARKitScenes: A Diverse Real-World Dataset for 3D Indoor Scene Understanding Using Mobile RGB-D Data},
      author={Baruch, Gilad and Chen, Zhuoyuan and Dehghan, Afshin and Dimry, Tal and Feigin, Yuri and Fu, Peter and Gebauer, Thomas and Joffe, Brandon and Kurz, Daniel and Schwartz, Arik and Shulman, Elad},
      booktitle={Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
      year={2021}
}

Chúng tôi xin ghi nhận công lao của các tác giả trong việc tạo và duy trì tài nguyên quý giá này cho cộng đồng thị giác máy tính.

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

  • ARKitScenes là nguồn dữ liệu thực tế lớn nhất trong hỗn hợp pretraining YOLO26-Depth gồm khoảng 2.19M ảnh, đóng góp 676,080 ảnh huấn luyện và 21,559 ảnh xác thực được thu bằng máy quét LiDAR trên thiết bị Apple iPad Pro. Dữ liệu độ sâu dày đặc trong nhà tạo nền tảng cho độ chính xác ở phạm vi ngắn của các model đã phát hành; sau đó, các model được đánh giá trên NYU Depth V2, KITTI, ETH3D, Make3D và iBims-1.

  • ARKitScenes không hỗ trợ tải xuống tự động. Chấp nhận các điều khoản cấp phép trong repository ARKitScenes, tải các tài nguyên lowres_wide và lowres_depth của tập con raw bằng script chính thức download_data.py, sau đó giữ lại mỗi khung hình RGB thứ 30 và ghép với khung hình độ sâu có dấu thời gian gần nhất bằng script chuyển đổi trong mục Tải dữ liệu. Kết quả tuân theo bố cục dataset độ sâu tiêu chuẩn của Ultralytics, với ảnh PNG uint16 tính bằng milimét.

  • ARKitScenes là dataset trong nhà được thu bằng thiết bị cầm tay, với độ sâu khoảng 0,5 đến 6 m và độ sâu tối đa trung vị khoảng 2,4 m; do đó, dataset bổ trợ cho các nguồn có tầm xa hơn như KITTI và TartanAir trong hỗn hợp huấn luyện.

Người đóng góp

Bình luận