Ultralytics YOLO27:

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

تُعد Hypersim مجموعة بيانات اصطناعية واقعية التصيير للمشاهد الداخلية، صُممت للفهم الشامل للمشهد الداخلي. وتُنشأ صورها بتتبع الأشعة من تصميمات داخلية ثلاثية الأبعاد احترافية من Evermotion، ما ينتج تصييرات شديدة الواقعية مقترنة ببيانات حقيقة مرجعية كثيفة ومثالية للعمق لكل بكسل.

نظرًا إلى أن Hypersim اصطناعية بالكامل، فإن لكل بكسل قيمة عمق دقيقة، من دون ضوضاء المستشعر أو القراءات المفقودة أو تشوهات القياس. وهذا يجعلها مصدرًا ممتازًا لهندسة داخلية نظيفة وكثيفة لتدريب نماذج تقدير العمق أحادية العين.

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

  • مشاهد داخلية اصطناعية واقعية التصيير، أُنشئت بتتبع الأشعة من تصميمات داخلية ثلاثية الأبعاد احترافية من Evermotion.
  • بيئات داخلية فقط.
  • بيانات حقيقة مرجعية كثيفة ومثالية لـ العمق لكل بكسل، من دون ضوضاء المستشعر أو القيم المفقودة.
  • يتراوح العمق في الغالب بين ≤10 m (مع وجود بعض المسافات الأكبر).
  • تسهم بـ 74,619 صورة (68,242 للتدريب / 6,377 للتحقق) في مزيج تدريب العمق من Ultralytics.

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

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

  1. التدريب: 68,242 صورة مع خرائط عمق كثيفة مقترنة للتدريب.
  2. التحقق: 6,377 صورة مع خرائط عمق كثيفة مقترنة للتحقق أثناء التدريب.

تُقرن كل صورة RGB بملف PNG للعمق من نوع uint16 ومقيس، وفق تنسيق مجموعة بيانات العمق من Ultralytics.

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

لا تدعم Hypersim التنزيل التلقائي — إذ توزّع Apple مجموعة البيانات (~1.9 TB من ملفات ZIP لكل مشهد) بموجب ترخيص CC BY-SA 3.0، وتُنزّل باستخدام البرنامج النصي الرسمي من مستودع ml-hypersim (يتوفر برنامج تنزيل انتقائي في contrib/99991):

git clone https://github.com/apple/ml-hypersim && cd ml-hypersim
python code/python/tools/dataset_download_images.py --downloads_dir ./downloads --decompress_dir ./scenes

إطارات RGB هي معاينات frame.*.tonemap.jpg، بينما يوجد العمق في frame.*.depth_meters.hdf5. القيم المخزنة هي مسافات الأشعة إلى مركز الكاميرا، وليست عمقًا مستويًا — حوّلها قبل الحفظ، وعيّن بكسلات NaN (النوافذ والسماء) إلى 0 (غير صالح). استخدم تقسيم المشاهد الرسمي metadata_images_split_scene_v1.csv لتعيين التدريب/التحقق. التحويل المرجعي إلى تنسيق مجموعة بيانات العمق من Ultralytics:

import shutil
from pathlib import Path

import h5py
import numpy as np

from ultralytics.data.utils import save_depth_png

W, H, FOCAL = 1024, 768, 886.81  # Hypersim camera intrinsics
x, y = np.meshgrid(np.linspace(-W / 2, W / 2, W), np.linspace(-H / 2, H / 2, H))
ray2plane = (FOCAL / np.sqrt(x**2 + y**2 + FOCAL**2)).astype(np.float32)  # distance → planar depth

src, dst = Path("scenes"), Path("datasets/depth-hypersim")
out = "train"  # assign per scene from metadata_images_split_scene_v1.csv
(dst / f"images/{out}").mkdir(parents=True, exist_ok=True)
(dst / f"depth/{out}").mkdir(parents=True, exist_ok=True)
for h5 in sorted(src.rglob("*.depth_meters.hdf5")):
    scene, cam, frame = h5.parts[-4], h5.parent.name.split("_geometry")[0], h5.name.split(".")[1]
    rgb = h5.parents[1] / f"{cam}_final_preview" / f"frame.{frame}.tonemap.jpg"
    dist = np.asarray(h5py.File(h5)["dataset"], np.float32)
    depth = np.nan_to_num(dist * ray2plane, nan=0.0)  # NaN (sky, glass) → 0 = invalid
    name = f"{scene}_{cam}_{frame}"
    save_depth_png(dst / f"depth/{out}/{name}.png", depth)
    shutil.copy(rgb, dst / f"images/{out}/{name}.jpg")

دور ARKitScenes في YOLO26-Depth#

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

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

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

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

ultralytics/cfg/datasets/depth-hypersim.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Hypersim dataset for monocular depth estimation — photorealistic synthetic indoor (ray-traced), dense depth up to ~10 m
# Documentation: https://docs.ultralytics.com/datasets/depth/hypersim
# Example usage: yolo depth train data=depth-hypersim.yaml model=yolo26n-depth.pt
# No autodownload — obtain the source data (see docs) and arrange it as below.
# parent
# ├── ultralytics
# └── datasets
#     └── depth-hypersim
#         ├── images/{train,val}  # RGB images
#         └── depth/{train,val}   # paired 16-bit *.png depth maps (images/ -> depth/)

path: depth-hypersim # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 68242 images
val: images/val # val images (relative to 'path') 6377 images

nc: 1
names:
  0: depth

channels: 3

الاستخدام#

لتدريب نموذج YOLO26n-Depth على مجموعة بيانات Hypersim بحجم صورة 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-hypersim.yaml", epochs=100, imgsz=640)

النماذج المدرّبة مسبقًا#

تُنزّل عائلة العمق YOLO26 (yolo26n-depth.pt وyolo26s-depth.pt وyolo26m-depth.pt وyolo26l-depth.pt وyolo26x-depth.pt) تلقائيًا من إصدارات Ultralytics، وتُدرّب على المزيج الواسع متعدد مجموعات البيانات الذي تُعد Hypersim جزءًا منه. استكشف YOLO26x-depth على منصة Ultralytics.

الاقتباسات والشكر والتقدير#

إذا استخدمت مجموعة بيانات Hypersim في أبحاثك أو أعمالك التطويرية، يُرجى الاستشهاد بالورقة البحثية التالية:

اقتباس
@inproceedings{roberts2021hypersim,
      title={Hypersim: A Photorealistic Synthetic Dataset for Holistic Indoor Scene Understanding},
      author={Mike Roberts and Jason Ramapuram and Anurag Ranjan and Atulit Kumar and Miguel Angel Bautista and Nathan Paczan and Russ Webb and Joshua M. Susskind},
      booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
      year={2021}
}

نود أن نعرب عن تقديرنا لمبدعي Hypersim لإتاحتهم مجموعة البيانات الداخلية الاصطناعية الواقعية التصيير هذه لمجتمع الرؤية الحاسوبية.

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

  • مجموعة بيانات Hypersim هي مجموعة بيانات داخلية اصطناعية واقعية للغاية من إنتاج Apple، وتم تتبع أشعتها من تصاميم داخلية ثلاثية الأبعاد احترافية من Evermotion. نظراً لأن كل بكسل له قيمة عمق دقيقة بدون ضوضاء المستشعرات أو البيانات المفقودة، فإن صورها البالغ عددها 74,619 صورة (68,242 للتدريب، 6,377 للتحقق من الصحة) توفر هندسة داخلية نظيفة وكثيفة تكمل بيانات المستشعرات الواقعية الأكثر صخباً في مزيج تدريب YOLO26-Depth.

  • لا تتوفر مجموعة بيانات Hypersim للتنزيل التلقائي. احصل على المشاهد (حوالي 1.9 تيرابايت) باستخدام البرنامج النصي الرسمي من ml-hypersim repository، ثم قم بتحويل مسافات الأشعة في depth_meters.hdf5 إلى عمق مستوٍ وكتابة صور PNG بالمليمتر باستخدام البرنامج النصي في قسم Obtain the Data. قم بتعيين بكسلات القيم غير الرقمية (NaN) مثل النوافذ والسماء إلى 0 بحيث يتم التعامل معها كبيانات غير صالحة.

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

المساهمون

التعليقات