Ultralytics YOLO27:

Dataset Depth TartanAir#

TartanAir là dataset tổng hợp quy mô lớn được tạo bằng trình mô phỏng AirSim. Dataset được tạo ra để đẩy giới hạn của SLAM thị giác, bao quát nhiều môi trường — trong nhà, ngoài trời, đô thị và thiên nhiên — cùng với các biến thể theo mùa, thời tiết, ánh sáng và những điều kiện khó khăn.

Vì TartanAir được kết xuất trong môi trường mô phỏng, dataset cung cấp ground truth depth dày đặc trên tập hợp cảnh đa dạng này, trở thành nguồn đa dạng môi trường và hình học tầm xa hữu ích để huấn luyện các model ước lượng depth đơn ảnh.

Tính năng chính#

  • Dữ liệu tổng hợp được tạo bằng trình mô phỏng AirSim.
  • Môi trường trong nhà và ngoài trời đa dạng (đô thị, thiên nhiên) với các biến thể theo mùa, thời tiết, ánh sáng cùng những điều kiện khó khăn.
  • Ground truth depth dày đặc trên tất cả cảnh.
  • Phạm vi depth đến ~80 m.
  • Đóng góp 61.470 ảnh (55.660 train / 5.810 val) vào tập dữ liệu trộn huấn luyện depth của Ultralytics.

Cấu trúc dataset#

Dataset depth TartanAir được chia thành hai tập con:

  1. Train: 55.660 ảnh cùng các depth map dày đặc tương ứng để huấn luyện.
  2. Val: 5.810 ảnh cùng các depth map dày đặc tương ứng để validation trong quá trình huấn luyện.

Mỗi ảnh RGB được ghép với một PNG depth uint16 đã scale ở mức 256 đơn vị trên mỗi mét (depth_scale: 256), theo định dạng dataset depth của Ultralytics. Định dạng này biểu diễn toàn bộ phạm vi 80 m ở độ phân giải 3.90625 mm.

Tải dữ liệu#

TartanAir không hỗ trợ tự động tải xuống — dữ liệu được phân phối bởi AirLab của CMU (xem trang dataset để biết điều khoản) và được tải xuống bằng các script tartanair_tools:

git clone https://github.com/castacks/tartanair_tools && cd tartanair_tools
python download_training.py --output-dir ./data --rgb --depth --only-left --unzip

Depth đã được lưu dưới dạng .npy float32 tính bằng mét (depth_left/*_left_depth.npy bên cạnh image_left/*_left.png), vì vậy việc chuyển đổi chỉ gồm sắp xếp lại và đánh dấu vùng trời là không hợp lệ (được kết xuất thành khoảng cách cực lớn; tập dữ liệu trộn đã phát hành giới hạn ở 80 m để khớp với YAML của dataset). TartanAir không cung cấp tập val chính thức — hãy dành riêng một hoặc nhiều môi trường. Tham khảo cách chuyển đổi sang định dạng dataset depth của Ultralytics:

import shutil
from pathlib import Path

import numpy as np

from ultralytics.data.utils import save_depth_png

VAL_ENVS = {"neighborhood"}  # environments held out for validation
src, dst = Path("data"), Path("datasets/depth-tartanair")
for depth_file in sorted(src.rglob("depth_left/*_left_depth.npy")):
    env, level, traj = depth_file.parts[-5:-2]  # e.g. neighborhood, Easy, P000
    out = "val" if env.lower() in VAL_ENVS else "train"
    (dst / f"images/{out}").mkdir(parents=True, exist_ok=True)
    (dst / f"depth/{out}").mkdir(parents=True, exist_ok=True)
    depth = np.load(depth_file)
    depth[depth > 80.0] = 0.0  # sky/extreme range → 0 = invalid
    frame = depth_file.name.replace("_depth.npy", "")  # e.g. 000000_left
    name = f"{env}_{level}_{traj}_{frame}"  # Easy and Hard reuse trajectory names such as P000
    save_depth_png(dst / f"depth/{out}/{name}.png", depth, scale=256)
    shutil.copy(depth_file.parents[1] / "image_left" / f"{frame}.png", dst / f"images/{out}/{name}.png")

Vai trò trong YOLO26-Depth#

TartanAir là một trong các nguồn huấn luyện trong tập dữ liệu trộn đa dataset rộng (~2.19M ảnh) dùng để pretrain các model YOLO26-Depth của Ultralytics. Trong tập dữ liệu trộn này, TartanAir đóng góp sự đa dạng môi trường tổng hợp và hình học ngoài trời tầm xa, bổ sung cho các nguồn trong nhà và thế giới thực.

Thiết lập này không có benchmark TartanAir riêng với dữ liệu giữ lại để đánh giá. Thay vào đó, các model thu được được đánh giá trên những benchmark depth đơn ảnh tiêu chuẩn: NYU Depth V2, 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 chứa thông tin về đường dẫn, class và các thông tin liên quan khác của dataset. Đối với TartanAir, tệp depth-tartanair.yaml xác định đường dẫn và class depth duy nhất.

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

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

path: depth-tartanair # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 55660 images
val: images/val # val images (relative to 'path') 5810 images
max_depth: 80 # (m) maximum valid depth; GT beyond this is excluded from val metrics

nc: 1
names:
  0: depth

channels: 3
depth_scale: 256 # PNG value 256 = 1 meter; represents the 80 m outdoor range

Cách sử dụng#

Để huấn luyện model YOLO26n-Depth trên dataset TartanAir với kích thước ảnh 640, bạn có thể sử 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 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-tartanair.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 tập dữ liệu trộn đa dataset rộng có TartanAir. Khám phá YOLO26x-depth trên Ultralytics Platform.

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

Nếu sử dụng dataset TartanAir 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{wang2020tartanair,
      title={TartanAir: A Dataset to Push the Limits of Visual SLAM},
      author={Wenshan Wang and Delong Zhu and Xiangwei Wang and Yaoyu Hu and Yuheng Qiu and Chen Wang and Yafei Hu and Ashish Kapoor and Sebastian Scherer},
      booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
      year={2020}
}

Chúng tôi xin ghi nhận công lao của những người tạo ra TartanAir vì đã cung cấp dataset tổng hợp đa dạng này cho cộng đồng thị giác máy tính.

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

  • TartanAir là dataset tổng hợp quy mô lớn được kết xuất bằng trình mô phỏng AirSim, ban đầu được xây dựng để kiểm thử khắc nghiệt SLAM thị giác. Dataset bao quát các môi trường trong nhà, ngoài trời, đô thị và thiên nhiên trong nhiều điều kiện mùa, thời tiết và ánh sáng khác nhau, đồng thời đóng góp 61.470 ảnh (55.660 train, 5.810 val) có depth dày đặc đến khoảng 80 m vào tập dữ liệu trộn huấn luyện YOLO26-Depth.

  • TartanAir không hỗ trợ tải xuống tự động. Tải dữ liệu RGB và depth bằng các script tartanair_tools, sau đó chuyển depth float32 .npy tính bằng mét sang PNG uint16 bằng depth_scale: 256, giới hạn các pixel vùng trời vượt quá 80 m ở mức 0. Dành riêng một hoặc nhiều môi trường để validation như minh họa trong phần Lấy dữ liệu.

  • Chạy yolo depth train data=depth-tartanair.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