Bộ dữ liệu độ sâu TartanAir#
TartanAir là một bộ dữ liệu tổng hợp quy mô lớn được tạo bằng trình mô phỏng AirSim. Bộ dữ liệu này được tạo ra để đẩy giới hạn của SLAM trực quan và bao quát nhiều loại môi trường — cảnh trong nhà, ngoài trời, đô thị và tự nhiên — cùng với sự thay đổi theo mùa, thời tiết và ánh sáng, cũng như các điều kiện đầy thách thức.
Vì TartanAir được kết xuất bằng mô phỏng, bộ dữ liệu này cung cấp ground truth độ sâu dày đặc trên tập hợp cảnh đa dạng, trở thành nguồn dữ liệu phong phú về đa dạng môi trường và hình học tầm xa để huấn luyện các model ước lượng độ sâu đơ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.
- Các môi trường trong nhà và ngoài trời đa dạng (đô thị, tự nhiên) với sự thay đổi theo mùa, thời tiết và ánh sáng, cùng các điều kiện đầy thách thức.
- Ground truth độ sâu dày đặc trên tất cả các cảnh.
- Phạm vi độ sâu lên đến ~80 m.
- Đóng góp 61,470 ảnh (55,660 train / 5,810 val) vào tập trộn huấn luyện độ sâu của Ultralytics.
Cấu trúc bộ dữ liệu#
Bộ dữ liệu độ sâu TartanAir được chia thành hai tập con:
- Train: 55,660 ảnh kèm các depth map dày đặc tương ứng để huấn luyện.
- Val: 5,810 ảnh kèm 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 depth PNG uint16 đã scale với 256 đơn vị trên mỗi mét (depth_scale: 256), tuân theo định dạng bộ dữ liệu độ sâu của Ultralytics. Định dạng này biểu diễn đầy đủ phạm vi 80 m ở độ phân giải 3.90625 mm.
Nhận dữ liệu#
TartanAir không có tính năng autodownload — dữ liệu được phân phối bởi AirLab thuộc CMU (xem trang bộ dữ liệu để biết các đ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Độ sâu đã được lưu dưới dạng float32 .npy theo đơn vị mét (depth_left/*_left_depth.npy nằm cạnh image_left/*_left.png), vì vậy việc chuyển đổi chỉ là sắp xếp lại và đánh dấu vùng bầu trời là không hợp lệ (được kết xuất dưới dạng các khoảng cách cực lớn; tập trộn phát hành cắt ngưỡng ở 80 m để khớp với dataset YAML). TartanAir không cung cấp tập val chính thức — hãy giữ lại một hoặc nhiều môi trường để validation. Tham khảo cách chuyển đổi sang định dạng bộ dữ liệu độ sâu 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, traj = depth_file.parts[-5], depth_file.parts[-3]
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}_{traj}_{frame}"
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 trộn đa bộ dữ liệu quy mô lớn (~2.19M ảnh) được sử dụng để pretrain các model Ultralytics YOLO26-Depth. Trong tập trộn này, TartanAir bổ sung sự đa dạng môi trường tổng hợp và hình học ngoài trời tầm xa, giúp bổ trợ cho các nguồn dữ liệu trong nhà và thực tế.
Thiết lập này không có benchmark TartanAir độc lập với tập dữ liệu được giữ lại để đánh giá. Thay vào đó, các model thu được được đánh giá trên các benchmark độ sâu đơn ảnh tiêu chuẩn: NYU Depth V2, KITTI, Make3D, ETH3D và iBims-1.
YAML của bộ dữ liệu#
Tệp YAML đượ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, các lớp và các thông tin liên quan khác của tập dữ liệu. Đối với TartanAir, tệp depth-tartanair.yaml định nghĩa các đường dẫn và lớp depth duy nhất.
# 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 rangeCách sử dụng#
Để huấn luyện model YOLO26n-Depth trên bộ dữ liệu 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 argument 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-tartanair.yaml", epochs=100, imgsz=640)Các model đã tiền huấn luyện#
Họ model độ sâu YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) được 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 trộn đa bộ dữ liệu quy mô lớn mà TartanAir là một phần. Khám phá YOLO26x-depth trên Ultralytics Platform.
Trích dẫn và ghi nhận đóng góp#
Nếu bạn sử dụng bộ dữ liệu 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:
@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 những người tạo ra TartanAir vì đã cung cấp bộ dữ liệu tổng hợp đa dạng này cho cộng đồng thị giác máy tính.
FAQ#
TartanAir là một tập dữ liệu tổng hợp lớn được kết xuất trong trình giả lập AirSim, ban đầu được xây dựng để kiểm tra SLAM thị giác. Nó bao gồm các môi trường trong nhà, ngoài trời, đô thị và tự nhiên trong các đ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 hình ảnh (55.660 hình ảnh huấn luyện, 5.810 hình ảnh xác thực) với độ sâu dày đặc lên tới khoảng 80 m vào quá trình huấn luyện YOLO26-Depth.
TartanAir không có tính năng tải xuống tự động. Hãy lấy dữ liệu RGB và độ sâu bằng các tập lệnh tartanair_tools, sau đó chuyển đổi độ sâu
.npykiểu float32 tính bằng mét thành các tệp PNG uint16 bằngdepth_scale: 256, cắt các pixel bầu trời vượt quá 80 m thành0. Giữ lại một hoặc nhiều môi trường để xác thực, như được hiển thị trong Obtain the Data.Chạy
yolo depth train data=depth-tartanair.yaml model=yolo26n-depth.pt epochs=100 imgsz=640, hoặc sử dụng ví dụ Python trong phần Sử Dụng. Trang Huấn Luyện liệt kê mọi đối số có sẵn.