Link to this sectionمجموعة بيانات العمق TartanAir#
TartanAir هي مجموعة بيانات اصطناعية واسعة النطاق تم إنشاؤها في محاكي AirSim. تم إنشاؤها لدفع حدود نظام SLAM البصري وتغطي مجموعة واسعة من البيئات - مشاهد داخلية وخارجية، حضرية، وطبيعية - إلى جانب تباين الفصول والطقس والإضاءة، وظروف صعبة.
نظرًا لأن TartanAir يتم تقديمها في محاكاة، فهي توفر حقيقة أرضية (ground truth) كثيفة للعمق عبر هذه المجموعة المتنوعة من المشاهد، مما يجعلها مصدرًا قويًا للتنوع البيئي والهندسة بعيدة المدى لتدريب نماذج تقدير العمق أحادية العين.
Link to this sectionالميزات الرئيسية#
- بيانات اصطناعية تم إنشاؤها في محاكي AirSim.
- بيئات داخلية وخارجية متنوعة (حضرية، طبيعية) مع تباين في الفصول والطقس والإضاءة، بالإضافة إلى ظروف صعبة.
- حقيقة أرضية كثيفة للعمق عبر جميع المشاهد.
- نطاق عمق يصل إلى ~80 م.
- تساهم بـ 61,470 صورة (55,660 للتدريب / 5,810 للتحقق) في مجموعة بيانات تدريب العمق الخاصة بـ Ultralytics.
Link to this sectionهيكل مجموعة البيانات#
تنقسم مجموعة بيانات عمق TartanAir إلى مجموعتين فرعيتين:
- Train (التدريب): 55,660 صورة مع خرائط عمق كثيفة مقترنة للتدريب.
- Val (التحقق): 5,810 صورة مع خرائط عمق كثيفة مقترنة للتحقق أثناء التدريب.
كل صورة RGB مقترنة بخريطة عمق .npy بصيغة float32 تخزن المسافات لكل بكسل بالأمتار، وذلك باتباع تنسيق مجموعة بيانات العمق Ultralytics.
Link to this sectionالحصول على البيانات#
لا تحتوي 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 مجموعة تحقق رسمية - قم بحجز بيئة واحدة أو أكثر. راجع التحويل إلى تنسيق مجموعة بيانات العمق لـ 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")Link to this sectionالدور في YOLO26-Depth#
تعد TartanAir واحدة من مصادر التدريب في الخليط الواسع متعدد مجموعات البيانات (~2.19 مليون صورة) المستخدم لتدريب نماذج YOLO26-Depth من Ultralytics مسبقًا. ضمن هذا الخليط، تساهم TartanAir بتنوع بيئي اصطناعي وهندسة خارجية بعيدة المدى تكمل المصادر الداخلية والواقعية.
لا يوجد معيار قياس مستقل ومحجوز لـ TartanAir في هذا الإعداد. بدلاً من ذلك، يتم تقييم النماذج الناتجة على معايير قياس العمق أحادية العين القياسية: NYU Depth V2 و KITTI و Make3D و ETH3D و iBims-1.
Link to this sectionYAML مجموعة البيانات#
يتم استخدام ملف YAML (لغة توصيف أخرى) لتحديد تكوين مجموعة البيانات. يحتوي على معلومات حول مسارات مجموعة البيانات، والفئات، وغيرها من المعلومات ذات الصلة. بالنسبة لـ 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: 3Link to this sectionالاستخدام#
لتدريب نموذج 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)Link to this sectionالنماذج المدربة مسبقاً#
عائلة العمق YOLO26 (yolo26n-depth.pt, yolo26s-depth.pt, yolo26m-depth.pt, yolo26l-depth.pt, yolo26x-depth.pt) يتم تنزيلها تلقائيًا من إصدار v8.4.0 وهي مدربة على الخليط الواسع متعدد مجموعات البيانات الذي تعد TartanAir جزءًا منه.
Link to this sectionالاقتباسات والشكر#
إذا كنت تستخدم مجموعة بيانات 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 لإتاحة مجموعة البيانات الاصطناعية المتنوعة هذه لمجتمع الرؤية الحاسوبية.