Transformers documentation

CHMv2

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 2026-03-06 وسُهم به في Hugging Face Transformers في 2026-03-11.

CHMv2

FlashAttention SDPA

نظرة عامة

قُدِّم نموذج خرائط ارتفاع الغطاء النباتي v2 (CHMv2) في CHMv2: Improvements in Global Canopy Height Mapping using DINOv3. وببناء على خرائط ارتفاع الغطاء النباتي عالية الدقة الأصلية التي أُطلقت في عام 2024، يقدّم CHMv2 تحسينات كبيرة في الدقة والتفصيل والاتساق العالمي من خلال الاستفادة من DINOv3، وهو نموذج الرؤية ذاتي الإشراف من Meta.

يمكنك العثور على مزيد من المعلومات هنا، والكود الأصلي هنا.

المستخلص من الورقة البحثية هو كالتالي:

تُعدّ معلومات دقيقة عن ارتفاع تاج الأشجار ضرورية لقياس كربون الغابات، ومراقبة عمليات الترميم والتدهور، وتقييم بنية الموائل، ومع ذلك فإن القياسات عالية الدقة من المسح الليزري الجوي (ALS) لا تزال متاحة بشكل غير متساوٍ على مستوى العالم. هنا نعرض CHMv2، وهو خريطة عالمية لارتفاع تاج الأشجار بدقة المتر، مشتقة من صور الأقمار الصناعية البصرية عالية الدقة باستخدام نموذج لتقدير العمق مبني على DINOv3 ومدرب مقابل نماذج ارتفاع تاج الأشجار من ALS. مقارنةً بالمنتجات الحالية، يحسّن CHMv2 الدقة بشكل كبير، ويقلل الانحياز في الغابات الطويلة، ويحافظ بشكل أفضل على البنية الدقيقة مثل حواف التاج والفجوات. يتم تمكين هذه المكاسب من خلال توسع كبير في بيانات التدريب المتنوعة جغرافياً، والتدقيق والتسجيل الآلي للبيانات، وصياغة دالة خسارة واستراتيجية أخذ عينات من البيانات مصممة خصيصاً لتوزيعات ارتفاع تاج الأشجار. نتحقق من CHMv2 مقابل مجموعات اختبار مستقلة من ALS ومقابل عشرات الملايين من ملاحظات GEDI وICESat-2، مما يثبت أداءً متسقاً عبر النظم البيئية الرئيسية للغابات.

أمثلة على الاستخدام

شغّل الاستدلال على صورة باستخدام الكود التالي:

import torch
from PIL import Image

from transformers import AutoImageProcessor, AutoModelForDepthEstimation


processor = AutoImageProcessor.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")
model = AutoModelForDepthEstimation.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head", device_map="auto")

image = Image.open("image.tif")
inputs = processor(images=image, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs)

depth = processor.post_process_depth_estimation(
    outputs, target_sizes=[(image.height, image.width)]
)[0]["predicted_depth"]

CHMv2Config

فئة transformers.CHMv2Config

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonepatch_size: int = 16initializer_range: float = 0.02reassemble_factors: list[float | int] | None = Nonepost_process_channels: list[int] | None = Nonefusion_hidden_size: int = 256head_hidden_size: int = 128number_output_channels: int = 256readout_type: str = 'project'min_depth: float = 0.001max_depth: float = 96.0bins_strategy: typing.Literal['linear', 'log', 'chmv2_mixlog'] = 'chmv2_mixlog'norm_strategy: typing.Literal['linear', 'softmax', 'sigmoid', 'chmv2_mixlog'] = 'chmv2_mixlog' )

المعاملات

  • backbone_config (Union[dict, "PreTrainedConfig"]، اختياري) — إعدادات نموذج الهيكل العظمي. حاليًا، يتم دعم DINOv3ViTConfig فقط.
  • patch_size (int, اختياري، القيمة الافتراضية 16) — حجم الباتش المستخدم في محوّل الرؤية الأساسي.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • reassemble_factors (list[float]، اختياري، القيمة الافتراضية [4, 2, 1, 0.5]) — عوامل التوسيع/التصغير لطبقات إعادة التجميع.
  • post_process_channels (list[int]، اختياري، القيمة الافتراضية [128, 256, 512, 1024]) — أحجام قنوات المخرجات لمرحلة إعادة التجميع لكل مستوى ميزات في الهيكل الأساسي.
  • fusion_hidden_size (int، اختياري، القيمة الافتراضية 256) — عدد القنوات قبل الدمج.
  • head_hidden_size (int، اختياري، القيمة الافتراضية 128) — عدد القنوات في الطبقة المخفية لرأس تقدير العمق.
  • number_output_channels (int، اختياري، القيمة الافتراضية 256) — عدد قنوات الإخراج لرأس CHMv2 (عدد دلاء العمق).
  • readout_type (str، اختياري، القيمة الافتراضية "project") — نوع عملية القراءة لرمز CLS. أحد القيم ["ignore", "add", "project"].
  • min_depth (float، اختياري، القيمة الافتراضية 0.001) — القيمة الدنيا للعمق لحساب تقسيمات العمق.
  • max_depth (float، اختياري، القيمة الافتراضية 96.0) — القيمة القصوى للعمق لحساب تقسيمات العمق.
  • bins_strategy (str، اختياري، القيمة الافتراضية "chmv2_mixlog") — استراتيجية توزيع دلاء العمق. أحد القيم ["linear", "log", "chmv2_mixlog"].
  • norm_strategy (str، اختياري، القيمة الافتراضية "chmv2_mixlog") — استراتيجية التطبيع للتنبؤ بالعمق. أحد القيم التالية: ["linear", "softmax", "sigmoid", "chmv2_mixlog"].

هذه فئة الإعدادات المخزنة لإعدادات نموذج Chmv2Model. تُستخدم لاستحداث نموذج Chmv2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ facebook/dinov3-vitl16-chmv2-dpt-head

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

>>> from transformers import CHMv2Config, CHMv2ForDepthEstimation

>>> configuration = CHMv2Config()
>>> model = CHMv2ForDepthEstimation(configuration)
>>> configuration = model.config

CHMv2ImageProcessor

فئة transformers.CHMv2ImageProcessor

< >

( **kwargs: *<class 'transformers.models.chmv2.image_processing_chmv2.CHMv2ImageProcessorKwargs'> )

المعاملات

  • do_convert_rgb (bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري، القيمة الافتراضية False) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية {'height' -- 384, 'width': 384}): يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs، القيمة الافتراضية None) — حجم الصورة الناتجة بعد تطبيق center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية 3) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum PILImageResampling. لا يؤثر إلا إذا كانت قيمة do_resize هي True.
  • do_rescale (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إعادة تحجيم الصورة.
  • rescale_factor (float، kwargs، اختياري، القيمة الافتراضية 0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان do_rescale مضبوطًا على True.
  • do_normalize (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تطبيع الصورة.
  • image_mean (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.42, 0.411, 0.296]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم ضبط do_normalize على True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.213, 0.156, 0.143]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • do_pad (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ملء الصورة. يتم الملء إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الملء الدقيقة على النموذج.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل {"height": int, "width" int} الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم pad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكون do_pad=True.
  • do_center_crop (bool، kwargs، اختياري، القيمة الافتراضية None) — ما إذا كان يجب قص الصورة من المنتصف.
  • data_format (Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعم ChannelDimension.FIRST فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:
    • "channels_first" أو ChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width).
    • "channels_last" أو ChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "none" أو ChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على 'pt'، وإلا تُرجع قائمة من التينسورات.
  • disable_grouping (bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • ensure_multiple_of (int، kwargs، اختياري، القيمة الافتراضية 1) — إذا كان do_resize هو True، يتم تغيير حجم الصورة إلى حجم يكون مضاعفاً لهذه القيمة. يمكن تجاوز ذلك عبر ensure_multiple_of في preprocess.
  • size_divisor (int، kwargs، القيمة الافتراضية 16) — الحجم الذي يُستخدم للتأكد من إمكانية قسمة كلٍّ من الارتفاع والعرض عليه.
  • keep_aspect_ratio (bool، kwargs، اختياري، القيمة الافتراضية False) — إذا كانت True، يتم تغيير حجم الصورة إلى أكبر حجم ممكن مع الحفاظ على نسبة الأبعاد. يمكن تجاوز ذلك باستخدام keep_aspect_ratio في preprocess.
  • do_reduce_labels (bool، kwargs، اختياري، القيمة الافتراضية self.do_reduce_labels) — ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم (segmentation maps) بمقدار 1. يُستخدم عادةً في مجموعات البيانات التي يُستخدم فيها الرقم 0 للخلفية، ولا تكون الخلفية نفسها مدرجة ضمن جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بالرقم 255.

ينشئ معالج صور CHMv2ImageProcessor.

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None**kwargs: *<class 'transformers.models.chmv2.image_processing_chmv2.CHMv2ImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

المعاملات

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبط do_rescale=False.
  • segmentation_maps (ImageInput، اختياري) — خرائط التقسيم المراد معالجتها مسبقًا.
  • do_convert_rgb (bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيق center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد PILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيين do_resize إلى True.
  • do_rescale (bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة.
  • rescale_factor (float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان do_rescale مضبوطاً على True.
  • do_normalize (bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة.
  • image_mean (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • do_pad (bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل {"height": int, "width" int} الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم pad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكون do_pad=True.
  • do_center_crop (bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف.
  • data_format (Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعم ChannelDimension.FIRST فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:
    • "channels_first" أو ChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width).
    • "channels_last" أو ChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "none" أو ChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على 'pt'، وإلا تُرجع قائمة من التينسورات.
  • disable_grouping (bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • ensure_multiple_of (int، kwargs، اختياري، القيمة الافتراضية 1) — إذا كان do_resize هو True، يتم تغيير حجم الصورة إلى حجم يكون مضاعفاً لهذه القيمة. يمكن تجاوز ذلك عبر ensure_multiple_of في preprocess.
  • size_divisor (int, kwargs) — الحجم الذي يُستخدم للتأكد من قابلية كلٍّ من الارتفاع والعرض على القسمة عليه.
  • keep_aspect_ratio (bool، kwargs، اختياري، القيمة الافتراضية False) — إذا كانت True، يتم تغيير حجم الصورة إلى أكبر حجم ممكن مع الحفاظ على نسبة الأبعاد. يمكن تجاوز ذلك باستخدام keep_aspect_ratio في preprocess.
  • do_reduce_labels (bool، kwargs، اختياري، القيمة الافتراضية self.do_reduce_labels) — ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم (segmentation maps) بمقدار 1. يُستخدم عادةً في مجموعات البيانات التي يُستخدم فيها الرقم 0 للخلفية، ولا تكون الخلفية نفسها مدرجة ضمن جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بالرقم 255.

يعيد

~image_processing_base.BatchFeature

  • data (dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’).
  • tensor_type (Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

post_process_depth_estimation

< >

( outputs: DepthEstimatorOutputtarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None ) → List[Dict[str, TensorType]]

المعاملات

  • outputs (DepthEstimatorOutput) — المخرجات الخام للنموذج.
  • target_sizes (TensorType أو List[Tuple[int, int]]، اختياري) — مصفوفة (Tensor) بأبعاد (batch_size, 2) أو قائمة من الأزواج (Tuple[int, int]) تحتوي على الحجم المستهدف (الارتفاع، العرض) لكل صورة في الدفعة. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.

يعيد

List[Dict[str, TensorType]]

قائمة من قواميس المتجهات (tensors) تمثل تنبؤات العمق المعالجة.

يحوّل المخرجات الخام لـDepthEstimatorOutput إلى تنبؤات عمق نهائية وصور عمق بصيغة PIL. يدعم PyTorch فقط.

CHMv2ForDepthEstimation

فئة transformers.CHMv2ForDepthEstimation

< >

( config: CHMv2Config )

المعاملات

  • config (CHMv2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج CHMv2 مع رأس تقدير العمق في الأعلى (المكوّن من طبقات تلافيفية) على سبيل المثال لتقدير ارتفاع الغطاء النباتي.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( pixel_values: Tensorlabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DepthEstimatorOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام CHMv2ImageProcessor. راجع CHMv2ImageProcessor.call() للتفاصيل (processor_class يستخدم CHMv2ImageProcessor لمعالجة الصور).
  • labels (torch.LongTensor من الشكل (batch_size, height, width)، اختياري) — خرائط تقدير العمق الصحيحة (Ground truth) لحساب الخسارة.

يعيد

DepthEstimatorOutput أو tuple(torch.Tensor)

DepthEstimatorOutput أو مجموعة (tuple) من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (CHMv2Config) والمدخلات.

تتجاوز طريقة CHMv2ForDepthEstimation الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • loss (torch.Tensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).

  • predicted_depth (torch.Tensor من الشكل (batch_size, height, width)) — العمق المتوقع لكل بكسل.

  • hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, num_channels, height, width).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, patch_size, sequence_length).

    أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

>>> from transformers import AutoImageProcessor, CHMv2ForDepthEstimation
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
    >>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read())).convert("RGB")

>>> processor = AutoImageProcessor.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")
>>> model = CHMv2ForDepthEstimation.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")

>>> device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
>>> model.to(device)

>>> # prepare image for the model
>>> inputs = processor(images=image, return_tensors="pt").to(device)

>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> # interpolate to original size
>>> post_processed_output = processor.post_process_depth_estimation(
...     outputs, [(image.height, image.width)],
... )
>>> predicted_depth = post_processed_output[0]["predicted_depth"]
Update on GitHub