Link to this sectionمجموعة بيانات العمق ARKitScenes#
ARKitScenes هي مجموعة بيانات RGB-D داخلية واسعة النطاق من العالم الحقيقي، تم التقاطها باستخدام تقنية ARKit من Apple على أجهزة iPad Pro المجهزة بماسح ضوئي LiDAR. إنها أكبر مجموعة بيانات RGB-D داخلية واقعية من نوعها، وتوفر مشاهد داخلية متنوعة تم التقاطها بشكل طبيعي مع بيانات عمق أساسية دقيقة لتقدير العمق أحادي العين.
Link to this sectionالميزات الرئيسية#
- تم التقاطها باستخدام الماسح الضوئي LiDAR وكاميرا RGB الخاصة بـ ARKit من Apple على جهاز iPad Pro، مما ينتج بيانات مستشعر حقيقية (غير اصطناعية).
- تغطي مشاهد داخلية متنوعة لفهم المشاهد الداخلية ثلاثية الأبعاد.
- نطاق عمق قصير، حوالي 0.5–6 م (يبلغ متوسط أقصى عمق حوالي 2.4 م)، وهو أمر معتاد للالتقاط الداخلي المحمول باليد.
- بيانات عمق أساسية دقيقة مشتقة من LiDAR ومحاذية لإطارات RGB.
- المصدر الواقعي الفردي الأكبر في مجموعة التدريب المسبق للعمق في Ultralytics.
Link to this sectionهيكل مجموعة البيانات#
تم تقسيم مجموعة بيانات العمق ARKitScenes إلى مجموعتين فرعيتين:
- Train: 676,080 صورة مع خرائط عمق مقترنة للتدريب.
- Val: 21,559 صورة مع خرائط عمق مقترنة للتحقق من الصحة أثناء تدريب النموذج.
تتكون كل عينة من صورة RGB واحدة وخريطة عمق مقترنة بصيغة .npy وfloat32 تخزن المسافات لكل بكسل بالأمتار، وفقاً لـ تنسيق مجموعة بيانات العمق في Ultralytics.
Link to this sectionالحصول على البيانات#
لا تحتوي ARKitScenes على تنزيل تلقائي - يتم توزيع البيانات بواسطة Apple، ويتطلب التنزيل الموافقة على شروط الترخيص في مستودع ARKitScenes. قم باستنساخ المستودع وتنزيل المجموعة الفرعية للارتقاء بالعمق (depth-upsampling)، التي تقرن إطارات RGB بالعمق المسجل:
git clone https://github.com/apple/ARKitScenes && cd ARKitScenes
python3 download_data.py upsampling --split Training --download_dir ./data
python3 download_data.py upsampling --split Validation --download_dir ./dataإطارات العمق هي ملفات PNG بصيغة uint16 بالـ مليمتر (0 = غير صالح)، وأسماء ملفات RGB/العمق هي طوابع زمنية للالتقاط لا تتطابق تماماً - قم بإقران كل إطار عمق بإطار RGB ذي الطابع الزمني الأقرب. راجع التحويل إلى تنسيق مجموعة بيانات العمق في Ultralytics:
from pathlib import Path
import cv2
import numpy as np
src, dst = Path("data/upsampling"), Path("datasets/depth-arkitscenes")
for split, out in (("Training", "train"), ("Validation", "val")):
(dst / f"images/{out}").mkdir(parents=True, exist_ok=True)
(dst / f"depth/{out}").mkdir(parents=True, exist_ok=True)
for video in sorted((src / split).iterdir()):
rgbs = {float(p.stem.split("_")[-1]): p for p in (video / "lowres_wide").glob("*.png")}
if not rgbs:
continue
for depth_png in sorted((video / "lowres_depth").glob("*.png")):
t = float(depth_png.stem.split("_")[-1])
rgb = rgbs[min(rgbs, key=lambda k: abs(k - t))] # nearest-timestamp RGB frame
name = f"{video.name}_{depth_png.stem}"
depth = cv2.imread(str(depth_png), cv2.IMREAD_UNCHANGED).astype(np.float32) / 1000.0 # mm → m
np.save(dst / f"depth/{out}/{name}.npy", depth)
cv2.imwrite(str(dst / f"images/{out}/{name}.png"), cv2.imread(str(rgb)))Link to this sectionالدور في YOLO26-Depth#
تعد ARKitScenes مصدراً للتدريب في مجموعة التدريب المسبق المتعددة للعمق الخاصة بـ Ultralytics YOLO26-Depth والتي تضم حوالي 2.19 مليون زوج من الصور والعمق. وباعتبارها أكبر مصدر واقعي فردي في هذه المجموعة، فهي توفر عمق LiDAR داخلياً واقعياً وفيراً يثبّت دقة النموذج في النطاقات الداخلية القصيرة. يتم تقييم النماذج الناتجة وفقاً لمعايير NYU وKITTI وMake3D وETH3D وiBims-1 القياسية.
Link to this sectionYAML مجموعة البيانات#
يتم استخدام ملف YAML (Yet Another Markup Language) لتحديد تكوين مجموعة البيانات. وهو يحتوي على معلومات حول مسارات مجموعة البيانات، والفئات، ومعلومات أخرى ذات صلة.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# ARKitScenes dataset for monocular depth estimation — real indoor RGB-D from Apple ARKit (iPad Pro LiDAR), depth ~0.5-6 m
# Documentation: https://docs.ultralytics.com/datasets/depth/arkitscenes
# Example usage: yolo depth train data=depth-arkitscenes.yaml model=yolo26n-depth.pt
# No autodownload — obtain the source data (see docs) and arrange it as below.
# parent
# ├── ultralytics
# └── datasets
# └── depth-arkitscenes
# ├── images/{train,val} # RGB images
# └── depth/{train,val} # paired *.npy, float32 meters (images/ -> depth/)
path: depth-arkitscenes # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 676080 images
val: images/val # val images (relative to 'path') 21559 images
nc: 1
names:
0: depth
channels: 3Link to this sectionالاستخدام#
لتدريب نموذج YOLO26n-depth على مجموعة بيانات ARKitScenes بحجم صورة 640، يمكنك استخدام مقتطفات التعليمات البرمجية التالية. للحصول على قائمة شاملة بالوسيطات المتاحة، ارجع إلى صفحة التدريب للنموذج.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-depth.pt") # load a pretrained depth model (recommended for training)
# Train the model
results = model.train(data="depth-arkitscenes.yaml", epochs=100, imgsz=640)Link to this sectionالنماذج المدربة مسبقاً#
تم تدريب عائلة عمق YOLO26 على مجموعة واسعة من بيانات التدريب المسبق للعمق التي تُعد ARKitScenes جزءاً منها. يتم تنزيل هذه النماذج تلقائياً من أحدث إصدار لـ Ultralytics، على سبيل المثال YOLO26x-depth من الإصدار v8.4.0، وتغطي مجموعة من الأحجام لتلبية متطلبات الدقة والموارد المختلفة.
Link to this sectionالاقتباسات والشكر#
إذا كنت تستخدم مجموعة بيانات ARKitScenes في أبحاثك أو عملك التطويري، يرجى الاستشهاد بالورقة البحثية التالية:
@inproceedings{baruch2021arkitscenes,
title={ARKitScenes: A Diverse Real-World Dataset for 3D Indoor Scene Understanding Using Mobile RGB-D Data},
author={Baruch, Gilad and Chen, Zhuoyuan and Dehghan, Afshin and Dimry, Tal and Feigin, Yuri and Fu, Peter and Gebauer, Thomas and Joffe, Brandon and Kurz, Daniel and Schwartz, Arik and Shulman, Elad},
booktitle={Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year={2021}
}نود أن نشكر المؤلفين على إنشاء والحفاظ على هذا المورد القيم لمجتمع الرؤية الحاسوبية.