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 التنزيل التلقائي — إذ توزّع CMU's AirLab البيانات (راجع صفحة مجموعة البيانات للاطلاع على الشروط)، ويُنزَّلُها باستخدام نصوص 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, 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")

دور ARKitScenes في 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

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

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

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

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

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

المساهمون

التعليقات