Transformers documentation

ZoeDepth

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 في 23 فبراير 2023، وأُضيف إلى مكتبة Hugging Face Transformers في 8 يوليو 2024.

ZoeDepth

ZoeDepth هو نموذج لتقدير العمق يجمع بين أداء التعميم في تقدير العمق النسبي (مدى بُعد الكائنات عن بعضها البعض) وتقدير العمق المقنن (قياس دقيق للعمق على مقياس مقنن) من صورة واحدة. تم تدريبه مسبقًا على 12 مجموعة بيانات باستخدام العمق النسبي، وعلى مجموعتي بيانات (NYU Depth v2 وKITTI) لضمان الدقة المقننة. يُستخدم رأس خفيف يحتوي على وحدة تجميع مقنن لكل مجال، وأثناء الاستدلال، يختار تلقائيًا الرأس المناسب لكل صورة مدخلات بواسطة مصنّف كامن.

drawing

يمكنك العثور على جميع نقاط التفتيش الأصلية لنموذج ZoeDepth تحت منظمة Intel.

يُبيّن المثال أدناه كيفية تقدير العمق باستخدام Pipeline أو فئة AutoModel.

خط أنابيب
AutoModel
import requests
from PIL import Image

from transformers import pipeline


url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"
image = Image.open(requests.get(url, stream=True).raw)
pipeline = pipeline(
    task="depth-estimation",
    model="Intel/zoedepth-nyu-kitti",
    device=0
)
results = pipeline(image)
results["depth"]

ملاحظات

  • في التنفيذ الأصلي، يقوم ZoeDepth بتنفيذ الاستدلال على كلٍّ من الصورة الأصلية والصورة المعكوسة، ثم يأخذ متوسط النتائج. يتولى الدالة post_process_depth_estimation معالجة ذلك عن طريق تمرير المخرجات المعكوسة إلى الحجة الاختيارية outputs_flipped كما هو موضح أدناه.

     with torch.no_grad():
         outputs = model(pixel_values)
         outputs_flipped = model(pixel_values=torch.flip(inputs.pixel_values, dims=[3]))
         post_processed_output = image_processor.post_process_depth_estimation(
             outputs,
             source_sizes=[(image.height, image.width)],
             outputs_flipped=outputs_flipped,
         )

الموارد

ZoeDepthConfig

فئة transformers.ZoeDepthConfig

< >

( 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 = Nonehidden_act: str = 'gelu'initializer_range: float = 0.02batch_norm_eps: float = 1e-05readout_type: typing.Literal['ignore', 'add', 'project'] = 'project'reassemble_factors: list[int | float] | tuple[int | float, ...] = (4, 2, 1, 0.5)neck_hidden_sizes: list[int] | tuple[int, ...] = (96, 192, 384, 768)fusion_hidden_size: int = 256head_in_index: int = -1use_batch_norm_in_fusion_residual: bool = Falseuse_bias_in_fusion_residual: bool | None = Nonenum_relative_features: int = 32add_projection: bool = Falsebottleneck_features: int = 256num_attractors: list[int] | tuple[int, ...] = (16, 8, 4, 1)bin_embedding_dim: int = 128attractor_alpha: int = 1000attractor_gamma: int = 2attractor_kind: typing.Literal['mean', 'sum'] = 'mean'min_temp: float = 0.0212max_temp: float = 50.0bin_centers_type: str = 'softplus'bin_configurations: list[dict] | None = Nonenum_patch_transformer_layers: int | None = Nonepatch_transformer_hidden_size: int | None = Nonepatch_transformer_intermediate_size: int | None = Nonepatch_transformer_num_attention_heads: int | None = None )

المعاملات

  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — إعدادات نموذج الهيكل العظمي.
  • hidden_act (str، اختياري، القيمة الافتراضية gelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وما إلى ذلك.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • batch_norm_eps (float، اختياري، القيمة الافتراضية 1e-05) — قيمة إيبسلون المستخدمة في طبقات تطبيع الدفعة.
  • readout_type (str, اختياري, الافتراضي هو "project") — نوع القراءة المستخدم عند معالجة رمز القراءة (رمز CLS) للحالات المخفية الوسيطة للعمود الفقري ViT. يمكن أن يكون أحد القيم التالية: ["ignore", "add", "project"]. القيمة "ignore" تتجاهل رمز CLS ببساطة. القيمة "add" تنقل المعلومات من رمز CLS إلى جميع الرموز الأخرى عن طريق جمع التمثيلات. القيمة "project" تنقل المعلومات إلى الرموز الأخرى عن طريق دمج القراءة مع جميع الرموز الأخرى قبل إسقاط التمثيل إلى بُعد الميزة الأصلي D باستخدام طبقة خطية تليها دالة عدم خطية GELU."ignore", "add", "project"].
    • “ignore” يتجاهل رمز CLS ببساطة.
    • ينقل add المعلومات من رمز CLS إلى جميع الرموز الأخرى عن طريق جمع التمثيلات.
    • ينقل “project” المعلومات إلى الرموز الأخرى عن طريق دمج القراءة مع جميع الرموز الأخرى قبل إسقاط التمثيل إلى بُعد الميزة الأصلي D باستخدام طبقة خطية تليها دالة عدم خطية GELU.
  • reassemble_factors (list[int]، اختياري، القيمة الافتراضية [4, 2, 1, 0.5]) — معاملات التوسيع/التصغير لطبقات إعادة التجميع.
  • neck_hidden_sizes (list[str], اختياري، القيمة الافتراضية [96, 192, 384, 768]) — حجم الطبقات المخفية التي تُستخدَم لإسقاط خرائط الميزات الخاصة بالهيكل العظمي.
  • fusion_hidden_size (int، اختياري، القيمة الافتراضية 256) — عدد القنوات قبل الدمج.
  • head_in_index (int، اختياري، القيمة الافتراضية -1) — مؤشر الميزات المستخدمة في الرؤوس.
  • use_batch_norm_in_fusion_residual (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام تطبيع الدفعة (batch normalization) في وحدات الباقي (residual) المسبقة التفعيل (pre-activate) داخل كتل الدمج (fusion blocks).
  • use_bias_in_fusion_residual (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام الانحياز (bias) في وحدات الباقي (residual) قبل التفعيل (pre-activate) في كتل الدمج (fusion blocks).
  • num_relative_features (int، اختياري، القيمة الافتراضية 32) — عدد الميزات المستخدمة في رأس تقدير العمق النسبي.
  • add_projection (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إضافة طبقة إسقاط قبل رأس تقدير العمق.
  • bottleneck_features (int، اختياري، القيمة الافتراضية 256) — عدد الميزات في طبقة عنق الزجاجة.
  • num_attractors (list[int], *optional*, defaults to [16, 8, 4, 1]`) — The number of attractors to use in each stage.
  • bin_embedding_dim (int، اختياري، القيمة الافتراضية 128) — أبعاد تضمينات الفئات.
  • attractor_alpha (int، اختياري، القيمة الافتراضية 1000) — قيمة ألفا المستخدمة في الجاذب.
  • attractor_gamma (int، اختياري، القيمة الافتراضية 2) — قيمة غاما المستخدمة في الجاذب.
  • attractor_kind (str، اختياري، القيمة الافتراضية "mean") — نوع الجاذب (attractor) المستخدم. يمكن أن يكون أحد القيم التالية: ["mean"، "sum"].
  • min_temp (float، اختياري، القيمة الافتراضية 0.0212) — أدنى قيمة لدرجة الحرارة التي يجب أخذها في الاعتبار.
  • max_temp (float، اختياري، القيمة الافتراضية 50.0) — القيمة القصوى لدرجة الحرارة التي يجب أخذها في الاعتبار.
  • bin_centers_type (str، اختياري، القيمة الافتراضية "softplus") — نوع التفعيل المستخدم لمراكز الفئات. يمكن أن يكون “normed” أو "softplus". في حالة مراكز الفئات “normed”، يُطبَّق حيلة التطبيع الخطي. وهذا يؤدي إلى مراكز فئات محدودة. أما في حالة "softplus"، فيُستخدم تفعيل softplus، وبالتالي تكون غير محدودة.
  • bin_configurations (list[dict], اختياري, الافتراضي هو [{'n_bins' -- 64, 'min_depth': 0.001, 'max_depth': 10.0}]): إعدادات كل رأس من رؤوس التقسيمات. يجب أن يتكون كل إعداد من المفاتيح التالية:
    • name (str): اسم رأس التصنيف - مطلوب فقط في حالة وجود عدة تكوينات للتصنيف.
    • n_bins (int): عدد الفئات المستخدمة.
    • min_depth (float): الحد الأدنى لقيمة العمق التي يجب أخذها في الاعتبار.
    • max_depth (float): القيمة القصوى للعمق التي يجب أخذها في الاعتبار. في حال تم تمرير تكوين واحد فقط، سيقوم النموذج باستخدام رأس واحد مع التكوين المحدد. في حال تم تمرير عدة تكوينات، سيقوم النموذج باستخدام عدة رؤوس مع التكوينات المحددة.
  • num_patch_transformer_layers (int, اختياري) — عدد طبقات الترانسفورمر المستخدمة في ترانسفورمر الباتش. يُستخدم فقط في حالة وجود تكوينات متعددة للثوابت.
  • patch_transformer_hidden_size (int, اختياري) — حجم الطبقة المخفية المستخدم في محوّل الباتش. يُستخدم فقط في حالة وجود عدة تكوينات للوحدات.
  • patch_transformer_intermediate_size (int, اختياري) — الحجم الوسيط المستخدم في محوّل الباتش. يُستخدم فقط في حالة وجود تكوينات متعددة للوحدات.
  • patch_transformer_num_attention_heads (int, اختياري) — عدد رؤوس الانتباه المستخدمة في محوّل الباتش. يُستخدم فقط في حالة وجود تكوينات متعددة للوحدات.

هذه فئة الإعدادات المخزنة لإعدادات نموذج ZoedepthModel. تُستخدم لاستحداث نموذج Zoedepth وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ Intel/zoedepth-nyu

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

مثال:

>>> from transformers import ZoeDepthConfig, ZoeDepthForDepthEstimation

>>> # Initializing a ZoeDepth zoedepth-large style configuration
>>> configuration = ZoeDepthConfig()

>>> # Initializing a model from the zoedepth-large style configuration
>>> model = ZoeDepthForDepthEstimation(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

ZoeDepthImageProcessor

فئة transformers.ZoeDepthImageProcessor

< >

( **kwargs: *<class 'transformers.models.zoedepth.image_processing_zoedepth.ZoeDepthImageProcessorKwargs'> )

المعاملات

  • do_convert_rgb (bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية {'height' -- 384, 'width': 512}): يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيق center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية 2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد 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.5, 0.5, 0.5]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.5, 0.5, 0.5]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين 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، اختياري) — ما إذا كان يجب قص الصورة من المنتصف.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • keep_aspect_ratio (bool، kwargs، اختياري، القيمة الافتراضية هي self.keep_aspect_ratio) — إذا كانت True، يتم تغيير حجم الصورة عن طريق اختيار أصغر عاملَي توسيع بين الارتفاع والعرض واستخدامه لكلا البعدين. يضمن هذا أن يتم تصغير الصورة بأقل قدر ممكن مع ضمان ملاءمتها للحجم الإخراجي المطلوب. في حال تم ضبط ensure_multiple_of أيضاً، يتم تغيير حجم الصورة مرة أخرى إلى حجم يكون مضاعفاً لهذه القيمة عن طريق تقريب الارتفاع والعرض إلى أقرب مضاعف لهذه القيمة. يمكن تجاوز ذلك عبر keep_aspect_ratio في preprocess.
  • ensure_multiple_of (int، kwargs، اختياري، القيمة الافتراضية هي self.ensure_multiple_of) — إذا كانت do_resize هي True، يتم تغيير حجم الصورة إلى حجم يكون مضاعفًا لهذه القيمة. يعمل عن طريق تقريب الارتفاع والعرض إلى أقرب مضاعف لهذه القيمة. يعمل سواء مع أو بدون تعيين keep_aspect_ratio إلى True. يمكن تجاوزها بواسطة ensure_multiple_of في preprocess.

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

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.zoedepth.image_processing_zoedepth.ZoeDepthImageProcessorKwargs'> ) → ~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.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • keep_aspect_ratio (bool، kwargs، اختياري، القيمة الافتراضية هي self.keep_aspect_ratio) — إذا كانت True، يتم تغيير حجم الصورة عن طريق اختيار أصغر عاملَي توسيع بين الارتفاع والعرض واستخدامه لكلا البعدين. يضمن هذا أن يتم تصغير الصورة بأقل قدر ممكن مع ضمان ملاءمتها للحجم الإخراجي المطلوب. في حال تم ضبط ensure_multiple_of أيضاً، يتم تغيير حجم الصورة مرة أخرى إلى حجم يكون مضاعفاً لهذه القيمة عن طريق تقريب الارتفاع والعرض إلى أقرب مضاعف لهذه القيمة. يمكن تجاوز ذلك عبر keep_aspect_ratio في preprocess.
  • ensure_multiple_of (int، kwargs، اختياري، القيمة الافتراضية هي self.ensure_multiple_of) — إذا كانت do_resize هي True، يتم تغيير حجم الصورة إلى حجم يكون مضاعفًا لهذه القيمة. يعمل عن طريق تقريب الارتفاع والعرض إلى أقرب مضاعف لهذه القيمة. يعمل سواء مع أو بدون تعيين keep_aspect_ratio إلى True. يمكن تجاوزها بواسطة ensure_multiple_of في preprocess.

يعيد

~image_processing_base.BatchFeature

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

ZoeDepthImageProcessorPil

فئة transformers.ZoeDepthImageProcessorPil

< >

( **kwargs: *<class 'transformers.models.zoedepth.image_processing_pil_zoedepth.ZoeDepthImageProcessorKwargs'> )

المعاملات

  • do_convert_rgb (bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية {'height' -- 384, 'width': 512}): يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيق center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية 2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد 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.5, 0.5, 0.5]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.5, 0.5, 0.5]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين 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، اختياري) — ما إذا كان يجب قص الصورة من المنتصف.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • keep_aspect_ratio (bool، kwargs، اختياري، القيمة الافتراضية هي self.keep_aspect_ratio) — إذا كانت True، يتم تغيير حجم الصورة عن طريق اختيار أصغر عاملَي توسيع بين الارتفاع والعرض واستخدامه لكلا البعدين. يضمن هذا أن يتم تصغير الصورة بأقل قدر ممكن مع ضمان ملاءمتها للحجم الإخراجي المطلوب. في حال تم ضبط ensure_multiple_of أيضاً، يتم تغيير حجم الصورة مرة أخرى إلى حجم يكون مضاعفاً لهذه القيمة عن طريق تقريب الارتفاع والعرض إلى أقرب مضاعف لهذه القيمة. يمكن تجاوز ذلك عبر keep_aspect_ratio في preprocess.
  • ensure_multiple_of (int، kwargs، اختياري، القيمة الافتراضية هي self.ensure_multiple_of) — إذا كانت do_resize هي True، يتم تغيير حجم الصورة إلى حجم يكون مضاعفًا لهذه القيمة. يعمل عن طريق تقريب الارتفاع والعرض إلى أقرب مضاعف لهذه القيمة. يعمل سواء مع أو بدون تعيين keep_aspect_ratio إلى True. يمكن تجاوزها بواسطة ensure_multiple_of في preprocess.

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

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.zoedepth.image_processing_pil_zoedepth.ZoeDepthImageProcessorKwargs'> ) → ~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.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • keep_aspect_ratio (bool، kwargs، اختياري، القيمة الافتراضية هي self.keep_aspect_ratio) — إذا كانت True، يتم تغيير حجم الصورة عن طريق اختيار أصغر عاملَي توسيع بين الارتفاع والعرض واستخدامه لكلا البعدين. يضمن هذا أن يتم تصغير الصورة بأقل قدر ممكن مع ضمان ملاءمتها للحجم الإخراجي المطلوب. في حال تم ضبط ensure_multiple_of أيضاً، يتم تغيير حجم الصورة مرة أخرى إلى حجم يكون مضاعفاً لهذه القيمة عن طريق تقريب الارتفاع والعرض إلى أقرب مضاعف لهذه القيمة. يمكن تجاوز ذلك عبر keep_aspect_ratio في preprocess.
  • ensure_multiple_of (int، kwargs، اختياري، القيمة الافتراضية هي self.ensure_multiple_of) — إذا كانت do_resize هي True، يتم تغيير حجم الصورة إلى حجم يكون مضاعفًا لهذه القيمة. يعمل عن طريق تقريب الارتفاع والعرض إلى أقرب مضاعف لهذه القيمة. يعمل سواء مع أو بدون تعيين keep_aspect_ratio إلى True. يمكن تجاوزها بواسطة ensure_multiple_of في preprocess.

يعيد

~image_processing_base.BatchFeature

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

ZoeDepthForDepthEstimation

فئة transformers.ZoeDepthForDepthEstimation

< >

( config: ZoeDepthConfig )

المعاملات

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

نموذج ZoeDepth مع رأس واحد أو عدة رؤوس لتقدير العمق القياسي في الأعلى.

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

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

forward

< >

( pixel_values: Tensorlabels: typing.Optional[torch.LongTensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → DepthEstimatorOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام ZoeDepthImageProcessor. راجع ZoeDepthImageProcessor.call() للتفاصيل (يستخدم processor_class ZoeDepthImageProcessor لمعالجة الصور).
  • labels (torch.LongTensor من الشكل (batch_size, height, width)، اختياري) — خرائط تقدير العمق الصحيحة (Ground truth) لحساب الخسارة.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

DepthEstimatorOutput أو tuple(torch.Tensor)

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

تُعيد طريقة ZoeDepthForDepthEstimation الخاصة بالتقديم (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, ZoeDepthForDepthEstimation
>>> import torch
>>> import numpy as np
>>> 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()))

>>> image_processor = AutoImageProcessor.from_pretrained("Intel/zoedepth-nyu-kitti")
>>> model = ZoeDepthForDepthEstimation.from_pretrained("Intel/zoedepth-nyu-kitti")

>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")

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

>>> # interpolate to original size
>>> post_processed_output = image_processor.post_process_depth_estimation(
...     outputs,
...     source_sizes=[(image.height, image.width)],
... )

>>> # visualize the prediction
>>> predicted_depth = post_processed_output[0]["predicted_depth"]
>>> depth = predicted_depth * 255 / predicted_depth.max()
>>> depth = depth.detach().cpu().numpy()
>>> depth = Image.fromarray(depth.astype("uint8"))
Update on GitHub