Link to this sectionنظرة عامة على مجموعات بيانات تقدير العمق#
Monocular depth estimation assigns a floating-point depth value in meters to every pixel in an image. The training target is a dense per-pixel depth map stored as a .npy float32 array. Each value represents the distance from the camera to the corresponding scene point.
يشرح هذا الدليل تنسيق مجموعة البيانات المستخدم بواسطة نماذج Ultralytics YOLO لتقدير العمق، ويسرد تكوينات مجموعات البيانات المدمجة المتاحة للتدريب والتحقق من الصحة.
Link to this sectionتنسيق مجموعة البيانات المدعوم#
Link to this sectionتنسيق خريطة العمق NPY#
Each training sample consists of one RGB image and one paired .npy depth file. The depth file stores a 2D float32 NumPy array with shape (H, W) where values are depths in meters.
- Depth files must use the
.npyextension and contain a float32 array. - يجب أن يكون لكل ملف عمق نفس اسم الملف المقابل له من الصور (على سبيل المثال،
scene_001.npyيقترن بـscene_001.jpg). - يعثر محمل مجموعة البيانات على ملفات العمق عن طريق استبدال مكون الدليل
imagesبـdepthفي مسار الملف واستبدال امتداد الصورة بـ.npy. - يتم التعامل مع البكسلات ذات العمق
≤ 0على أنها غير صالحة ويتم استبعادها من حساب الخسارة والمقاييس.
يحافظ التخطيط القياسي على الصور وخرائط العمق في مجلدات متوازية:
dataset/
├── images/
│ ├── train/
│ └── val/
└── depth/
├── train/
└── val/على سبيل المثال، يتم إقران صورة في images/train/scene_001.jpg بخريطة عمق في depth/train/scene_001.npy.
Link to this sectionتنسيق YAML لمجموعة البيانات#
يتم تكوين مجموعات بيانات تقدير العمق باستخدام ملفات YAML. الحقول الرئيسية هي:
| المفتاح | الوصف |
|---|---|
path | الدليل الجذري لمجموعة البيانات. |
train | مسار صور التدريب بالنسبة إلى path، أو مسار مطلق. |
val | مسار صور التحقق بالنسبة إلى path، أو مسار مطلق. |
test | مسار اختياري لصور الاختبار. |
nc | عدد الفئات — دائماً 1 لتقدير العمق. |
names | تعيين اسم الفئة — دائماً {0: depth}. |
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# NYU Depth V2 dataset for monocular depth estimation
# Documentation: https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html
# 795 train + 654 val (Eigen test split) images, 480x640, indoor scenes, depth in meters
# Example usage: yolo depth train data=nyu-depth.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
# └── nyu-depth ← downloads here (≈1.5 GB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: nyu-depth # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 795 images
val: images/val # val images (relative to 'path') 654 images
# Depth maps are paired .npy files (float32, meters) under depth/<split>/, resolved by
# swapping '/images/' -> '/depth/' on each image path.
# Classes
nc: 1
names:
0: depth
channels: 3
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/nyu-depth.zipLink to this sectionالاستخدام#
قم بتدريب نموذج تقدير العمق YOLO26 باستخدام Python أو CLI:
from ultralytics import YOLO
# Load a pretrained depth model
model = YOLO("yolo26n-depth.pt")
# Train on the NYU Depth V2 dataset
results = model.train(data="nyu-depth.yaml", epochs=100, imgsz=640)Link to this sectionمجموعات البيانات المدعومة#
تم تدريب نماذج العمق YOLO26 مسبقاً على مزيج واسع من مجموعات البيانات (حوالي 2.19 مليون صورة) يمتد من النطاقات الداخلية (≤10 م) إلى الخارجية (حوالي 80 م)، ثم تم تقييمها بدون تدريب مسبق عبر خمسة معايير قياسية. كل مجموعة بيانات لها صفحة مخصصة:
تصحيح الأخطاء
- Depth8 — 8 صور SUN RGB-D في أرشيف بحجم 1.3 ميجابايت يتم تنزيله تلقائياً، لاختبار خط الإنتاج بسرعة
مصادر التدريب المسبق
- ARKitScenes — داخلية حقيقية، Apple ARKit LiDAR (أكبر مصدر حقيقي)
- SUN RGB-D — داخلية حقيقية، مستشعر RGB-D متعدد
- DIODE — داخلية + خارجية حقيقية، حقيقة أرضية لماسح ليزر كثيف
- Hypersim — داخلية اصطناعية واقعية
- TartanAir — اصطناعية، بيئات متنوعة
- Virtual KITTI 2 — قيادة خارجية اصطناعية
- KITTI — قيادة خارجية حقيقية، Velodyne LiDAR (أيضاً معيار تقييم)
- ImageNet (pseudo-labeled) — مجموعة تقطير مصنفة زائفاً، أكبر مصدر مفرد
معايير التقييم
- NYU Depth V2 — المعيار الداخلي الأساسي
- KITTI Eigen — معيار القيادة الخارجية
- ETH3D — دقة عالية داخلية + خارجية
- Make3D — خارجية، خارج النطاق الموزع
- iBims-1 — داخلية عالية الجودة (حواف وأسطح مستوية)
دقة كل نموذج على هذه المعايير والأوزان المدربة مسبقاً القابلة للتنزيل مدرجة في صفحة مهمة تقدير العمق. يقوم ملف YAML الخاص بمجموعة البيانات الذي يسرد حقل train الخاص به أدلة صور متعددة بدمج هذه المصادر للتدريب المختلط واسع النطاق.
Link to this sectionإضافة مجموعة البيانات الخاصة بك#
- احفظ صور RGB تحت مجلدات التقسيم مثل
images/trainوimages/val. - Save one
.npyfloat32 depth array per image under the matchingdepth/trainanddepth/valfolders using the same file stem as the image. - تأكد من أن قيم العمق بالأمتار وأن البكسلات غير الصالحة أو المفقودة تستخدم
0أو قيماً سالبة. - أنشئ ملف YAML لمجموعة البيانات يحتوي على
pathوtrainوvalوnc: 1وnames: {0: depth}.
path: path/to/my-depth-dataset
train: images/train
val: images/val
nc: 1
names:
0: depthLink to this sectionالأسئلة الشائعة#
Link to this sectionما هو تنسيق الملف الذي يجب أن تستخدمه خرائط العمق؟#
Depth maps must be saved as NumPy .npy files containing float32 arrays of shape (H, W). Each element stores the depth in meters for the corresponding image pixel. Do not use PNG or 16-bit integer formats — the loader expects raw float arrays.
Link to this sectionكيف يتم التعامل مع بكسلات العمق غير الصالحة؟#
يتم التعامل مع البكسلات ذات قيم العمق ≤ 0 على أنها غير صالحة ويتم استبعادها من حساب الخسارة وتقييم المقاييس. يغطي هذا ضوضاء المستشعر، ومناطق السماء، والأسطح العاكسة حيث لا يمكن قياس العمق بشكل موثوق.
Link to this sectionما هي المقاييس المستخدمة للتقييم؟#
تقارير التحقق من صحة تقدير العمق تستخدم مجموعة مقاييس Depth Anything القياسية:
- delta1 / delta2 / delta3 — النسبة المئوية للبكسلات ضمن عتبات 1.25×، 1.25²×، 1.25³×. كلما ارتفعت القيمة كان ذلك أفضل.
- abs_rel — متوسط الخطأ النسبي المطلق. كلما انخفضت القيمة كان ذلك أفضل.
- rmse — جذر متوسط مربع الخطأ بالأمتار. كلما انخفضت القيمة كان ذلك أفضل.
- silog — الخطأ اللوغاريتمي الثابت المقياس. كلما انخفضت القيمة كان ذلك أفضل.
Link to this sectionهل يجب أن تتطابق أسماء ملفات العمق مع أسماء ملفات الصور؟#
نعم. يجب أن يشترك كل ملف عمق .npy في نفس الاسم مع الصورة المقابلة. يشتق المحمل مسار العمق عن طريق استبدال مكون الدليل images بـ depth واستبدال امتداد الصورة بـ .npy. يتم إسقاط الصور التي يكون ملف عمقها مفقوداً أو غير قابل للقراءة أثناء فحص مجموعة البيانات (المخزنة مؤقتاً) مع إظهار تحذير، تماماً مثل الصور التالفة؛ إذا لم يتم العثور على أزواج صورة-عمق صالحة على الإطلاق، يتم إثارة خطأ.