Transformers documentation

RF-DETR

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

and get access to the augmented documentation experience

to get started

Эта модель была опубликована в HF papers 24.07.2024 и добавлена в Hugging Face Transformers 07.05.2026.

PyTorch

RF-DETR

RF-DETR предлагает архитектуру Receptive Field Detection Transformer (DETR), разработанную для конкуренции с доминирующей серией YOLO и превосходства над ней в задачах детектирования объектов в реальном времени. Она обеспечивает новый баланс между скоростью (латентностью) и точностью (mAP), сочетая последние достижения в области трансформеров с эффективными решениями в проектировании.

Архитектура RF-DETR отличается простой и эффективной структурой: DINOv2 Backbone, Projector и неглубокий DETR Decoder. Она повышает эффективность и скорость архитектуры DETR за счёт следующих ключевых модификаций:

  1. Backbone DINOv2: Использует мощный backbone DINOv2 для надежного извлечения признаков.
  2. Обучение Group DETR: использует Group-Wise One-to-Many Assignment на этапе обучения для ускорения сходимости.
  3. Более богатый вход: агрегирует многоуровневые признаки из backbone и использует проектор C2f (аналогично YOLOv8) для передачи многомасштабных признаков.
  4. Faster Decoder: использует неглубокий 3-слойный декодер DETR с деформируемым кросс-вниманием для снижения задержки.
  5. Оптимизированные запросы: Используется схема смешанных запросов, объединяющая обучаемые контентные запросы и генерируемые пространственные запросы.

Все доступные контрольные точки RF-DETR можно найти в организации Roboflow. Исходный код доступен здесь.

Благодаря маппингу весов RfDetr совместим с моделями из исходной библиотеки rf-detr, а также с моделями, обученными на платформе Roboflow. Это означает, что вы можете обучать модель на платформе Roboflow, а затем использовать RfDetr в transformers для импорта весов и развертывания модели в любом окружении.

Щёлкните по моделям RF-DETR в боковой панели справа, чтобы увидеть больше примеров применения RF-DETR к различным задачам обнаружения объектов.

Приведённый ниже пример демонстрирует, как выполнять обнаружение объектов с помощью Pipeline и класса AutoModel.

Пайплайн
AutoModel
from transformers import pipeline
import torch

pipeline = pipeline("object-detection", model="Roboflow/rf-detr-medium", device_map="auto")

pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")

Визуализация результатов с надзором

Библиотеку supervision можно использовать для визуализации результатов обнаружения и сегментации. Установите её с помощью pip install supervision.

Обнаружение объектов
Сегментация экземпляров
from transformers import AutoImageProcessor, AutoModelForObjectDetection
from PIL import Image
import supervision as sv

from huggingface_hub.utils import httpx
from io import BytesIO
import torch

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(BytesIO(httpx.get(url).content))

image_processor = AutoImageProcessor.from_pretrained("Roboflow/rf-detr-medium")
model = AutoModelForObjectDetection.from_pretrained("Roboflow/rf-detr-medium", device_map="auto")

inputs = image_processor(images=image, return_tensors="pt").to(model.device)

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

results = image_processor.post_process_object_detection(
    outputs, target_sizes=torch.tensor([image.height, image.width]), threshold=0.3
)[0]

detections = sv.Detections.from_transformers(
    transformers_results=results, id2label=model.config.id2label
)

box_annotator = sv.BoxAnnotator()
label_annotator = sv.LabelAnnotator()

annotated_image = image.copy()
annotated_image = box_annotator.annotate(annotated_image, detections)
annotated_image = label_annotator.annotate(annotated_image, detections)

sv.plot_image(annotated_image)

Ресурсы

RfDetrConfig

класс transformers.RfDetrConfig

< >

( 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_expansion: float = 0.5c2f_num_blocks: int = 3activation_function: str = 'silu'dropout: float = 0.1decoder_ffn_dim: int = 2048decoder_n_points: int = 4decoder_layers: int = 3decoder_self_attention_heads: int = 8decoder_cross_attention_heads: int = 16decoder_activation_function: str = 'relu'num_queries: int = 300attention_bias: bool = Trueattention_dropout: float | int = 0.0activation_dropout: float | int = 0.0group_detr: int = 13init_std: float = 0.02disable_custom_kernels: bool = Trueclass_cost: int | float = 2bbox_cost: int | float = 5giou_cost: int | float = 2class_loss_coefficient: int | float = 1dice_loss_coefficient: int | float = 1bbox_loss_coefficient: int | float = 5giou_loss_coefficient: int | float = 2eos_coefficient: float = 0.1focal_alpha: float = 0.25auxiliary_loss: bool = Trued_model: int = 256layer_norm_eps: float = 1e-05num_feature_levels: int = 1mask_loss_coefficient: int | float = 1mask_point_sample_ratio: int = 16mask_downsample_ratio: int = 4mask_class_loss_coefficient: int | float = 5.0mask_dice_loss_coefficient: int | float = 5.0segmentation_head_activation_function: str = 'gelu'intermediate_size: int = 1024 )

Параметры

  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], необязательный) — Конфигурация модели-бэкбона.
  • hidden_expansion (float, необязательный, по умолчанию 0.5) — Коэффициент расширения для скрытых размерностей в слоях проектора.
  • c2f_num_blocks (int, необязательный, по умолчанию 3) — Количество блоков в слое C2F.
  • activation_function (str, необязательный, по умолчанию "silu") — Нелинейная функция активации в проекторе. Поддерживаемые значения: "silu", "relu", "gelu".
  • dropout (float, необязательный, по умолчанию 0.1) — Доля для всех слоёв dropout.
  • decoder_ffn_dim (int, необязательный, по умолчанию 2048) — Размерность «промежуточного» (часто называемого feed-forward) слоя в декодере.
  • decoder_n_points (int, необязательный, по умолчанию 4) — Количество выбранных ключей на каждом уровне признаков для каждой головы внимания в декодере.
  • decoder_layers (int, необязательный, по умолчанию 3) — Количество декодерных слоёв в трансформере.
  • decoder_self_attention_heads (int, необязательный, по умолчанию 8) — Количество головок внимания в каждом слое внимания для само-внимания декодера.
  • decoder_cross_attention_heads (int, необязательный, по умолчанию 16) — Количество голов внимания для каждого слоя внимания в кросс-внимании декодера.
  • decoder_activation_function (str, необязательный, по умолчанию "relu") — Нелинейная функция активации в декодере. Поддерживаемые значения: "relu", "silu", "gelu".
  • num_queries (int, необязательный, по умолчанию 300) — Количество запросов объектов, то есть слотов для обнаружения. Это максимальное число объектов, которые RfDetrModel может обнаружить на одном изображении.
  • attention_bias (bool, необязательный, по умолчанию True) — Использовать ли смещение (bias) в слоях проекции query, key, value и output при само-внимании.
  • attention_dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для вероятностей внимания.
  • activation_dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для активаций внутри полносвязного слоя.
  • group_detr (int, необязательный, по умолчанию 13) — Количество групп для механизма внимания Group DETR, который помогает снизить вычислительную сложность.
  • init_std (float, необязательный, по умолчанию 0.02) — Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов.
  • disable_custom_kernels (bool, необязательный, по умолчанию True) — Отключает использование собственных CUDA- и CPU-ядер. Этот параметр необходим для экспорта в ONNX, так как собственные ядра не поддерживаются экспортом PyTorch в ONNX.
  • class_cost (Union[int, float], необязательный, по умолчанию 2) — Относительный вес ошибки классификации в стоимости венгерского сопоставления.
  • bbox_cost (Union[int, float], необязательный, по умолчанию 5) — Относительный вес ошибки L1 для ограничивающих прямоугольников в стоимости венгерского сопоставления.
  • giou_cost (Union[int, float], необязательный, по умолчанию 2) — Относительный вес функции потерь обобщённого IoU в стоимости венгерского сопоставления.
  • class_loss_coefficient (float, необязательный, по умолчанию 1) — Относительный вес потерь классификации в стоимости венгерского сопоставления.
  • dice_loss_coefficient (float, необязательный, по умолчанию 1) — Относительный вес потерь DICE/F-1 в функции потерь обнаружения объектов.
  • bbox_loss_coefficient (float, необязательный, по умолчанию 5) — Относительный вес потерь L1 для ограничивающих прямоугольников в функции потерь обнаружения объектов.
  • giou_loss_coefficient (float, необязательный, по умолчанию 2) — Относительный вес функции потерь обобщённого IoU в функции потерь обнаружения объектов.
  • eos_coefficient (float, необязательный, по умолчанию 0.1) — Относительный вес класса «объект отсутствует» в функции потерь обнаружения объектов.
  • focal_alpha (float, необязательный, по умолчанию 0.25) — Параметр alpha в функции потерь focal loss.
  • auxiliary_loss (bool, необязательный, по умолчанию True) — Использовать ли вспомогательные потери декодирования (потери на каждом слое декодера).
  • d_model (int, необязательный, по умолчанию 256) — Размер слоев кодировщика и пулера.
  • layer_norm_eps (float, необязательный, по умолчанию 1e-05) — Значение epsilon, используемое слоями нормализации.
  • num_feature_levels (int, необязательный, по умолчанию 1) — Количество уровней признаков, используемых в многомасштабном деформируемом внимании.
  • mask_loss_coefficient (float, необязательный, по умолчанию 1) — Относительный вес функции потерь Focal в функции потерь масок для сегментации объектов.
  • mask_point_sample_ratio (int, необязательный, по умолчанию 16) — Количество точек, отбираемых для вычисления потерь маски.
  • mask_downsample_ratio (int, необязательный, по умолчанию 4) — Коэффициент уменьшения разрешения сегментационных масок относительно разрешения входного изображения.
  • mask_class_loss_coefficient (float, необязательный, по умолчанию 5.0) — Относительный вес функции потерь Focal в функции потерь для сегментации объектов.
  • mask_dice_loss_coefficient (float, необязательный, по умолчанию 5.0) — Относительный вес функции потерь DICE/F-1 в функции потерь для сегментации экземпляров.
  • segmentation_head_activation_function (str, необязательный, по умолчанию "gelu") — Нелинейная функция активации в сегментационной голове. Поддерживаемые значения: "relu", "silu", "gelu".
  • intermediate_size (int, необязательный, по умолчанию 1024) — Размерность представлений MLP.

Это класс конфигурации для хранения настроек модели RfDetrModel. Он используется для создания модели Rf Detr в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации Roboflow/rf-detr-base

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Примеры:

>>> from transformers import RfDetrConfig, RfDetrModel

>>> # Initializing a RF-DETR roboflow/rf-detr-base style configuration
>>> configuration = RfDetrConfig()

>>> # Initializing a model (with random weights) from the Roboflow/rf-detr-base style configuration
>>> model = RfDetrModel(configuration)

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

RfDetrDinov2Config

класс transformers.RfDetrDinov2Config

< >

( 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 = Nonehidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12mlp_ratio: int = 4hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.0attention_probs_dropout_prob: float | int = 0.0initializer_range: float = 0.02layer_norm_eps: float = 1e-06image_size: int | list[int] | tuple[int, int] = 224patch_size: int | list[int] | tuple[int, int] = 14num_channels: int = 3qkv_bias: bool = Truelayerscale_value: float = 1.0drop_path_rate: float | int = 0.0use_swiglu_ffn: bool = False_out_features: list[str] | None = None_out_indices: list[int] | None = Noneapply_layernorm: bool = Truereshape_hidden_states: bool = Trueuse_mask_token: bool = Truenum_windows: int = 4 )

Параметры

  • hidden_size (int, необязательный, по умолчанию 768) — Размерность скрытых представлений.
  • num_hidden_layers (int, необязательный, по умолчанию 12) — Количество скрытых слоев в декодере Transformer.
  • num_attention_heads (int, необязательный, по умолчанию 12) — Количество головок внимания в каждом слое внимания декодера Transformer.
  • mlp_ratio (int, необязательный, по умолчанию 4) — Соотношение скрытого размера MLP к размеру эмбеддинга.
  • hidden_act (str, необязательный, по умолчанию gelu) — Нелинейная функция активации (функция или строка) в декодере. Например, "gelu", "relu", "silu" и т. д.
  • hidden_dropout_prob (Union[float, int], необязательный, по умолчанию 0.0) — Вероятность dropout для всех полносвязных слоёв в блоках эмбеддингов, энкодера и пуллера.
  • attention_probs_dropout_prob (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для вероятностей внимания.
  • initializer_range (float, необязательный, по умолчанию 0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов.
  • layer_norm_eps (float, необязательный, по умолчанию 1e-06) — Значение epsilon, используемое слоями нормализации.
  • image_size (Union[int, list[int], tuple[int, int]], необязательный, по умолчанию 224) — Размер (разрешение) каждого изображения.
  • patch_size (Union[int, list[int], tuple[int, int]], необязательный, по умолчанию 14) — Размер (разрешение) каждого патча.
  • num_channels (int, необязательный, по умолчанию 3) — Количество входных каналов.
  • qkv_bias (bool, необязательный, по умолчанию True) — Добавлять ли смещение к запросам, ключам и значениям.
  • layerscale_value (float, необязательный, по умолчанию 1.0) — Начальное значение для layer scale.
  • drop_path_rate (float, необязательный, по умолчанию 0.0) — Частота стохастической глубины для каждого образца (при применении в основном пути остаточных слоёв).
  • use_swiglu_ffn (bool, необязательный, по умолчанию False) — Использовать ли свёрточную нейронную сеть SwiGLU.
  • apply_layernorm (bool, необязательный, по умолчанию True) — Указывает, следует ли применять нормализацию слоя к картам признаков, если модель используется в качестве базовой (backbone).
  • reshape_hidden_states (bool, необязательный, по умолчанию True) — Определяет, следует ли преобразовать карты признаков в 4D-тензоры формы (batch_size, d_model, height, width), если модель используется в качестве базовой. Если False, карты признаков будут 3D-тензорами формы (batch_size, seq_len, d_model).
  • use_mask_token (bool, необязательный, по умолчанию True) — Использовать ли mask_token в эмбеддингах.
  • num_windows (int, необязательный, по умолчанию 4) — Количество окон, используемых для оконного внимания. Если равно 1, оконное внимание не используется.

Это класс конфигурации для хранения настроек модели RfDetrModel. Он используется для создания модели Rf Detr в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации Roboflow/rf-detr-base

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Пример:

>>> from transformers import RfDetrDinov2Config, RfDetrDinov2Backbone

>>> # Initializing a RfDetrDinov2 base style configuration
>>> configuration = RfDetrDinov2Config()

>>> # Initializing a model (with random weights) from the base style configuration
>>> model = RfDetrDinov2Backbone(configuration)

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

RfDetrImageProcessor

класс transformers.RfDetrImageProcessor

< >

( **kwargs: *<class 'transformers.models.rf_detr.image_processing_rf_detr.RfDetrImageProcessorKwargs'> )

Параметры

  • do_convert_rgb (bool, kwargs, optional) — Следует ли преобразовать изображение в RGB.
  • do_resize (bool, kwargs, optional, по умолчанию True) — Указывает, нужно ли изменять размер изображения.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, по умолчанию {'shortest_edge' -- 800, 'longest_edge': 1333}): Определяет максимальные размеры входных данных для модели.
  • default_to_square (bool, kwargs, optional, по умолчанию False) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если 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) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления PILImageResampling. Влияет только в том случае, если do_resize установлено в True.
  • do_rescale (bool, kwargs, optional, по умолчанию True) — Указывает, следует ли выполнять рескейлинг изображения.
  • rescale_factor (float, kwargs, optional, по умолчанию 0.00392156862745098) — Коэффициент масштабирования, применяемый к изображению, если do_rescale установлен в True.
  • do_normalize (bool, kwargs, optional, по умолчанию True) — Указывает, следует ли нормализовать изображение.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию [0.485, 0.456, 0.406]) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional, по умолчанию [0.229, 0.224, 0.225]) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • do_pad (bool, kwargs, optional, по умолчанию 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, optional) — Выполнять ли центрированную обрезку изображения.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается только 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: изображение в формате (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Возвращает стопку тензоров, если установлено значение 'pt', иначе возвращает список тензоров.
  • disable_grouping (bool, kwargs, optional) — Определяет, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, описанных здесь: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, optional) — Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.
  • format (str, kwargs, optional, по умолчанию AnnotationFormat.COCO_DETECTION) — Формат данных аннотаций. Одно из значений: “coco_detection” или “coco_panoptic”.
  • do_convert_annotations (bool, kwargs, optional, по умолчанию True) — Управляет преобразованием аннотаций в формат, ожидаемый моделью RF_DETR. Преобразует ограничивающие рамки в формат (center_x, center_y, width, height) в диапазоне [0, 1]. Может быть переопределено параметром do_convert_annotations в методе preprocess.

Создаёт процессор изображений RfDetrImageProcessor.

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = Nonereturn_segmentation_masks: bool | None = Nonemasks_path: str | pathlib.Path | None = None**kwargs: *<class 'transformers.models.rf_detr.image_processing_rf_detr.RfDetrImageProcessorKwargs'> ) → ~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.
  • annotations (AnnotationType или list[AnnotationType], необязательный) — Аннотации, которые преобразуются в соответствии с применяемым к изображениям заполнением (padding).
  • return_segmentation_masks (bool, необязательный, по умолчанию self.return_segmentation_masks) — Возвращать ли маски сегментации.
  • masks_path (str или pathlib.Path, необязательный) — Путь к каталогу, содержащему маски сегментации.
  • do_convert_rgb (bool, kwargs, optional) — Следует ли преобразовать изображение в RGB.
  • do_resize (bool, kwargs, optional) — Указывает, нужно ли изменить размер изображения.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Описывает максимальные размеры входных данных для модели.
  • default_to_square (bool, kwargs, optional) — Определяет, следует ли по умолчанию использовать квадратное изображение при изменении размера, если size является целым числом.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Размер выходного изображения после применения center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Фильтр ресемплинга, используемый при изменении размера изображения. Может быть одним из значений перечисления PILImageResampling. Влияет только в том случае, если do_resize установлено в True.
  • do_rescale (bool, kwargs, optional) — Нужно ли перемасштабировать изображение.
  • rescale_factor (float, kwargs, optional) — Коэффициент масштабирования, применяемый к изображению, если do_rescale установлен в True.
  • do_normalize (bool, kwargs, optional) — Нужно ли нормализовать изображение.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, optional) — Среднее значение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional) — Стандартное отклонение изображения, используемое для нормализации. Влияет только в том случае, если do_normalize установлено в True.
  • do_pad (bool, kwargs, optional) — Определяет, нужно ли выравнивать изображение. Выравнивание выполняется либо до максимального размера в батче, либо до фиксированного квадратного размера для каждого изображения. Точная стратегия выравнивания зависит от модели.
  • 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, optional) — Выполнять ли центрированную обрезку изображения.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Поддерживается только 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: изображение в формате (height, width).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Устройство, на котором будут обрабатываться видео. Если не задано, устройство определяется на основе входных видео.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Возвращает стопку тензоров, если установлено значение 'pt', иначе возвращает список тензоров.
  • disable_grouping (bool, kwargs, optional) — Определяет, следует ли отключить группировку изображений по размеру для их индивидуальной обработки, а не пачками. Если значение равно None, оно будет установлено в True, если изображения находятся на CPU, и в False в противном случае. Этот выбор основан на эмпирических наблюдениях, описанных здесь: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, optional) — Количество токенов изображения, используемых для каждого изображения во входных данных. Добавлено для обратной совместимости, но в будущих моделях это значение следует задавать как атрибут процессора.
  • format (str, kwargs, optional, по умолчанию AnnotationFormat.COCO_DETECTION) — Формат данных аннотаций. Одно из значений: “coco_detection” или “coco_panoptic”.
  • do_convert_annotations (bool, kwargs, optional, по умолчанию True) — Управляет преобразованием аннотаций в формат, ожидаемый моделью RF_DETR. Преобразует ограничивающие рамки в формат (center_x, center_y, width, height) в диапазоне [0, 1]. Может быть переопределено параметром do_convert_annotations в методе preprocess.

Возвращает

~image_processing_base.BatchFeature

  • data (dict) — Словарь списков/массивов/тензоров, возвращаемый методом call (‘pixel_values’ и т. д.).
  • tensor_type (Union[None, str, TensorType], необязательный) — Здесь можно указать tensor_type, чтобы при инициализации преобразовать списки целых чисел в тензоры PyTorch/Numpy.

post_process_object_detection

< >

( outputsthreshold: float = 0.5target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = Nonetop_k: int | None = None ) → list[Dict]

Параметры

  • outputs (RfDetrObjectDetectionOutput) — Сырые выходные данные модели.
  • threshold (float, необязательный) — Порог оценки для сохранения предсказаний обнаружения объектов.
  • target_sizes (torch.Tensor or list[tuple[int, int]], необязательный) — Тензор формы (batch_size, 2) или список кортежей (tuple[int, int]), содержащих целевой размер (height, width) каждого изображения в батче. Если не задано, предсказания не будут масштабироваться.

Возвращает

list[Dict]

Список словарей, где каждый словарь содержит оценки, метки и рамки для изображения в батче, как их предсказал модель.

Преобразует необработанный вывод RfDetrForObjectDetection в итоговые ограничивающие рамки в формате (top_left_x, top_left_y, bottom_right_x, bottom_right_y). Поддерживается только PyTorch.

post_process_instance_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.0target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool = Falsereturn_binary_maps: bool = Falsetop_k: int | None = None**kwargs ) → list[dict]

Параметры

  • outputs ([RfDetrInstanceSegmentationOutput]) — Сырые выходные данные модели.
  • threshold (float, optional, по умолчанию 0.5) — Порог оценки для сохранения предсказанных масок экземпляров.
  • mask_threshold (float, optional, по умолчанию 0.0) — Порог для бинаризации предсказанных масок.
  • target_sizes (list[tuple[int, int]], optional) — Целевые размеры (height, width) для каждого изображения. Если не заданы, маски не масштабируются.
  • return_coco_annotation (bool, optional, по умолчанию False) — Если True, возвращает карты сегментации в формате COCO run-length encoding вместо тензоров. Взаимоисключаемый с return_binary_maps.
  • return_binary_maps (bool, optional, по умолчанию False) — Если True, возвращает карты сегментации в виде стека тензоров с бинарными масками инстансов (по одной на каждый обнаруженный инстанс), без разрешения пересечений. Это соответствует формату выходных данных исходного пакета rfdetr. Взаимоисключаемый параметр с return_coco_annotation.
  • top_k (int, optional) — Максимальное количество кандидатур запросов, оцениваемых до применения порога по значению. По умолчанию равно общему числу запросов.

Возвращает

list[dict]

Один словарь на изображение с ключами:

  • segmentation — Tensor[H, W] с идентификаторами сегментов типа int32 (-1 = фон), Tensor[num_instances, H, W] с булевыми бинарными масками, если return_binary_maps=True, или список RLE-кодирований, если return_coco_annotation=True.
  • segments_info — список словарей с ключами id, label_id и score.

Преобразует выход [RfDetrForInstanceSegmentation] в предсказания сегментации экземпляров.

RfDetrModel

класс transformers.RfDetrModel

< >

( config: RfDetrConfig )

Параметры

  • config (RfDetrConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Модель LW Detr без дополнительных компонентов (состоящая из backbone и decoder Transformer), на выходе которой выдаются «сырые» hidden-states без какого-либо специализированного head.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

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

Параметры

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size)) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью RfDetrImageProcessor. Подробности см. в RfDetrImageProcessor.call() (processor_class использует RfDetrImageProcessor для обработки изображений).
  • pixel_mask (torch.LongTensor формы (batch_size, height, width), , необязательный) — Маска для исключения пикселей padding из вычислений внимания. Значения маски из диапазона [0, 1]:
    • 1 для пикселей, которые являются реальными (т. е. не замаскированы),
    • 0 для пикселей, являющихся заполнением (т. е. замаскированных).

    Что такое маски внимания?

Возвращает

RfDetrModelOutput или tuple(torch.Tensor)

RfDetrModelOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (RfDetrConfig) и входных данных.

Прямой проход модели RF-DETR. Конвейер выполняется следующим образом:

  1. Сгенерируйте начальный набор эмбеддингов запросов объектов и предложений пространственных локаций из сглаженного (flattened) вывода бэкбона.
  2. Инициализируйте хранилище для уточненных предсказаний на этапе энкодера (с учетом многогрупповых структур запросов) и итеративно уточняйте объектные запросы и их координаты для каждой группы запросов, чтобы извлечь кандидатов с наивысшей уверенностью на этапе энкодера.
  3. Инициализируйте обучаемые признаки запросов и пространственные опорные точки (при выводе ограничивайтесь основной группой ради эффективности).
  4. Проекция базовых опорных точек по всей выборке, их уточнение с помощью предсказанных корректировок координат (перенос внимания на обнаруженные расположения объектов перед декодированием) и расширение признаков целевых запросов до размерности выборки.
  5. Передайте уточнённые запросы и обновлённые опорные точки в декодер трансформера, чтобы агрегировать детальный пространственный контекст из многомасштабных признаков.
  • last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — Последовательность скрытых состояний на выходе последнего слоя модели.

  • init_reference_points (torch.Tensor формы (batch_size, num_queries, 4)) — Начальные опорные точки, передаваемые через декодер Transformer.

  • intermediate_hidden_states (torch.Tensor формы (batch_size, config.decoder_layers, num_queries, d_model)) — Стек промежуточных скрытых состояний (выход каждого слоя декодера).

  • intermediate_reference_points (torch.Tensor формы (batch_size, config.decoder_layers, num_queries, 4)) — Стек промежуточных опорных точек (опорные точки каждого слоя декодера).

  • enc_outputs_class (torch.Tensor формы (batch_size, sequence_length, config.num_labels), необязательный, возвращается, если config.with_box_refine=True и config.two_stage=True) — Оценки предсказанных ограничивающих прямоугольников, где верхние config.two_stage_num_proposals прямоугольников с наивысшими оценками выбираются в качестве региональных предложений на первом этапе. Результат бинарной классификации ограничивающих прямоугольников (т. е. передний план и фон).

  • enc_outputs_coord_logits (torch.Tensor формы (batch_size, sequence_length, 4), необязательный, возвращается, если config.with_box_refine=True и config.two_stage=True) — Логиты координат предсказанных ограничивающих прямоугольников на первом этапе.

  • hidden_states (tuple[torch.Tensor, ...], необязательный, возвращается при передаче output_hidden_states=True или когда config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.

  • attentions (tuple[torch.Tensor, ...], необязательный, возвращается при передаче output_attentions=True или когда config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

  • cross_attentions (tuple[torch.Tensor, ...], необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания кросс-внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах кросс-внимания.

  • backbone_features (list из torch.Tensor формы (batch_size, config.num_channels, config.image_size, config.image_size)) — Признаки из backbone.

Примеры:

>>> from transformers import AutoImageProcessor, RfDetrModel
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_processor = AutoImageProcessor.from_pretrained("Roboflow/rf-detr-base")
>>> model = RfDetrModel.from_pretrained("Roboflow/rf-detr-base")

>>> inputs = image_processor(images=image, return_tensors="pt")

>>> outputs = model(**inputs)

>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 200, 256]

RfDetrForObjectDetection

класс transformers.RfDetrForObjectDetection

< >

( config: RfDetrConfig )

Параметры

  • config (RfDetrConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Модель LW DETR (состоящая из backbone и decoder Transformer) с головками для обнаружения объектов, предназначенная для таких задач, как COCO detection.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( pixel_values: Tensor = Nonepixel_mask: typing.Optional[torch.LongTensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → RfDetrObjectDetectionOutput or tuple(torch.Tensor)

Параметры

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size), необязательный) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью RfDetrImageProcessor. Подробности см. в RfDetrImageProcessor.call() (processor_class использует RfDetrImageProcessor для обработки изображений).
  • pixel_mask (torch.LongTensor формы (batch_size, height, width), , необязательный) — Маска для исключения пикселей padding из вычислений внимания. Значения маски из диапазона [0, 1]:
    • 1 для пикселей, которые являются реальными (т. е. не замаскированы),
    • 0 для пикселей, являющихся заполнением (т. е. замаскированных).

    Что такое маски внимания?

  • labels (list[Dict] длины (batch_size,), необязательный) — Метки для вычисления функции потерь двудольного сопоставления. Список словарей, каждый из которых содержит как минимум следующие два ключа: ‘class_labels’ и ‘boxes’ (метки классов и ограничивающие рамки изображения в батче соответственно). Метки классов должны представлять собой torch.LongTensor длины (number of bounding boxes in the image,), а рамки — torch.Tensor формы (number of bounding boxes in the image, 4).

Возвращает

RfDetrObjectDetectionOutput или tuple(torch.Tensor)

RfDetrObjectDetectionOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (RfDetrConfig) и входных данных.

Прямой проход выполняется следующим образом:

  1. Обработайте визуальный вход с помощью базовой модели RF-DETR, чтобы получить последнее скрытое состояние трансформера и последнюю последовательность опорных точек.
  2. Первый этап: генерация логитов классификации из эмбеддингов предложенных объектных запросов, сгенерированных энкодером.
  3. Второй этап: предсказание финальных меток классификации и уточненных ограничивающих прямоугольников с использованием последнего скрытого состояния декодера и последних опорных точек.
  • loss (torch.Tensor формы (1,), необязательный, возвращается, если предоставлены labels) — Суммарная потеря, представляющая собой линейную комбинацию отрицательного логарифма правдоподобия (кросс-энтропии) для предсказания класса и потери для ограничивающих прямоугольников. Последняя определяется как линейная комбинация L1-потери и обобщенной масштабно-инвариантной потери IoU.

  • loss_dict (Dict, необязательный) — словарь, содержащий отдельные значения потерь. Полезен для логирования.

  • logits (torch.Tensor формы (batch_size, num_queries, num_classes + 1)) — Логиты классификации (включая no-object) для всех запросов.

  • pred_boxes (torch.Tensor формы (batch_size, num_queries, 4)) — нормализованные координаты границ для всех запросов, представленные в виде (center_x, center_y, width, height). Эти значения нормализованы в диапазоне [0, 1] относительно размера каждого отдельного изображения в батче (без учета возможного выравнивания). Для получения ненормализованных границ используйте ~DeformableDetrProcessor.post_process_object_detection.

  • auxiliary_outputs (list[Dict], необязательный) — Необязательный параметр, возвращается только при активации вспомогательных потерь (т. е. когда config.auxiliary_loss установлено в True) и при наличии меток. Это список словарей, содержащих два указанных выше ключа (logits и pred_boxes) для каждого слоя декодера.

  • init_reference_points (torch.Tensor формы (batch_size, num_queries, 4)) — Начальные опорные точки, передаваемые через декодер Transformer.

  • last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — Последовательность скрытых состояний на выходе последнего слоя модели.

  • intermediate_hidden_states (torch.Tensor формы (batch_size, config.decoder_layers, num_queries, d_model)) — Стек промежуточных скрытых состояний (выход каждого слоя декодера).

  • intermediate_reference_points (torch.Tensor формы (batch_size, config.decoder_layers, num_queries, 4)) — Стек промежуточных опорных точек (опорные точки каждого слоя декодера).

  • enc_outputs_class (torch.Tensor формы (batch_size, sequence_length, config.num_labels), необязательный, возвращается, если config.with_box_refine=True и config.two_stage=True) — Оценки предсказанных ограничивающих прямоугольников, где верхние config.two_stage_num_proposals прямоугольников с наивысшими оценками выбираются в качестве региональных предложений на первом этапе. Результат бинарной классификации ограничивающих прямоугольников (т. е. передний план и фон).

  • enc_outputs_coord_logits (torch.Tensor формы (batch_size, sequence_length, 4), необязательный, возвращается, если config.with_box_refine=True и config.two_stage=True) — Логиты координат предсказанных ограничивающих прямоугольников на первом этапе.

  • hidden_states (tuple[torch.Tensor, ...], необязательный, возвращается при передаче output_hidden_states=True или когда config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.

  • attentions (tuple[torch.Tensor, ...], необязательный, возвращается при передаче output_attentions=True или когда config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

  • cross_attentions (tuple[torch.Tensor, ...], необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания кросс-внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах кросс-внимания.

  • backbone_features (list из torch.Tensor формы (batch_size, config.num_channels, config.image_size, config.image_size)) — Признаки из backbone.

Примеры:

>>> from transformers import AutoImageProcessor, RfDetrForObjectDetection
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_processor = AutoImageProcessor.from_pretrained("Roboflow/rf-detr-base")
>>> model = RfDetrForObjectDetection.from_pretrained("Roboflow/rf-detr-base")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)

>>> # convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> target_sizes = torch.tensor([image.size[::-1]])
>>> results = image_processor.post_process_object_detection(outputs, threshold=0.5, target_sizes=target_sizes)[
...     0
... ]
>>> for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
...     box = [round(i, 2) for i in box.tolist()]
...     print(
...         f"Detected {model.config.id2label[label.item()]} with confidence "
...         f"{round(score.item(), 3)} at location {box}"
...     )
Detected cat with confidence 0.8 at location [16.5, 52.84, 318.25, 470.78]
Detected cat with confidence 0.789 at location [342.19, 24.3, 640.02, 372.25]
Detected remote with confidence 0.633 at location [40.79, 72.78, 176.76, 117.25]

RfDetrForInstanceSegmentation

класс transformers.RfDetrForInstanceSegmentation

< >

( config: RfDetrConfig )

forward

< >

( pixel_values: Tensor = Nonepixel_mask: typing.Optional[torch.LongTensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

Параметры

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size), необязательный) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью RfDetrImageProcessor. Подробности см. в RfDetrImageProcessor.call() (processor_class использует RfDetrImageProcessor для обработки изображений).
  • pixel_mask (torch.LongTensor формы (batch_size, height, width), , необязательный) — Маска для исключения пикселей padding из вычислений внимания. Значения маски из диапазона [0, 1]:
    • 1 для пикселей, которые являются реальными (т. е. не замаскированы),
    • 0 для пикселей, являющихся заполнением (т. е. замаскированных).

    Что такое маски внимания?

  • labels (list[Dict] длины (batch_size,), необязательный) — Метки для вычисления функции потерь двудольного сопоставления. Список словарей, каждый из которых содержит как минимум следующие два ключа: ‘class_labels’ и ‘boxes’ (метки классов и ограничивающие рамки изображения в батче соответственно). Метки классов должны представлять собой torch.LongTensor длины (number of bounding boxes in the image,), а рамки — torch.Tensor формы (number of bounding boxes in the image, 4).

Прямой проход модели RF-DETR для сегментации объектов. Конвейер выполняется следующим образом:

  1. Обработайте визуальный вход с помощью базовой модели RF-DETR, чтобы получить многомасштабные пространственные признаки, эмбеддинги запросов и историю их преобразований.
  2. Сгенерировать логиты классификации и начальные маски сегментации из предложенных кодировщиком эмбеддингов запросов объектов (первый этап).
  3. Предскажите итоговые метки классификации и уточнённые ограничивающие рамки, используя последнее скрытое состояние декодера (второй этап).
  4. Передайте пространственные признаки высокого разрешения и скрытые состояния запросов через сегментационную головку, чтобы получить финальные детальные маски инстансов.

RfDetrDinov2Backbone

класс transformers.RfDetrDinov2Backbone

< >

( config: RfDetrDinov2Config )

Параметры

  • config (RfDetrDinov2Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Для загрузки весов модели используйте метод from_pretrained().

Backbone RfDetrDinov2, предназначенный для использования в таких фреймворках, как DETR и MaskFormer.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BackboneOutput or tuple(torch.Tensor)

Параметры

  • pixel_values (torch.Tensor формы (batch_size, num_channels, image_size, image_size)) — Тензоры, соответствующие входным изображениям. Значения пикселей можно получить с помощью RfDetrImageProcessor. Подробности см. в RfDetrImageProcessor.call() (processor_class использует RfDetrImageProcessor для обработки изображений).

Возвращает

BackboneOutput или tuple(torch.Tensor)

BackboneOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (RfDetrConfig) и входных данных.

Метод forward класса RfDetrDinov2Backbone переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • feature_maps (tuple(torch.Tensor) формы (batch_size, num_channels, height, width)) — Карты признаков на каждом этапе.

  • hidden_states (tuple(torch.Tensor), необязательный, возвращается при передаче output_hidden_states=True или при config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода эмбеддингов + один для вывода каждого слоя) с формой (batch_size, sequence_length, hidden_size) или (batch_size, num_channels, height, width) в зависимости от базовой модели.

    Скрытые состояния модели на выходе каждого этапа, а также выходные значения начального слоя встраивания.

  • attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length). Применимо только в том случае, если базовая модель использует механизм внимания.

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

Примеры:

>>> from transformers import AutoImageProcessor, AutoBackbone
>>> import torch
>>> from PIL import Image
>>> import requests

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> processor = AutoImageProcessor.from_pretrained("facebook/dinov2-base")
>>> model = AutoBackbone.from_pretrained(
...     "facebook/dinov2-base", out_features=["stage2", "stage5", "stage8", "stage11"]
... )

>>> inputs = processor(image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
[1, 768, 16, 16]
Update on GitHub