مجموعة بيانات العمق TartanAir#
TartanAir هو مجموعة بيانات اصطناعية واسعة النطاق تم إنشاؤها في محاكي AirSim. لقد تم إنشاؤه لدفع حدود الخرائط والتوطين المتزامن المرئي (visual SLAM) ويغطي مجموعة واسعة من البيئات - مشاهد داخلية، وخارجية، وحضرية، وطبيعية - إلى جانب التغيرات الموسمية، والطقس، والإضاءة، والظروف الصعبة.
نظرًا لأنه يتم تقديم TartanAir في المحاكاة، فهو يوفر عمقًا حقيقيًا كثيفًا عبر هذه المجموعة المتنوعة من المشاهد، مما يجعله مصدرًا قويًا للتنوع البيئي والهندسة بعيدة المدى لتدريب نماذج تقدير العمق الأحادية.
الميزات الرئيسية#
- بيانات اصطناعية تم إنشاؤها في محاكي AirSim.
- بيئات داخلية وخارجية متنوعة (حضرية، طبيعية) مع تباين في الفصول والطقس والإضاءة، بالإضافة إلى ظروف صعبة.
- حقيقة أرضية كثيفة للعمق عبر جميع المشاهد.
- نطاق عمق يصل إلى ~80 م.
- تساهم بـ 61,470 صورة (55,660 للتدريب / 5,810 للتحقق) في مجموعة بيانات تدريب العمق الخاصة بـ Ultralytics.
هيكل مجموعة البيانات#
تنقسم مجموعة بيانات عمق TartanAir إلى مجموعتين فرعيتين:
- Train (التدريب): 55,660 صورة مع خرائط عمق كثيفة مقترنة للتدريب.
- Val (التحقق): 5,810 صورة مع خرائط عمق كثيفة مقترنة للتحقق أثناء التدريب.
يتم إقران كل صورة RGB بخريطة عمق float32 .npy تخزن مسافات لكل بكسل بالأمتار، وفقًا لـ تنسيق مجموعة بيانات عمق Ultralytics.
الحصول على البيانات#
لا يحتوي TartanAir على تنزيل تلقائي - يتم توفير البيانات بواسطة مختبر AirLab التابع لـ CMU (راجع صفحة مجموعة البيانات لمعرفة الشروط) وتنزيلها باستخدام نصوص برمجة 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يتم تخزين العمق مسبقًا كـ float32 .npy بالأمتار (depth_left/*_left_depth.npy بجوار image_left/*_left.png)، لذا فإن التحويل هو ببساطة إعادة ترتيب وإلغاء صلاحية السماء (التي تتم جدولتها كمسافات قصوى؛ والمزيج المُصْدَر يقتصر على 80 مترًا ليتطابق مع ملف YAML الخاص بمجموعة البيانات). لا يوفر TartanAir تقسيمًا رسميًا للتحقق (val) - قم بعزل بيئة واحدة أو أكثر. مرجع التحويل إلى تنسيق مجموعة بيانات عمق Ultralytics:
import shutil
from pathlib import Path
import numpy as np
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}"
np.save(dst / f"depth/{out}/{name}.npy", depth)
shutil.copy(depth_file.parents[1] / "image_left" / f"{frame}.png", dst / f"images/{out}/{name}.png")الدور في YOLO26-Depth#
تعد TartanAir واحدة من مصادر التدريب في الخليط الواسع متعدد مجموعات البيانات (~2.19 مليون صورة) المستخدم لتدريب نماذج YOLO26-Depth من Ultralytics مسبقًا. ضمن هذا الخليط، تساهم TartanAir بتنوع بيئي اصطناعي وهندسة خارجية بعيدة المدى تكمل المصادر الداخلية والواقعية.
لا يوجد معيار قياس مستقل ومحجوز لـ TartanAir في هذا الإعداد. بدلاً من ذلك، يتم تقييم النماذج الناتجة على معايير قياس العمق أحادية العين القياسية: NYU Depth V2 و KITTI و Make3D و ETH3D و iBims-1.
YAML مجموعة البيانات#
يتم استخدام ملف YAML (Yet Another Markup Language) لتحديد تكوين مجموعة البيانات. فهو يحتوي على معلومات حول مسارات مجموعة البيانات، والفئات، وغيرها من المعلومات ذات الصلة. بالنسبة لـ TartanAir، يحدد ملف depth-tartanair.yaml المسارات وفئة depth الواحدة.
# 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 *.npy, float32 meters (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الاستخدام#
לتدريب نموذج YOLO26n-Depth على مجموعة بيانات TartanAir بحجم صورة يبلغ 640، يمكنك استخدام مقاطع التعليمات البرمجية التالية. للحصول على قائمة شاملة وسلسلة من الوسائط المتاحة، راجع صفحة التدريب للنموذج.
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)النماذج المدربة مسبقاً#
تقوم عائلة عمق YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) بالتنزيل التلقائي من إصدارات Ultralytics ويتم تدريبها على مزيج مجموعات البيانات الواسع المتعدد الذي يعد TartanAir جزءًا منه. استكشف YOLO26x-depth على منصة Ultralytics.
الاقتباسات والشكر#
إذا كنت تستخدم مجموعة بيانات TartanAir في عملك البحثي أو التطويري، يرجى الاستشهاد بالورقة البحثية التالية:
@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}
}نود أن نعرب عن تقديرنا لمبدعي TartanAir لإتاحة مجموعة البيانات الاصطناعية المتنوعة هذه لمجتمع الرؤية الحاسوبية.