Ultralytics YOLO27:

مجموعة بيانات العمق TartanAir#

TartanAir مجموعة بيانات اصطناعية واسعة النطاق أُنشئت في محاكي AirSim. صُممت لدفع حدود SLAM البصري، وتشمل بيئات متنوعة مثل المشاهد الداخلية والخارجية والحضرية والطبيعية، إلى جانب اختلاف الفصول والطقس والإضاءة والظروف الصعبة.

بما أن TartanAir مُصيّرة بالمحاكاة، فإنها توفر حقيقة أرضية كثيفة للعمق عبر هذه المجموعة المتنوعة من المشاهد، ما يجعلها مصدرًا قويًا للتنوع البيئي والهندسة بعيدة المدى لتدريب نماذج تقدير العمق أحادي العين.

الميزات الرئيسية#

  • بيانات اصطناعية أُنشئت في محاكي AirSim.
  • بيئات داخلية وخارجية متنوعة (حضرية وطبيعية)، مع اختلاف الفصول والطقس والإضاءة، فضلًا عن الظروف الصعبة.
  • حقيقة أرضية كثيفة للعمق في جميع المشاهد.
  • مدى عمق يصل إلى ~80 m.
  • تضيف 61,470 صورة (55,660 للتدريب / 5,810 للتحقق) إلى مزيج تدريب العمق من Ultralytics.

بنية مجموعة البيانات#

تنقسم مجموعة بيانات العمق TartanAir إلى مجموعتين فرعيتين:

  1. التدريب: 55,660 صورة مع خرائط عمق كثيفة مقترنة للتدريب.
  2. التحقق: 5,810 صور مع خرائط عمق كثيفة مقترنة للتحقق أثناء التدريب.

تُقرن كل صورة RGB بملف PNG للعمق uint16 مُقاس بمعدل 256 وحدة لكل متر (depth_scale: 256)، وفقًا لـتنسيق مجموعة بيانات العمق من Ultralytics. ويمثل ذلك النطاق الكامل البالغ 80 m بدقة 3.90625 mm.

الحصول على البيانات#

لا تتضمن 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 m لمطابقة ملف YAML لمجموعة البيانات). لا تتضمن TartanAir تقسيمًا رسميًا للتحقق — فاحجز بيئة واحدة أو أكثر. مرجع التحويل إلى تنسيق مجموعة بيانات العمق من 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")

دورها في YOLO26-Depth#

تُعد TartanAir أحد مصادر التدريب ضمن المزيج الواسع متعدد مجموعات البيانات (~2.19M صورة) المستخدم للتدريب المسبق لنماذج Ultralytics YOLO26-Depth. وفي هذا المزيج، تضيف TartanAir تنوعًا بيئيًا اصطناعيًا وهندسة خارجية بعيدة المدى تكمل المصادر الداخلية والواقعية.

لا يوجد في هذا الإعداد معيار مستقل لـ TartanAir مع مجموعة اختبار محجوبة. وبدلًا من ذلك، تُقيّم النماذج الناتجة على معايير العمق أحادي العين القياسية: NYU Depth V2 وKITTI وMake3D وETH3D وiBims-1.

ملف YAML لمجموعة البيانات#

يُستخدم ملف YAML لتعريف إعدادات مجموعة البيانات. ويحتوي على معلومات حول مسارات مجموعة البيانات وفئاتها وغيرها من المعلومات ذات الصلة. وبالنسبة إلى TartanAir، يحدد ملف depth-tartanair.yaml المسارات وفئة depth الوحيدة.

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

الاستخدام#

لتدريب نموذج YOLO26n-Depth على مجموعة بيانات TartanAir بحجم صورة 640، يمكنك استخدام مقتطفات التعليمات البرمجية التالية. للاطلاع على قائمة شاملة بالوسائط المتاحة، راجع صفحة التدريب الخاصة بالنموذج.

مثال على التدريب
from ultralytics import YOLO

# ⁨تحميل نموذج⁩
model = YOLO("yolo26n-depth.pt")  # ⁨تحميل نموذج مدرّب مسبقًا (موصى به للتدريب)⁩

# ⁨تدريب النموذج⁩
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 لإتاحة مجموعة البيانات الاصطناعية المتنوعة هذه لمجتمع الرؤية الحاسوبية.

الأسئلة الشائعة#

  • TartanAir مجموعة بيانات اصطناعية واسعة صُيّرت في محاكي AirSim، وأنشئت أساسًا لاختبار SLAM البصري تحت ضغط. وتشمل بيئات داخلية وخارجية وحضرية وطبيعية في ظل تنوع الفصول والطقس والإضاءة، وتضيف إلى مزيج تدريب YOLO26-Depth عدد 61,470 صورة (55,660 للتدريب و5,810 للتحقق) بعمق كثيف يصل إلى نحو 80 m.

  • لا يتوفر تنزيل تلقائي لـ TartanAir. اجلب بيانات RGB والعمق باستخدام نصوص tartanair_tools، ثم حوّل بيانات العمق float32 .npy بالمتر إلى ملفات PNG من نوع uint16 باستخدام depth_scale: 256، مع اقتطاع بكسلات السماء التي تتجاوز 80 m إلى 0. احجز بيئة واحدة أو أكثر للتحقق، كما هو موضح في الحصول على البيانات.

  • شغّل yolo depth train data=depth-tartanair.yaml model=yolo26n-depth.pt epochs=100 imgsz=640، أو استخدم مثال Python في قسم الاستخدام. تسرد صفحة التدريب جميع الوسيطات المتاحة.

المساهمون

التعليقات