Link to this sectionمجموعة بيانات العمق SUN RGB-D#
SUN RGB-D هو معيار قياسي لفهم المشاهد الداخلية في العالم الحقيقي، تم التقاطه باستخدام أربعة مستشعرات RGB-D مختلفة: Intel RealSense، وAsus Xtion، وMicrosoft Kinect v1 وv2. تصميمه متعدد المستشعرات يجعله مصدراً قيماً لتنوع العمق الداخلي الحقيقي لـ تقدير العمق أحادي العين.
Link to this sectionالميزات الرئيسية#
- تم التقاطه باستخدام أربعة مستشعرات RGB-D مختلفة (Intel RealSense، وAsus Xtion، وMicrosoft Kinect v1 وv2)، مما يوفر تنوعاً حقيقياً متعدد المستشعرات.
- يغطي مجموعة واسعة من المشاهد الداخلية الحقيقية لأبحاث فهم المشاهد.
- نطاق عمق يصل إلى حوالي 10 أمتار، وهو أمر نموذجي لالتقاط RGB-D الداخلي الاستهلاكي.
- حقيقة أرضية للعمق مشتقة من المستشعر ومحاذاة مع إطارات RGB.
- يساهم بتنوع داخلي حقيقي متعدد المستشعرات في مزيج التدريب المسبق للعمق الخاص بـ Ultralytics.
Link to this sectionهيكل مجموعة البيانات#
يتم تقسيم مجموعة بيانات العمق SUN RGB-D إلى مجموعتين فرعيتين:
- Train: 9,245 صورة مع خرائط عمق مقترنة للتدريب.
- Val: 1,090 صورة مع خرائط عمق مقترنة للتحقق من الصحة أثناء تدريب النموذج.
تتكون كل عينة من صورة RGB واحدة وخريطة عمق مقترنة بصيغة .npy وfloat32 تخزن المسافات لكل بكسل بالأمتار، وفقاً لـ تنسيق مجموعة بيانات العمق في Ultralytics.
Link to this sectionدورها في YOLO26-Depth#
SUN RGB-D هو مصدر تدريب في مزيج التدريب المسبق لمجموعة بيانات Ultralytics YOLO26-Depth الذي يضم حوالي 2.19 مليون زوج من الصور والعمق. وهو يساهم بتنوع داخلي حقيقي متعدد المستشعرات، مما يعرض النموذج للعمق الذي تم التقاطه عبر العديد من أجهزة RGB-D الاستهلاكية المختلفة. يتم تقييم النماذج الناتجة على معايير NYU وKITTI وMake3D وETH3D وiBims-1 القياسية.
Link to this sectionYAML مجموعة البيانات#
يتم استخدام ملف YAML (Yet Another Markup Language) لتحديد تكوين مجموعة البيانات. وهو يحتوي على معلومات حول مسارات مجموعة البيانات، والفئات، ومعلومات أخرى ذات صلة.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# SUN RGB-D dataset for monocular depth estimation — real indoor, multi-sensor RGB-D (RealSense/Xtion/Kinect), up to ~10 m
# Documentation: https://docs.ultralytics.com/datasets/depth/sunrgbd
# Example usage: yolo depth train data=depth-sunrgbd.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
# └── depth-sunrgbd ← downloads here (6.5 GB archive, ~14 GB converted)
# ├── images/{train,val} # RGB images
# └── depth/{train,val} # paired *.npy, float32 meters (images/ -> depth/)
# If an interrupted download leaves a partial dataset, delete the depth-sunrgbd dir and re-run to rebuild it.
path: depth-sunrgbd # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 9245 images
val: images/val # val images (relative to 'path') 1090 images
nc: 1
names:
0: depth
channels: 3
# Download script/URL (optional)
download: |
import random
import shutil
from pathlib import Path
import cv2
import numpy as np
from ultralytics.utils import TQDM
from ultralytics.utils.downloads import download
# Download and extract the official archive (~6.5 GB), then convert each of the 10335 scenes:
# refined depth_bfx PNGs decode via the SUN RGB-D bit-rotation (d>>3 | d<<13) to millimeters,
# clipped at 10 m; a deterministic random 1090-scene subset (seed 0) forms the val split
dir = Path(yaml["path"]) # dataset root dir
download(["https://rgbd.cs.princeton.edu/data/SUNRGBD.zip"], dir=dir / "source", delete=True, exist_ok=True)
for split in ("train", "val"):
(dir / "images" / split).mkdir(parents=True, exist_ok=True)
(dir / "depth" / split).mkdir(parents=True, exist_ok=True)
scenes = sorted(p.parent for p in (dir / "source" / "SUNRGBD").rglob("depth_bfx"))
names = ["_".join(s.relative_to(dir / "source" / "SUNRGBD").parts) for s in scenes]
val = set(random.Random(0).sample(names, k=1090))
for scene, name in TQDM(zip(scenes, names), total=len(scenes), desc="Converting"):
split = "val" if name in val else "train"
d = cv2.imread(str(next((scene / "depth_bfx").glob("*.png"))), cv2.IMREAD_ANYDEPTH)
d = (((d >> 3) | (d << 13)) / 1000.0).clip(max=10).astype(np.float32) # bit-rotated mm -> m
np.save(dir / "depth" / split / f"{name}.npy", d)
next((scene / "image").glob("*.jpg")).replace(dir / "images" / split / f"{name}.jpg")
shutil.rmtree(dir / "source")Link to this sectionالاستخدام#
لتدريب نموذج YOLO26n-depth على مجموعة بيانات SUN RGB-D بحجم صورة 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-sunrgbd.yaml", epochs=100, imgsz=640)Link to this sectionالنماذج المدربة مسبقاً#
يتم تدريب عائلة عمق YOLO26 على مزيج واسع من التدريب المسبق للعمق متعدد مجموعات البيانات الذي يعد SUN RGB-D جزءاً منه. يتم تنزيل هذه النماذج تلقائياً من أحدث إصدار لـ Ultralytics، على سبيل المثال YOLO26x-depth من الإصدار v8.4.0، وهي تغطي مجموعة من الأحجام لمتطلبات دقة وموارد مختلفة.
Link to this sectionالاقتباسات والشكر#
إذا كنت تستخدم مجموعة بيانات SUN RGB-D في عملك البحثي أو التطويري، فيرجى الاستشهاد بالورقة البحثية التالية:
@inproceedings{song2015sunrgbd,
title={SUN RGB-D: A RGB-D Scene Understanding Benchmark Suite},
author={Song, Shuran and Lichtenberg, Samuel P. and Xiao, Jianxiong},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2015}
}نود أن نشكر المؤلفين على إنشاء والحفاظ على هذا المورد القيم لمجتمع الرؤية الحاسوبية.