Transformers documentation
DETR
Este modelo se publicó en HF papers el 26 de mayo de 2020 y se contribuyó a Hugging Face Transformers el 9 de junio de 2021.
DETR
DETR consiste en un backbone convolucional seguido de un Transformer encoder-decoder que puede entrenarse de extremo a extremo para la detección de objetos. Simplifica en gran medida la complejidad de modelos como Faster-R-CNN y Mask-R-CNN, que utilizan elementos como propuestas de región, el procedimiento de supresión de máximos no máximos y la generación de anclas. Además, DETR también puede extenderse de forma natural para realizar segmentación panóptica, simplemente añadiendo una cabeza de máscara sobre las salidas del decodificador.
Puedes encontrar todos los puntos de control originales de DETR bajo la organización AI at Meta.
Este modelo fue aportado por nielsr.
Haz clic en los modelos DETR en la barra lateral derecha para ver más ejemplos de cómo aplicar DETR a diferentes tareas de detección de objetos y segmentación.
Establezca
use_kernels=Trueen from_pretrained() para reemplazar las capas compatibles con kernels optimizados del Hub. Consulte Carga de kernels para obtener más información.
El siguiente ejemplo demuestra cómo realizar la detección de objetos con la clase Pipeline o la clase AutoModel.
from transformers import pipeline
pipeline = pipeline(
"object-detection",
model="facebook/detr-resnet-50",
device_map=0
)
pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForObjectDetection
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50")
model = AutoModelForObjectDetection.from_pretrained("facebook/detr-resnet-50", device_map="auto")
# prepare image for the model
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.size[::-1]]), threshold=0.3)
for result in results:
for score, label_id, box in zip(result["scores"], result["labels"], result["boxes"]):
score, label = score.item(), label_id.item()
box = [round(i, 2) for i in box.tolist()]
print(f"{model.config.id2label[label]}: {score:.2f} {box}")How DETR works
Aquí hay un resumen que explica cómo funciona DetrForObjectDetection:
Primero, una imagen se envía a través de un backbone convolucional preentrenado (en el artículo, los autores utilizan ResNet-50/ResNet-101). Supongamos que también añadimos una dimensión de batch. Esto significa que la entrada al backbone es un tensor de forma (batch_size, 3, height, width), asumiendo que la imagen tiene 3 canales de color (RGB). El backbone de la CNN produce un nuevo mapa de características de menor resolución, típicamente de forma (batch_size, 2048, height/32, width/32). A continuación, este se proyecta para que coincida con la dimensión oculta del Transformer de DETR, que por defecto es 256, utilizando una capa nn.Conv2D. Así, ahora tenemos un tensor de forma (batch_size, 256, height/32, width/32). Luego, el mapa de características se aplana y se transpone para obtener un tensor de forma (batch_size, seq_len, d_model) = (batch_size, width/32*height/32, 256). Por lo tanto, una diferencia con los modelos de NLP es que la longitud de la secuencia es en realidad más larga de lo habitual, pero con un d_model más pequeño (que en NLP suele ser 768 o superior).
A continuación, esto se envía a través del codificador, generando encoder_hidden_states de la misma forma (puedes considerarlos como características de la imagen). Después, las llamadas object queries se envían a través del decodificador. Se trata de un tensor de forma (batch_size, num_queries, d_model), donde num_queries suele establecerse en 100 e inicializarse con ceros. Estas incrustaciones de entrada son codificaciones posicionales aprendidas a las que los autores se refieren como object queries y, de manera similar al codificador, se suman a la entrada de cada capa de atención. Cada object query buscará un objeto particular en la imagen. El decodificador actualiza estas incrustaciones a través de múltiples capas de autoatención y atención codificador-decodificador para generar decoder_hidden_states de la misma forma: (batch_size, num_queries, d_model). A continuación, se añaden dos cabezas en la parte superior para la detección de objetos: una capa lineal para clasificar cada object query en uno de los objetos o “no object”, y una MLP para predecir las cajas delimitadoras de cada query.
El modelo se entrena utilizando una pérdida de bipartite matching: lo que realmente hacemos es comparar las clases y cajas delimitadoras predichas de cada una de las N = 100 consultas de objetos con las anotaciones de referencia, rellenas hasta la misma longitud N (de modo que si una imagen solo contiene 4 objetos, 96 anotaciones simplemente tendrán “no object” como clase y “no bounding box” como caja delimitadora). Se utiliza el algoritmo de emparejamiento húngaro para encontrar un mapeo uno a uno óptimo de cada una de las N consultas a cada una de las N anotaciones. A continuación, se emplean la entropía cruzada estándar (para las clases) y una combinación lineal de la L1 y la pérdida de IoU generalizada (para las cajas delimitadoras) para optimizar los parámetros del modelo.
DETR se puede extender de forma natural para realizar segmentación panóptica (que unifica la segmentación semántica y la segmentación de instancias). DetrForSegmentation añade una cabeza de máscara de segmentación sobre DetrForObjectDetection. La cabeza de máscaras se puede entrenar de forma conjunta o mediante un proceso de dos pasos, en el que primero se entrena un modelo DetrForObjectDetection para detectar cajas delimitadoras alrededor de “cosas” (instancias) y “materiales” (cosas de fondo como árboles, carreteras, cielo), y luego se congelan todos los pesos y se entrena solo la cabeza de máscaras durante 25 épocas. Experimentalmente, estos dos enfoques dan resultados similares. Tenga en cuenta que predecir cajas es necesario para que el entrenamiento sea posible, ya que el emparejamiento húngaro se calcula utilizando distancias entre cajas.
Notas
- DETR utiliza lo que se denominan consultas de objetos para detectar objetos en una imagen. El número de consultas determina la cantidad máxima de objetos que se pueden detectar en una sola imagen y, por defecto, se establece en 100 (consulte el parámetro
num_queriesde DetrConfig). Tenga en cuenta que es recomendable dejar un margen de seguridad (en COCO, los autores utilizaron 100, mientras que el número máximo de objetos en una imagen de COCO es de aproximadamente 70). - El decodificador de DETR actualiza los embeddings de consulta en paralelo. Esto difiere de los modelos de lenguaje como GPT-2, que utilizan decodificación autoregresiva en lugar de paralela. Por lo tanto, no se utiliza una máscara de atención causal.
- DETR añade embeddings de posición a los estados ocultos en cada capa de autoatención y atención cruzada antes de proyectarlos a consultas y claves. Para los embeddings de posición de la imagen, se puede elegir entre embeddings sinusoidales fijos o embeddings de posición absoluta aprendidos. De forma predeterminada, el parámetro
position_embedding_typede DetrConfig se establece en"sine". - Durante el entrenamiento, los autores de DETR encontraron útil emplear pérdidas auxiliares en el decodificador, especialmente para ayudar al modelo a predecir el número correcto de objetos de cada clase. Si estableces el parámetro
auxiliary_lossde DetrConfig enTrue, se añaden redes neuronales feedforward de predicción y pérdidas húngaras después de cada capa del decodificador (compartiendo parámetros las FFN). - Si desea entrenar el modelo en un entorno distribuido en varios nodos, debe actualizar la variable num_boxes en la clase DetrLoss de modeling_detr.py. Al entrenar en varios nodos, este valor debe establecerse como el número promedio de cajas objetivo en todos los nodos, como se puede ver en la implementación original aquí.
- DetrForObjectDetection y DetrForSegmentation se pueden inicializar con cualquier backbone convolucional disponible en la librería timm. Por ejemplo, para inicializar con un backbone de MobileNet, basta con establecer el atributo
backbonede DetrConfig en"tf_mobilenetv3_small_075"y luego inicializar el modelo con esa configuración. - DER redimensiona las imágenes de entrada de modo que el lado más corto tenga al menos una cantidad determinada de píxeles, mientras que el lado más largo no supere los 1333 píxeles. Durante el entrenamiento, se utiliza la aumentación de escala para establecer aleatoriamente el lado más corto entre un mínimo de 480 y un máximo de 800 píxeles. En el momento de la inferencia, el lado más corto se fija en 800. Se puede usar DetrImageProcessor para preparar las imágenes (y las anotaciones opcionales en formato COCO) para el modelo. Debido a este redimensionado, las imágenes de un lote pueden tener tamaños diferentes. DETR resuelve esto rellenando las imágenes hasta el tamaño más grande del lote y creando una máscara de píxeles que indica qué píxeles son reales y cuáles son relleno. Alternativamente, también se puede definir una
collate_fnpersonalizada para agrupar las imágenes en lotes, utilizando~transformers.DetrImageProcessor.pad_and_create_pixel_mask. - El tamaño de las imágenes determinará la cantidad de memoria utilizada y, por lo tanto, el
batch_size. Se recomienda usar un tamaño de lote de 2 por GPU. Consulte este hilo de Github para obtener más información.
Existen otras tres formas de instanciar un modelo DETR (según lo que prefieras):
- Opción 1: Instanciar DETR con pesos preentrenados para el modelo completo
from transformers import DetrForObjectDetection
model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", device_map="auto")- Opción 2: Instanciar DETR con pesos inicializados aleatoriamente para Transformer, pero con pesos preentrenados para backbone
from transformers import DetrConfig, DetrForObjectDetection
config = DetrConfig()
model = DetrForObjectDetection(config)- Opción 3: Instanciar DETR con pesos inicializados aleatoriamente para el backbone + Transformer
config = DetrConfig() model = DetrForObjectDetection(config)
Como resumen, considere la siguiente tabla:
| Tarea | Detección de objetos | Segmentación de instancias | Segmentación panóptica |
|---|---|---|---|
| Descripción | Predecir cajas delimitadoras y etiquetas de clase alrededor de los objetos en una imagen | Predecir máscaras alrededor de objetos (es decir, instancias) en una imagen | Predecir máscaras alrededor de ambos objetos (es decir, instancias) y de “stuff” (es decir, elementos de fondo como árboles y carreteras) en una imagen |
| Modelo | DetrForObjectDetection | DetrForSegmentation | DetrForSegmentation |
| Conjunto de datos de ejemplo | Detección de COCO | Detección COCO, panoptic COCO | COCO panoptic |
| Formato de las anotaciones que se deben proporcionar a DetrImageProcessor | {‘image_id’: int, ‘annotations’: list[Dict]} donde cada Dict es una anotación de objeto COCO | {‘image_id’: int, ‘annotations’: list[Dict]} (en el caso de detección COCO) o {‘file_name’: str, ‘image_id’: int, ‘segments_info’: list[Dict]} (en el caso de panoptic COCO) | {‘file_name’: str, ‘image_id’: int, ‘segments_info’: list[Dict]} y masks_path (ruta al directorio que contiene los archivos PNG de las máscaras) |
| Postprocesamiento (es decir, convertir la salida del modelo al formato Pascal VOC) | ~transformers.DetrImageProcessor.post_process | ~transformers.DetrImageProcessor.post_process_segmentation | ~transformers.DetrImageProcessor.post_process_segmentation, ~transformers.DetrImageProcessor.post_process_panoptic |
| evaluadores | CocoEvaluator con iou_types="bbox" | CocoEvaluator con iou_types="bbox" o "segm" | CocoEvaluator con iou_types="bbox" o "segm", PanopticEvaluator |
- En resumen, se debe preparar los datos en formato COCO detection o COCO panoptic, y luego usar DetrImageProcessor para crear
pixel_values,pixel_maskylabelsopcionales, que pueden utilizarse para entrenar (o afinar) un modelo. - Para la evaluación, primero se deben convertir las salidas del modelo utilizando uno de los métodos de postprocesamiento de DetrImageProcessor. Estos pueden proporcionarse a
CocoEvaluatoroPanopticEvaluator, que permiten calcular métricas como la precisión media (mAP) y la calidad panóptica (PQ). Estos últimos objetos están implementados en el repositorio original. Consulte los cuadernos de ejemplo para obtener más información sobre la evaluación.
Recursos
- Consulte estos cuadernos para ver ejemplos de ajuste fino de DetrForObjectDetection y DetrForSegmentation en un conjunto de datos personalizado.
DetrConfig
clase transformers.DetrConfig
< source >( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_channels: int = 3num_queries: int = 100encoder_layers: int = 6encoder_ffn_dim: int = 2048encoder_attention_heads: int = 8decoder_layers: int = 6decoder_ffn_dim: int = 2048decoder_attention_heads: int = 8encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0activation_function: str = 'relu'd_model: int = 256dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02init_xavier_std: float = 1.0auxiliary_loss: bool = Falseposition_embedding_type: str = 'sine'dilation: bool = Falseclass_cost: int = 1bbox_cost: int = 5giou_cost: int = 2mask_loss_coefficient: int = 1dice_loss_coefficient: int = 1bbox_loss_coefficient: int = 5giou_loss_coefficient: int = 2eos_coefficient: float = 0.1 )
Parámetros
- is_encoder_decoder (
bool, opcional, valor predeterminadoTrue) — Indica si el modelo se utiliza como codificador/decodificador o no. - backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opcional) — La configuración del modelo backbone. - num_channels (
int, opcional, valor predeterminado3) — El número de canales de entrada. - num_queries (
int, opcional, valor predeterminado 100) — Número de consultas de objetos, es decir, ranuras de detección. Este es el número máximo de objetos que ConditionalDetrModel puede detectar en una sola imagen. Para COCO, recomendamos 100 consultas. - encoder_layers (
int, opcional, valor predeterminado6) — Número de capas ocultas en el codificador del Transformer. Usará el mismo valor quenum_layerssi no se establece. - encoder_ffn_dim (
int, opcional, valor predeterminado2048) — Dimensionalidad de la capa “intermedia” (a menudo denominada feed-forward) en el codificador. - encoder_attention_heads (
int, opcional, valor predeterminado8) — Número de cabezas de atención para cada capa de atención en el codificador Transformer. - decoder_layers (
int, opcional, valor predeterminado6) — Número de capas ocultas en el decodificador del Transformer. Si no se establece, se usará el mismo valor quenum_layers. - decoder_ffn_dim (
int, opcional, valor predeterminado2048) — Dimensionalidad de la capa “intermedia” (a menudo denominada feed-forward) en el decodificador. - decoder_attention_heads (
int, opcional, valor predeterminado8) — Número de cabezas de atención para cada capa de atención en el decodificador del Transformer. - encoder_layerdrop (
Union[float, int], opcional, valor predeterminado0.0) — La probabilidad de LayerDrop para el codificador. Consulte el [artículo de LayerDrop](ver https://huggingface.co/papers/1909.11556) para más detalles. - decoder_layerdrop (
Union[float, int], opcional, valor predeterminado0.0) — La probabilidad de LayerDrop para el decodificador. Consulte el [artículo de LayerDrop](ver https://huggingface.co/papers/1909.11556) para más detalles. - activation_function (
str, opcional, valor predeterminadorelu) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo,"gelu","relu","silu", etc. - d_model (
int, opcional, valor predeterminado256) — Tamaño de las capas del codificador y de la capa pooler. - dropout (
Union[float, int], opcional, valor predeterminado0.1) — La proporción para todas las capas de dropout. - attention_dropout (
Union[float, int], opcional, valor predeterminado0.0) — La proporción de dropout para las probabilidades de atención. - activation_dropout (
Union[float, int], opcional, valor predeterminado0.0) — La proporción de dropout para las activaciones dentro de la capa totalmente conectada. - init_std (
float, opcional, valor predeterminado0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos. - init_xavier_std (
float, opcional, valor predeterminado1.0) — El factor de escala utilizado para la inicialización de Xavier de los pesos de la atención cruzada. - auxiliary_loss (
bool, opcional, valor predeterminadoFalse) — Si se deben utilizar las pérdidas de decodificación auxiliares (pérdidas en cada capa del decodificador). - position_embedding_type (
str, opcional, valor predeterminado"sine") — Tipo de embeddings de posición que se utilizará sobre las características de la imagen. Uno de"sine"o"learned". - dilation (
bool, opcional, valor predeterminadoFalse) — Si se debe reemplazar el stride con dilation en el último bloque convolucional (DC5). Solo se admite cuandouse_timm_backbone=True. - class_cost (
int, opcional, valor predeterminado1) — Peso relativo del error de clasificación en el coste de correspondencia húngara. - bbox_cost (
int, opcional, valor predeterminado5) — Peso relativo del error de la caja delimitadora L1 en el costo de correspondencia húngara. - giou_cost (
int, opcional, valor predeterminado2) — Peso relativo de la pérdida de IoU generalizada en el costo de correspondencia húngara. - mask_loss_coefficient (
int, opcional, valor predeterminado1) — Peso relativo de la pérdida focal en la pérdida de segmentación panóptica. - dice_loss_coefficient (
int, opcional, valor predeterminado1) — Peso relativo de la pérdida dice en la pérdida de segmentación panóptica. - bbox_loss_coefficient (
int, opcional, valor predeterminado5) — Peso relativo de la pérdida de caja delimitadora L1 en la pérdida de segmentación panóptica. - giou_loss_coefficient (
int, opcional, valor predeterminado2) — Peso relativo de la pérdida de IoU generalizada en la pérdida de segmentación panóptica. - eos_coefficient (
float, opcional, valor predeterminado0.1) — Peso de clasificación relativo de la clase ‘no-object’ en la pérdida de detección de objetos.
Esta es la clase de configuración para almacenar la configuración de un DetrModel. Se utiliza para instanciar un modelo Detr según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de facebook/detr-resnet-50
Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.
Ejemplos:
>>> from transformers import DetrConfig, DetrModel
>>> # Initializing a DETR facebook/detr-resnet-50 style configuration
>>> configuration = DetrConfig()
>>> # Initializing a model (with random weights) from the facebook/detr-resnet-50 style configuration
>>> model = DetrModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configDetrImageProcessor
clase transformers.DetrImageProcessor
< source >( **kwargs: *<class 'transformers.models.detr.image_processing_detr.DetrImageProcessorKwargs'> )
Parámetros
- do_convert_rgb (
bool, kwargs, opcional) — Si se debe convertir la imagen a RGB. - do_resize (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe redimensionar la imagen. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, por defecto{'shortest_edge' -- 800, 'longest_edge': 1333}): Describe las dimensiones de entrada máximas para el modelo. - default_to_square (
bool, kwargs, opcional, valor predeterminadoFalse) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si size es un int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamaño de la imagen de salida tras aplicarcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, por defecto2) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los valores de la enumeraciónPILImageResampling. Solo tiene efecto sido_resizeestá establecido enTrue. - do_rescale (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe reescalar la imagen. - rescale_factor (
float, kwargs, opcional, valor predeterminado0.00392156862745098) — Factor de reescalado para reescalar la imagen sido_rescaleestá establecido enTrue. - do_normalize (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe normalizar la imagen. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, valor predeterminado[0.485, 0.456, 0.406]) — Media de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, valor predeterminado[0.229, 0.224, 0.225]) — Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - do_pad (
bool, kwargs, opcional, valor predeterminadoTrue) — Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — El tamaño en{"height": int, "width" int}al que se rellenan las imágenes. Debe ser mayor que cualquier tamaño de imagen proporcionado para el preprocesamiento. Si no se proporcionapad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuandodo_pad=True. - do_center_crop (
bool, kwargs, opcional) — Si se debe recortar la imagen centrada. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — Solo se admiteChannelDimension.FIRST. Se añadió para garantizar la compatibilidad con los procesadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — El formato de la dimensión de canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:"channels_first"oChannelDimension.FIRST: imagen en formato (num_channels, height, width)."channels_last"oChannelDimension.LAST: imagen en formato (altura, ancho, num_canales)."none"oChannelDimension.NONE: imagen en formato (altura, ancho).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Devuelve tensores apilados si se establece en'pt'; en caso contrario, devuelve una lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador. - format (
str, kwargs, opcional, por defectoAnnotationFormat.COCO_DETECTION) — Formato de datos de las anotaciones. Uno de “coco_detection” o “coco_panoptic”. - do_convert_annotations (
bool, kwargs, opcional, valor predeterminadoTrue) — Controla si se convierten las anotaciones al formato esperado por el modelo DETR. Convierte las cajas delimitadoras al formato(center_x, center_y, width, height)y en el rango[0, 1]. Puede sobrescribirse mediante el parámetrodo_convert_annotationsen el métodopreprocess.
Construye un procesador de imágenes DetrImageProcessor.
preprocesar
< source >( 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.detr.image_processing_detr.DetrImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parámetros
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Imagen a preprocesar. Espera una imagen única o un lote de imágenes con valores de píxeles que van de 0 a 255. Si se pasan imágenes con valores de píxeles entre 0 y 1, establezcado_rescale=False. - annotations (
AnnotationTypeolist[AnnotationType], opcional) — Anotaciones que se transformarán según el relleno aplicado a las imágenes. - return_segmentation_masks (
bool, opcional, por defectoself.return_segmentation_masks) — Si se deben devolver las máscaras de segmentación. - masks_path (
stropathlib.Path, opcional) — Ruta al directorio que contiene las máscaras de segmentación. - do_convert_rgb (
bool, kwargs, opcional) — Si se debe convertir la imagen a RGB. - do_resize (
bool, kwargs, opcional) — Si se debe redimensionar la imagen. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Describe las dimensiones de entrada máximas del modelo. - default_to_square (
bool, kwargs, opcional) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si size es un int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamaño de la imagen de salida tras aplicarcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los enumPILImageResampling. Solo tiene efecto sido_resizeestá establecido enTrue. - do_rescale (
bool, kwargs, opcional) — Si se debe reescalar la imagen. - rescale_factor (
float, kwargs, opcional) — Factor de reescalado para reescalar la imagen sido_rescaleestá establecido enTrue. - do_normalize (
bool, kwargs, opcional) — Si se debe normalizar la imagen. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Media de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - do_pad (
bool, kwargs, opcional) — Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — El tamaño en{"height": int, "width" int}al que se rellenan las imágenes. Debe ser mayor que cualquier tamaño de imagen proporcionado para el preprocesamiento. Si no se proporcionapad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuandodo_pad=True. - do_center_crop (
bool, kwargs, opcional) — Si se debe recortar la imagen centrada. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — Solo se admiteChannelDimension.FIRST. Se añadió para garantizar la compatibilidad con los procesadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — El formato de la dimensión de canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:"channels_first"oChannelDimension.FIRST: imagen en formato (num_channels, height, width)."channels_last"oChannelDimension.LAST: imagen en formato (altura, ancho, num_canales)."none"oChannelDimension.NONE: imagen en formato (altura, ancho).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Devuelve tensores apilados si se establece en'pt'; en caso contrario, devuelve una lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador. - format (
str, kwargs, opcional, por defectoAnnotationFormat.COCO_DETECTION) — Formato de datos de las anotaciones. Uno de “coco_detection” o “coco_panoptic”. - do_convert_annotations (
bool, kwargs, opcional, valor predeterminadoTrue) — Controla si se convierten las anotaciones al formato esperado por el modelo DETR. Convierte las cajas delimitadoras al formato(center_x, center_y, width, height)y en el rango[0, 1]. Puede sobrescribirse mediante el parámetrodo_convert_annotationsen el métodopreprocess.
Devuelve
~image_processing_base.BatchFeature
- data (
dict) — Diccionario de listas/arrays/tensores devueltos por el método call (‘pixel_values’, etc.). - tensor_type (
Union[None, str, TensorType], opcional) — Puede especificar un tensor_type aquí para convertir las listas de enteros en Tensors de PyTorch/Numpy durante la inicialización.
post_process_object_detection
< source >( outputsthreshold: float = 0.5target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None ) → list[Dict]
Parámetros
- outputs (
DetrObjectDetectionOutput) — Salidas sin procesar del modelo. - threshold (
float, opcional) — Umbral de puntuación para conservar las predicciones de detección de objetos. - target_sizes (
torch.Tensorolist[tuple[int, int]], opcional) — Tensor de forma(batch_size, 2)o lista de tuplas (tuple[int, int]) que contiene el tamaño objetivo(height, width)de cada imagen del lote. Si no se establece, las predicciones no se redimensionarán.
Devuelve
list[Dict]
Una lista de diccionarios, donde cada diccionario contiene las puntuaciones, etiquetas y cajas para una imagen del lote, tal como las predice el modelo.
Convierte la salida cruda de DetrForObjectDetection en cajas delimitadoras finales en el formato (top_left_x, top_left_y, bottom_right_x, bottom_right_y). Solo admite PyTorch.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parámetros
- outputs (DetrForSegmentation) — Salidas sin procesar del modelo.
- target_sizes (
list[tuple[int, int]], opcional) — Una lista de tuplas (tuple[int, int]) que contiene el tamaño objetivo (altura, ancho) de cada imagen del lote. Si no se establece, las predicciones no se redimensionarán. - return_segmentation_scores (
bool, opcional, valor predeterminadoFalse) — Indica si se deben devolver las puntuaciones de segmentación junto con el mapa de segmentación. CuandoTrue, cada elemento de la lista devuelta es unSemanticSegmentationPostProcessorOutputcon los campossegmentation(IDs de clase, forma(height, width)) ysegmentation_scores(forma(num_classes, height, width)).
Devuelve
list[torch.Tensor] o list[SemanticSegmentationPostProcessorOutput]
Cuando
return_segmentation_scores=False (por defecto), se devuelve una lista de longitud batch_size donde cada elemento es un
mapa de segmentación de forma (height, width) con IDs de clase. Cuando return_segmentation_scores=True,
se devuelve una lista de SemanticSegmentationPostProcessorOutput con los campos segmentation (IDs de clase, forma
(height, width)) y segmentation_scores (forma (num_classes, height, width)). En ambos casos,
(height, width) corresponde al tamaño objetivo (si se especifica target_sizes).
Convierte la salida de DetrForSegmentation en mapas de segmentación semántica. Solo admite PyTorch.
post_process_instance_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = False ) → list[Dict]
Parámetros
- outputs (DetrForSegmentation) — Salidas sin procesar del modelo.
- threshold (
float, opcional, valor predeterminado 0.5) — Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas. - mask_threshold (
float, opcional, valor predeterminado 0.5) — Umbral a utilizar al convertir las máscaras predichas en valores binarios. - overlap_mask_area_threshold (
float, opcional, valor predeterminado 0.8) — Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara binaria de instancia. - target_sizes (
list[Tuple], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción. Si no se establece, las predicciones no se redimensionarán. - return_coco_annotation (
bool, opcional) — Por defecto esFalse. Si se establece enTrue, los mapas de segmentación se devuelven en el formato de codificación por longitud de ejecución (RLE) de COCO.
Devuelve
list[Dict]
Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:
- segmentation — Un tensor de forma
(height, width)donde cada píxel representa unsegment_idolist[List]codificación por longitud de ejecución (RLE) del mapa de segmentación si return_coco_annotation está establecido enTrue. Se establece enNonesi no se encuentra ninguna máscara por encima dethreshold. - segments_info — Un diccionario que contiene información adicional sobre cada segmento.
- id — Un entero que representa el
segment_id. - label_id — Un entero que representa el identificador de etiqueta/clase semántica correspondiente a
segment_id. - score — Puntuación de predicción del segmento con
segment_id.
- id — Un entero que representa el
Convierte la salida de DetrForSegmentation en predicciones de segmentación de instancias. Solo admite PyTorch.
post_process_panoptic_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → list[Dict]
Parámetros
- outputs (DetrForSegmentation) — Las salidas de DetrForSegmentation.
- threshold (
float, opcional, valor predeterminado 0.5) — Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas. - mask_threshold (
float, opcional, valor predeterminado 0.5) — Umbral a utilizar al convertir las máscaras predichas en valores binarios. - overlap_mask_area_threshold (
float, opcional, valor predeterminado 0.8) — Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara binaria de instancia. - label_ids_to_fuse (
Set[int], opcional) — Las etiquetas en este estado fusionarán todas sus instancias. Por ejemplo, podríamos decir que solo puede haber un cielo en una imagen, pero varias personas, por lo que el ID de etiqueta para cielo estaría en ese conjunto, pero no el de persona. - target_sizes (
list[Tuple], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción del lote. Si no se establece, las predicciones no se redimensionarán.
Devuelve
list[Dict]
Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:
- segmentation — un tensor de forma
(height, width)donde cada píxel representa unsegment_idoNonesi no se encuentra ninguna máscara por encima dethreshold. Si se especificatarget_sizes, la segmentación se redimensiona a la entrada correspondiente detarget_sizes. - segments_info — Un diccionario que contiene información adicional sobre cada segmento.
- id — un entero que representa el
segment_id. - label_id — Un entero que representa el identificador de etiqueta/clase semántica correspondiente a
segment_id. - was_fused — un booleano,
Truesilabel_idestaba enlabel_ids_to_fuse,Falseen caso contrario. Se fusionaron varias instancias de la misma clase / etiqueta y se les asignó un únicosegment_id. - score — Puntuación de predicción del segmento con
segment_id.
- id — un entero que representa el
Convierte la salida de DetrForSegmentation en predicciones de segmentación panóptica de imagen. Solo admite PyTorch.
DetrImageProcessorPil
clase transformers.DetrImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.detr.image_processing_pil_detr.DetrImageProcessorKwargs'> )
Parámetros
- do_convert_rgb (
bool, kwargs, opcional) — Si se debe convertir la imagen a RGB. - do_resize (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe redimensionar la imagen. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, por defecto{'shortest_edge' -- 800, 'longest_edge': 1333}): Describe las dimensiones de entrada máximas para el modelo. - default_to_square (
bool, kwargs, opcional, valor predeterminadoFalse) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si size es un int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamaño de la imagen de salida tras aplicarcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, por defecto2) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los valores de la enumeraciónPILImageResampling. Solo tiene efecto sido_resizeestá establecido enTrue. - do_rescale (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe reescalar la imagen. - rescale_factor (
float, kwargs, opcional, valor predeterminado0.00392156862745098) — Factor de reescalado para reescalar la imagen sido_rescaleestá establecido enTrue. - do_normalize (
bool, kwargs, opcional, valor predeterminadoTrue) — Si se debe normalizar la imagen. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, valor predeterminado[0.485, 0.456, 0.406]) — Media de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, valor predeterminado[0.229, 0.224, 0.225]) — Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - do_pad (
bool, kwargs, opcional, valor predeterminadoTrue) — Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — El tamaño en{"height": int, "width" int}al que se rellenan las imágenes. Debe ser mayor que cualquier tamaño de imagen proporcionado para el preprocesamiento. Si no se proporcionapad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuandodo_pad=True. - do_center_crop (
bool, kwargs, opcional) — Si se debe recortar la imagen centrada. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — Solo se admiteChannelDimension.FIRST. Se añadió para garantizar la compatibilidad con los procesadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — El formato de la dimensión de canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:"channels_first"oChannelDimension.FIRST: imagen en formato (num_channels, height, width)."channels_last"oChannelDimension.LAST: imagen en formato (altura, ancho, num_canales)."none"oChannelDimension.NONE: imagen en formato (altura, ancho).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Devuelve tensores apilados si se establece en'pt'; en caso contrario, devuelve una lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador. - format (
str, kwargs, opcional, por defectoAnnotationFormat.COCO_DETECTION) — Formato de datos de las anotaciones. Uno de “coco_detection” o “coco_panoptic”. - do_convert_annotations (
bool, kwargs, opcional, valor predeterminadoTrue) — Controla si se convierten las anotaciones al formato esperado por el modelo DETR. Convierte las cajas delimitadoras al formato(center_x, center_y, width, height)y en el rango[0, 1]. Puede sobrescribirse mediante el parámetrodo_convert_annotationsen el métodopreprocess.
Construye un procesador de imágenes DetrImageProcessor.
preprocesar
< source >( 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.detr.image_processing_pil_detr.DetrImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parámetros
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Imagen a preprocesar. Espera una imagen única o un lote de imágenes con valores de píxeles que van de 0 a 255. Si se pasan imágenes con valores de píxeles entre 0 y 1, establezcado_rescale=False. - annotations (
AnnotationTypeolist[AnnotationType], opcional) — Anotaciones que se transformarán según el relleno aplicado a las imágenes. - return_segmentation_masks (
bool, opcional, por defectoself.return_segmentation_masks) — Si se deben devolver las máscaras de segmentación. - masks_path (
stropathlib.Path, opcional) — Ruta al directorio que contiene las máscaras de segmentación. - do_convert_rgb (
bool, kwargs, opcional) — Si se debe convertir la imagen a RGB. - do_resize (
bool, kwargs, opcional) — Si se debe redimensionar la imagen. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Describe las dimensiones de entrada máximas del modelo. - default_to_square (
bool, kwargs, opcional) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si size es un int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamaño de la imagen de salida tras aplicarcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los enumPILImageResampling. Solo tiene efecto sido_resizeestá establecido enTrue. - do_rescale (
bool, kwargs, opcional) — Si se debe reescalar la imagen. - rescale_factor (
float, kwargs, opcional) — Factor de reescalado para reescalar la imagen sido_rescaleestá establecido enTrue. - do_normalize (
bool, kwargs, opcional) — Si se debe normalizar la imagen. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Media de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto sido_normalizeestá establecido enTrue. - do_pad (
bool, kwargs, opcional) — Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — El tamaño en{"height": int, "width" int}al que se rellenan las imágenes. Debe ser mayor que cualquier tamaño de imagen proporcionado para el preprocesamiento. Si no se proporcionapad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote. Se aplica solo cuandodo_pad=True. - do_center_crop (
bool, kwargs, opcional) — Si se debe recortar la imagen centrada. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — Solo se admiteChannelDimension.FIRST. Se añadió para garantizar la compatibilidad con los procesadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — El formato de la dimensión de canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:"channels_first"oChannelDimension.FIRST: imagen en formato (num_channels, height, width)."channels_last"oChannelDimension.LAST: imagen en formato (altura, ancho, num_canales)."none"oChannelDimension.NONE: imagen en formato (altura, ancho).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Devuelve tensores apilados si se establece en'pt'; en caso contrario, devuelve una lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador. - format (
str, kwargs, opcional, por defectoAnnotationFormat.COCO_DETECTION) — Formato de datos de las anotaciones. Uno de “coco_detection” o “coco_panoptic”. - do_convert_annotations (
bool, kwargs, opcional, valor predeterminadoTrue) — Controla si se convierten las anotaciones al formato esperado por el modelo DETR. Convierte las cajas delimitadoras al formato(center_x, center_y, width, height)y en el rango[0, 1]. Puede sobrescribirse mediante el parámetrodo_convert_annotationsen el métodopreprocess.
Devuelve
~image_processing_base.BatchFeature
- data (
dict) — Diccionario de listas/arrays/tensores devueltos por el método call (‘pixel_values’, etc.). - tensor_type (
Union[None, str, TensorType], opcional) — Puede especificar un tensor_type aquí para convertir las listas de enteros en Tensors de PyTorch/Numpy durante la inicialización.
post_process_object_detection
< source >( outputsthreshold: float = 0.5target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None ) → list[Dict]
Parámetros
- outputs (
DetrObjectDetectionOutput) — Salidas sin procesar del modelo. - threshold (
float, opcional) — Umbral de puntuación para conservar las predicciones de detección de objetos. - target_sizes (
torch.Tensorolist[tuple[int, int]], opcional) — Tensor de forma(batch_size, 2)o lista de tuplas (tuple[int, int]) que contiene el tamaño objetivo(height, width)de cada imagen del lote. Si no se establece, las predicciones no se redimensionarán.
Devuelve
list[Dict]
Una lista de diccionarios, donde cada diccionario contiene las puntuaciones, etiquetas y cajas para una imagen del lote, tal como las predice el modelo.
Convierte la salida cruda de DetrForObjectDetection en cajas delimitadoras finales en el formato (top_left_x, top_left_y, bottom_right_x, bottom_right_y). Solo admite PyTorch.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parámetros
- outputs (DetrForSegmentation) — Salidas sin procesar del modelo.
- target_sizes (
list[tuple[int, int]], opcional) — Una lista de tuplas (tuple[int, int]) que contiene el tamaño objetivo (altura, ancho) de cada imagen del lote. Si no se establece, las predicciones no se redimensionarán. - return_segmentation_scores (
bool, opcional, valor predeterminadoFalse) — Indica si se deben devolver las puntuaciones de segmentación junto con el mapa de segmentación. CuandoTrue, cada elemento de la lista devuelta es unSemanticSegmentationPostProcessorOutputcon los campossegmentation(IDs de clase, forma(height, width)) ysegmentation_scores(forma(num_classes, height, width)).
Devuelve
list[torch.Tensor] o list[SemanticSegmentationPostProcessorOutput]
Cuando
return_segmentation_scores=False (por defecto), se devuelve una lista de longitud batch_size donde cada elemento es un
mapa de segmentación de forma (height, width) con IDs de clase. Cuando return_segmentation_scores=True,
se devuelve una lista de SemanticSegmentationPostProcessorOutput con los campos segmentation (IDs de clase, forma
(height, width)) y segmentation_scores (forma (num_classes, height, width)). En ambos casos,
(height, width) corresponde al tamaño objetivo (si se especifica target_sizes).
Convierte la salida de DetrForSegmentation en mapas de segmentación semántica. Solo admite PyTorch.
post_process_instance_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = False ) → list[Dict]
Parámetros
- outputs (DetrForSegmentation) — Salidas sin procesar del modelo.
- threshold (
float, opcional, valor predeterminado 0.5) — Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas. - mask_threshold (
float, opcional, valor predeterminado 0.5) — Umbral a utilizar al convertir las máscaras predichas en valores binarios. - overlap_mask_area_threshold (
float, opcional, valor predeterminado 0.8) — Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara binaria de instancia. - target_sizes (
list[Tuple], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción. Si no se establece, las predicciones no se redimensionarán. - return_coco_annotation (
bool, opcional) — Por defecto esFalse. Si se establece enTrue, los mapas de segmentación se devuelven en el formato de codificación por longitud de ejecución (RLE) de COCO.
Devuelve
list[Dict]
Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:
- segmentation — Un tensor de forma
(height, width)donde cada píxel representa unsegment_idolist[List]codificación por longitud de ejecución (RLE) del mapa de segmentación si return_coco_annotation está establecido enTrue. Se establece enNonesi no se encuentra ninguna máscara por encima dethreshold. - segments_info — Un diccionario que contiene información adicional sobre cada segmento.
- id — Un entero que representa el
segment_id. - label_id — Un entero que representa el identificador de etiqueta/clase semántica correspondiente a
segment_id. - score — Puntuación de predicción del segmento con
segment_id.
- id — Un entero que representa el
Convierte la salida de DetrForSegmentation en predicciones de segmentación de instancias. Solo admite PyTorch.
post_process_panoptic_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → list[Dict]
Parámetros
- outputs (DetrForSegmentation) — Las salidas de DetrForSegmentation.
- threshold (
float, opcional, valor predeterminado 0.5) — Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas. - mask_threshold (
float, opcional, valor predeterminado 0.5) — Umbral a utilizar al convertir las máscaras predichas en valores binarios. - overlap_mask_area_threshold (
float, opcional, valor predeterminado 0.8) — Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara binaria de instancia. - label_ids_to_fuse (
Set[int], opcional) — Las etiquetas en este estado fusionarán todas sus instancias. Por ejemplo, podríamos decir que solo puede haber un cielo en una imagen, pero varias personas, por lo que el ID de etiqueta para cielo estaría en ese conjunto, pero no el de persona. - target_sizes (
list[Tuple], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción del lote. Si no se establece, las predicciones no se redimensionarán.
Devuelve
list[Dict]
Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:
- segmentation — un tensor de forma
(height, width)donde cada píxel representa unsegment_idoNonesi no se encuentra ninguna máscara por encima dethreshold. Si se especificatarget_sizes, la segmentación se redimensiona a la entrada correspondiente detarget_sizes. - segments_info — Un diccionario que contiene información adicional sobre cada segmento.
- id — un entero que representa el
segment_id. - label_id — Un entero que representa el identificador de etiqueta/clase semántica correspondiente a
segment_id. - was_fused — un booleano,
Truesilabel_idestaba enlabel_ids_to_fuse,Falseen caso contrario. Se fusionaron varias instancias de la misma clase / etiqueta y se les asignó un únicosegment_id. - score — Puntuación de predicción del segmento con
segment_id.
- id — un entero que representa el
Convierte la salida de DetrForSegmentation en predicciones de segmentación panóptica de imagen. Solo admite PyTorch.
Salidas específicas de DETR
clase transformers.models.detr.modeling_detr.DetrModelOutput
< source >( last_hidden_state: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.EncoderDecoderCache | None = Nonedecoder_hidden_states: tuple[torch.Tensor, ...] | None = Nonedecoder_attentions: tuple[torch.Tensor, ...] | None = Nonecross_attentions: tuple[torch.Tensor, ...] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor, ...] | None = Noneencoder_attentions: tuple[torch.Tensor, ...] | None = Noneintermediate_hidden_states: typing.Optional[torch.Tensor] = None )
Parámetros
- last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo.Si se utiliza
past_key_values, solo se genera el último hidden-state de las secuencias con forma(batch_size, 1, hidden_size). - past_key_values (
EncoderDecoderCache, opcional, se devuelve cuandouse_cache=Truese pasa o cuandoconfig.use_cache=True) — Es una EncoderDecoderCache instancia. Para más detalles, consulta nuestra guía de caché kv.Contiene estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que pueden utilizarse (véase la entrada
past_key_values) para acelerar la decodificación secuencial. - decoder_hidden_states (
tuple(torch.Tensor), opcional, se devuelve cuandooutput_hidden_states=Truese pasa o cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(uno para la salida de los embeddings, si el modelo tiene una capa de embedding, + uno para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del decodificador en la salida de cada capa más las salidas opcionales de la incrustación inicial.
- decoder_attentions (
tuple(torch.Tensor), opcional, se devuelve cuandooutput_attentions=Truese pasa o cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(uno por cada capa) con forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
- cross_attentions (
tuple(torch.Tensor), opcional, se devuelve cuandooutput_attentions=Truese pasa o cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(uno por cada capa) con forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
- encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del codificador del modelo. - encoder_hidden_states (
tuple(torch.Tensor), opcional, se devuelve cuandooutput_hidden_states=Truese pasa o cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(uno para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + uno para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del codificador en la salida de cada capa más las salidas opcionales de la incrustación inicial.
- encoder_attentions (
tuple(torch.Tensor), opcional, se devuelve cuandooutput_attentions=Truese pasa o cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(uno por cada capa) con forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
- intermediate_hidden_states (
torch.Tensorde forma(config.decoder_layers, batch_size, sequence_length, hidden_size), opcional, devuelto cuandoconfig.auxiliary_loss=True) — Activaciones intermedias del decodificador, es decir, la salida de cada capa del decodificador, cada una de ellas pasada por un layernorm.
Clase base para las salidas del modelo codificador-decodificador DETR. Esta clase añade un atributo a Seq2SeqModelOutput, a saber, una pila opcional de activaciones intermedias del decodificador, es decir, la salida de cada capa del decodificador, cada una de ellas pasada por una normalización de capa. Esto es útil al entrenar el modelo con pérdidas de decodificación auxiliares.
clase transformers.models.detr.modeling_detr.DetrObjectDetectionOutput
< source >( loss: typing.Optional[torch.Tensor] = Noneloss_dict: dict | None = Nonelogits: typing.Optional[torch.Tensor] = Nonepred_boxes: typing.Optional[torch.Tensor] = Noneauxiliary_outputs: list[dict] | None = Nonelast_hidden_state: typing.Optional[torch.Tensor] = Nonedecoder_hidden_states: tuple[torch.Tensor] | None = Nonedecoder_attentions: tuple[torch.Tensor] | None = Nonecross_attentions: tuple[torch.Tensor] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Noneencoder_attentions: tuple[torch.Tensor] | None = None )
Parámetros
- loss (
torch.Tensorde forma(1,), opcional, devuelta cuando se proporcionanlabels)) — Pérdida total como combinación lineal de una log-verosimilitud negativa (entropía cruzada) para la predicción de clases y una pérdida de caja delimitadora. Esta última se define como una combinación lineal de la pérdida L1 y la pérdida de IoU generalizada e invariante a la escala. - loss_dict (
Dict, opcional) — Un diccionario que contiene las pérdidas individuales. Útil para el registro. - logits (
torch.Tensorde forma(batch_size, num_queries, num_classes + 1)) — Logits de clasificación (incluyendo no-objeto) para todas las consultas. - pred_boxes (
torch.Tensorde forma(batch_size, num_queries, 4)) — Coordenadas de cajas normalizadas para todas las consultas, representadas como (center_x, center_y, width, height). Estos valores están normalizados en [0, 1], relativos al tamaño de cada imagen individual del lote (ignorando posible relleno). Puede usar post_process_object_detection() para recuperar las cajas delimitadoras no normalizadas. - auxiliary_outputs (
list[Dict], opcional) — Opcional, solo se devuelve cuando se activan las pérdidas auxiliares (es decir,config.auxiliary_lossestá establecido enTrue) y se proporcionan etiquetas. Es una lista de diccionarios que contienen las dos claves anteriores (logitsypred_boxes) para cada capa del decodificador. - last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo. - decoder_hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_hidden_states=Truese pasa o cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(uno para la salida de los embeddings, si el modelo tiene una capa de embedding, + uno para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del decodificador en la salida de cada capa más las salidas de la incrustación inicial.
- decoder_attentions (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_attentions=Truese pasa o cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(uno por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
- cross_attentions (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_attentions=Truese pasa o cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(uno por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
- encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del codificador del modelo. - encoder_hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_hidden_states=Truese pasa o cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(uno para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + uno para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del codificador en la salida de cada capa más las salidas de la incrustación inicial.
- encoder_attentions (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_attentions=Truese pasa o cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(uno por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
Tipo de salida de DetrForObjectDetection.
clase transformers.models.detr.modeling_detr.DetrSegmentationOutput
< source >( loss: typing.Optional[torch.Tensor] = Noneloss_dict: dict | None = Nonelogits: typing.Optional[torch.Tensor] = Nonepred_boxes: typing.Optional[torch.Tensor] = Nonepred_masks: typing.Optional[torch.Tensor] = Noneauxiliary_outputs: list[dict] | None = Nonelast_hidden_state: typing.Optional[torch.Tensor] = Nonedecoder_hidden_states: tuple[torch.Tensor] | None = Nonedecoder_attentions: tuple[torch.Tensor] | None = Nonecross_attentions: tuple[torch.Tensor] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Noneencoder_attentions: tuple[torch.Tensor] | None = None )
Parámetros
- loss (
torch.Tensorde forma(1,), opcional, devuelta cuando se proporcionanlabels)) — Pérdida total como combinación lineal de una log-verosimilitud negativa (entropía cruzada) para la predicción de clases y una pérdida de caja delimitadora. Esta última se define como una combinación lineal de la pérdida L1 y la pérdida de IoU generalizada e invariante a la escala. - loss_dict (
Dict, opcional) — Un diccionario que contiene las pérdidas individuales. Útil para el registro. - logits (
torch.Tensorde forma(batch_size, num_queries, num_classes + 1)) — Logits de clasificación (incluyendo no-objeto) para todas las consultas. - pred_boxes (
torch.Tensorde forma(batch_size, num_queries, 4)) — Coordenadas de cajas normalizadas para todas las consultas, representadas como (center_x, center_y, width, height). Estos valores están normalizados en [0, 1], relativos al tamaño de cada imagen individual del lote (ignorando posible relleno). Puede usar post_process_object_detection() para recuperar las cajas delimitadoras no normalizadas. - pred_masks (
torch.Tensorde forma(batch_size, num_queries, height/4, width/4)) — Logits de máscaras de segmentación para todas las consultas. Consulte también post_process_semantic_segmentation() o post_process_instance_segmentation() post_process_panoptic_segmentation() para evaluar las máscaras de segmentación semántica, de instancia y panóptica, respectivamente. - auxiliary_outputs (
list[Dict], opcional) — Opcional, solo se devuelve cuando se activan las pérdidas auxiliares (es decir,config.auxiliary_lossestá establecido enTrue) y se proporcionan etiquetas. Es una lista de diccionarios que contienen las dos claves anteriores (logitsypred_boxes) para cada capa del decodificador. - last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo. - decoder_hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_hidden_states=Truese pasa o cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(uno para la salida de los embeddings, si el modelo tiene una capa de embedding, + uno para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del decodificador en la salida de cada capa más las salidas de la incrustación inicial.
- decoder_attentions (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_attentions=Truese pasa o cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(uno por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
- cross_attentions (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_attentions=Truese pasa o cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(uno por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
- encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del codificador del modelo. - encoder_hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_hidden_states=Truese pasa o cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(uno para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + uno para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del codificador en la salida de cada capa más las salidas de la incrustación inicial.
- encoder_attentions (
tuple[torch.Tensor], opcional, se devuelve cuandooutput_attentions=Truese pasa o cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(uno por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
Tipo de salida de DetrForSegmentation.
DetrModel
clase transformers.DetrModel
< source >( config: DetrConfig )
Parámetros
- config (DetrConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
El modelo DETR básico (constituido por un backbone y un Transformer encoder-decoder) que genera estados ocultos sin procesar sin ninguna cabeza específica en la parte superior.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( pixel_values: typing.Optional[torch.Tensor] = Nonepixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DetrModelOutput or tuple(torch.Tensor)
Parámetros
- pixel_values (
torch.Tensorde forma(batch_size, num_channels, image_size, image_size), opcional) — Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener utilizandoimage_processor_class. Consulteimage_processor_class.__call__para más detalles (processor_classutilizaimage_processor_classpara procesar las imágenes). - pixel_mask (
torch.LongTensorde forma(batch_size, height, width), opcional) — Máscara para evitar realizar atención sobre los valores de píxeles de relleno. Valores de máscara seleccionados en[0, 1]:- 1 para los píxeles reales (es decir, no enmascarados),
- 0 para los píxeles que son relleno (es decir, mascarados).
- decoder_attention_mask (
torch.Tensorde forma(batch_size, num_queries), opcional) — Máscara para evitar realizar atención sobre ciertas consultas de objetos en el decodificador. Valores de máscara seleccionados en[0, 1]:- 1 para las consultas que no están enmascaradas,
- 0 para las consultas que están mascaradas.
- encoder_outputs (
torch.Tensor, opcional) — La tupla consiste en (last_hidden_state, opcional:hidden_states, opcional:attentions)last_hidden_statede forma(batch_size, sequence_length, hidden_size), opcional) es una secuencia de hidden-states en la salida de la última capa del codificador. Se utiliza en la atención cruzada del decodificador. - inputs_embeds (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Opcionalmente, en lugar de pasar el mapa de características aplanado (salida del backbone + capa de proyección), puede elegir pasar directamente una representación aplanada de una imagen. Útil para omitir el backbone de visión. - decoder_inputs_embeds (
torch.Tensorde forma(batch_size, num_queries, hidden_size), opcional) — Opcionalmente, en lugar de inicializar las consultas con un tensor de ceros, puede elegir pasar directamente una representación incrustada. Útil para tareas que requieren una inicialización personalizada de las consultas.
Devuelve
DetrModelOutput o tuple(torch.Tensor)
Un DetrModelOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (None) y las entradas.
El método forward de DetrModel sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size)) — Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo.Si se utiliza
past_key_values, solo se genera el último hidden-state de las secuencias con forma(batch_size, 1, hidden_size).past_key_values (
EncoderDecoderCache, opcional, se devuelve cuando se pasause_cache=Trueo cuandoconfig.use_cache=True) — Es una instancia de EncoderDecoderCache. Para más detalles, consulte nuestra guía de caché kv.Contiene estados ocultos precalculados (claves y valores en los bloques de autoatención y en los bloques de atención cruzada) que pueden utilizarse (véase la entrada
past_key_values) para acelerar la decodificación secuencial.decoder_hidden_states (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de los embeddings, si el modelo tiene una capa de embedding, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del decodificador en la salida de cada capa más las salidas opcionales de la incrustación inicial.
decoder_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
cross_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del codificador del modelo.encoder_hidden_states (
tuple(torch.Tensor), opcional, devuelto cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del codificador en la salida de cada capa más las salidas opcionales de la incrustación inicial.
encoder_attentions (
tuple(torch.Tensor), opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
intermediate_hidden_states (
torch.Tensorde forma(config.decoder_layers, batch_size, sequence_length, hidden_size), opcional, se devuelve cuandoconfig.auxiliary_loss=True) — Activaciones intermedias del decodificador, es decir, la salida de cada capa del decodificador, cada una de ellas pasada por un layernorm.
Ejemplos:
>>> from transformers import AutoImageProcessor, DetrModel
>>> 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("facebook/detr-resnet-50")
>>> model = DetrModel.from_pretrained("facebook/detr-resnet-50")
>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> # forward pass
>>> outputs = model(**inputs)
>>> # the last hidden states are the final query embeddings of the Transformer decoder
>>> # these are of shape (batch_size, num_queries, hidden_size)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 100, 256]DetrForObjectDetection
clase transformers.DetrForObjectDetection
< source >( config: DetrConfig )
Parámetros
- config (DetrConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
Modelo DETR (constituido por un backbone y un Transformer encoder-decoder) con cabezas de detección de objetos en la parte superior, para tareas como la detección COCO.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DetrObjectDetectionOutput or tuple(torch.Tensor)
Parámetros
- pixel_values (
torch.Tensorde forma(batch_size, num_channels, image_size, image_size)) — Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener utilizandoimage_processor_class. Consulteimage_processor_class.__call__para más detalles (processor_classutilizaimage_processor_classpara procesar las imágenes). - pixel_mask (
torch.LongTensorde forma(batch_size, height, width), opcional) — Máscara para evitar realizar atención sobre los valores de píxeles de relleno. Valores de máscara seleccionados en[0, 1]:- 1 para los píxeles reales (es decir, no enmascarados),
- 0 para los píxeles que son relleno (es decir, mascarados).
- decoder_attention_mask (
torch.Tensorde forma(batch_size, num_queries), opcional) — Máscara para evitar realizar atención sobre ciertas consultas de objetos en el decodificador. Valores de máscara seleccionados en[0, 1]:- 1 para las consultas que no están enmascaradas,
- 0 para las consultas que están mascaradas.
- encoder_outputs (
torch.Tensor, opcional) — La tupla consiste en (last_hidden_state, opcional:hidden_states, opcional:attentions)last_hidden_statede forma(batch_size, sequence_length, hidden_size), opcional) es una secuencia de hidden-states en la salida de la última capa del codificador. Se utiliza en la atención cruzada del decodificador. - inputs_embeds (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Opcionalmente, en lugar de pasar el mapa de características aplanado (salida del backbone + capa de proyección), puede elegir pasar directamente una representación aplanada de una imagen. Útil para omitir el backbone de visión. - decoder_inputs_embeds (
torch.Tensorde forma(batch_size, num_queries, hidden_size), opcional) — Opcionalmente, en lugar de inicializar las consultas con un tensor de ceros, puede elegir pasar directamente una representación incrustada. Útil para tareas que requieren una inicialización personalizada de las consultas. - labels (
list[Dict]de longitud(batch_size,), opcional) — Etiquetas para calcular la pérdida de bipartite matching. Lista de diccionarios, donde cada diccionario contiene al menos las siguientes 2 claves: ‘class_labels’ y ‘boxes’ (las etiquetas de clase y las cajas delimitadoras de una imagen del lote, respectivamente). Las etiquetas de clase en sí deben ser untorch.LongTensorde longitud(number of bounding boxes in the image,)y las cajas untorch.Tensorde forma(number of bounding boxes in the image, 4).
Devuelve
DetrObjectDetectionOutput o tuple(torch.Tensor)
Un DetrObjectDetectionOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (None) y las entradas.
El método forward de DetrForObjectDetection sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
loss (
torch.Tensorde forma(1,), opcional, devuelta cuando se proporcionanlabels) — Pérdida total como combinación lineal de una log-verosimilitud negativa (entropía cruzada) para la predicción de clases y una pérdida de caja delimitadora. Esta última se define como una combinación lineal de la pérdida L1 y la pérdida de IoU generalizada e invariante a la escala.loss_dict (
Dict, opcional) — Un diccionario que contiene las pérdidas individuales. Útil para el registro.logits (
torch.Tensorde forma(batch_size, num_queries, num_classes + 1)) — Logits de clasificación (incluyendo no-objeto) para todas las consultas.pred_boxes (
torch.Tensorde forma(batch_size, num_queries, 4)) — Coordenadas de cajas normalizadas para todas las consultas, representadas como (center_x, center_y, width, height). Estos valores están normalizados en [0, 1], relativos al tamaño de cada imagen individual del lote (ignorando el relleno posible). Puede usar post_process_object_detection() para obtener las cajas delimitadoras no normalizadas.auxiliary_outputs (
list[Dict], opcional) — Opcional, solo se devuelve cuando se activan las pérdidas auxiliares (es decir,config.auxiliary_lossestá establecido enTrue) y se proporcionan etiquetas. Es una lista de diccionarios que contienen las dos claves anteriores (logitsypred_boxes) para cada capa del decodificador.last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo.decoder_hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de los embeddings, si el modelo tiene una capa de embedding, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del decodificador en la salida de cada capa más las salidas de la incrustación inicial.
decoder_attentions (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
cross_attentions (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del codificador del modelo.encoder_hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del codificador en la salida de cada capa más las salidas de la incrustación inicial.
encoder_attentions (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
Ejemplos:
>>> from transformers import AutoImageProcessor, DetrForObjectDetection
>>> 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()))
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50")
>>> model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50")
>>> 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.9, 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 remote with confidence 0.998 at location [40.16, 70.81, 175.55, 117.98]
Detected remote with confidence 0.996 at location [333.24, 72.55, 368.33, 187.66]
Detected couch with confidence 0.995 at location [-0.02, 1.15, 639.73, 473.76]
Detected cat with confidence 0.999 at location [13.24, 52.05, 314.02, 470.93]
Detected cat with confidence 0.999 at location [345.4, 23.85, 640.37, 368.72]DetrForSegmentation
clase transformers.DetrForSegmentation
< source >( config: DetrConfig )
Parámetros
- config (DetrConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.
Modelo DETR (constituido por un backbone y un Transformer encoder-decoder) con una cabeza de segmentación en la parte superior, para tareas como COCO panoptic.
Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).
Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.
forward
< source >( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DetrSegmentationOutput or tuple(torch.Tensor)
Parámetros
- pixel_values (
torch.Tensorde forma(batch_size, num_channels, image_size, image_size)) — Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener utilizandoimage_processor_class. Consulteimage_processor_class.__call__para más detalles (processor_classutilizaimage_processor_classpara procesar las imágenes). - pixel_mask (
torch.LongTensorde forma(batch_size, height, width), opcional) — Máscara para evitar realizar atención sobre los valores de píxeles de relleno. Valores de máscara seleccionados en[0, 1]:- 1 para los píxeles reales (es decir, no enmascarados),
- 0 para los píxeles que son relleno (es decir, mascarados).
- decoder_attention_mask (
torch.Tensorde forma(batch_size, num_queries), opcional) — Máscara para evitar realizar atención sobre ciertas consultas de objetos en el decodificador. Valores de máscara seleccionados en[0, 1]:- 1 para las consultas que no están enmascaradas,
- 0 para las consultas que están mascaradas.
- encoder_outputs (
torch.Tensor, opcional) — La tupla consiste en (last_hidden_state, opcional:hidden_states, opcional:attentions)last_hidden_statede forma(batch_size, sequence_length, hidden_size), opcional) es una secuencia de hidden-states en la salida de la última capa del codificador. Se utiliza en la atención cruzada del decodificador. - inputs_embeds (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Se mantiene por compatibilidad con versiones anteriores, pero no se puede usar para la segmentación, ya que la segmentación requiere características multiescala del backbone que no están disponibles al omitirlo mediante inputs_embeds. - decoder_inputs_embeds (
torch.Tensorde forma(batch_size, num_queries, hidden_size), opcional) — Opcionalmente, en lugar de inicializar las consultas con un tensor de ceros, puede elegir pasar directamente una representación incrustada. Útil para tareas que requieren una inicialización personalizada de las consultas. - labels (
list[Dict]de longitud(batch_size,), opcional) — Etiquetas para calcular la pérdida de bipartite matching, la pérdida DICE/F-1 y la pérdida Focal. Lista de diccionarios, cada diccionario contiene al menos las siguientes 3 claves: ‘class_labels’, ‘boxes’ y ‘masks’ (las etiquetas de clase, las cajas delimitadoras y las máscaras de segmentación de una imagen en el lote, respectivamente). Las etiquetas de clase en sí deben ser untorch.LongTensorde longitud(number of bounding boxes in the image,), las cajas untorch.Tensorde forma(number of bounding boxes in the image, 4)y las máscaras untorch.Tensorde forma(number of bounding boxes in the image, height, width).
Devuelve
DetrSegmentationOutput o tuple(torch.Tensor)
Un DetrSegmentationOutput o una tupla de
torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios
elementos según la configuración (None) y las entradas.
El método forward de DetrForSegmentation sobrescribe el método especial __call__.
Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de
Moduledespués en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.
loss (
torch.Tensorde forma(1,), opcional, devuelta cuando se proporcionanlabels) — Pérdida total como combinación lineal de una log-verosimilitud negativa (entropía cruzada) para la predicción de clases y una pérdida de caja delimitadora. Esta última se define como una combinación lineal de la pérdida L1 y la pérdida de IoU generalizada e invariante a la escala.loss_dict (
Dict, opcional) — Un diccionario que contiene las pérdidas individuales. Útil para el registro.logits (
torch.Tensorde forma(batch_size, num_queries, num_classes + 1)) — Logits de clasificación (incluyendo no-objeto) para todas las consultas.pred_boxes (
torch.Tensorde forma(batch_size, num_queries, 4)) — Coordenadas de cajas normalizadas para todas las consultas, representadas como (center_x, center_y, width, height). Estos valores están normalizados en [0, 1], relativos al tamaño de cada imagen individual del lote (ignorando el relleno posible). Puede usar post_process_object_detection() para obtener las cajas delimitadoras no normalizadas.pred_masks (
torch.Tensorde forma(batch_size, num_queries, height/4, width/4)) — Logits de máscaras de segmentación para todas las consultas. Consulte también post_process_semantic_segmentation() o post_process_instance_segmentation() post_process_panoptic_segmentation() para evaluar las máscaras de segmentación semántica, de instancia y panóptica, respectivamente.auxiliary_outputs (
list[Dict], opcional) — Opcional, solo se devuelve cuando se activan las pérdidas auxiliares (es decir,config.auxiliary_lossestá establecido enTrue) y se proporcionan etiquetas. Es una lista de diccionarios que contienen las dos claves anteriores (logitsypred_boxes) para cada capa del decodificador.last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del decodificador del modelo.decoder_hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de los embeddings, si el modelo tiene una capa de embedding, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del decodificador en la salida de cada capa más las salidas de la incrustación inicial.
decoder_attentions (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
cross_attentions (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención de la capa de atención cruzada del decodificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de atención cruzada.
encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Secuencia de estados ocultos en la salida de la última capa del codificador del modelo.encoder_hidden_states (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_hidden_states=Trueo cuandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(una para la salida de las incrustaciones, si el modelo tiene una capa de incrustaciones, + una para la salida de cada capa) de forma(batch_size, sequence_length, hidden_size).Estados ocultos del codificador en la salida de cada capa más las salidas de la incrustación inicial.
encoder_attentions (
tuple[torch.Tensor], opcional, se devuelve cuando se pasaoutput_attentions=Trueo cuandoconfig.output_attentions=True) — Tupla detorch.Tensor(una por cada capa) de forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atención del codificador, después del softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.
Ejemplos:
>>> import io
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from PIL import Image
>>> import torch
>>> import numpy
>>> from transformers import AutoImageProcessor, DetrForSegmentation
>>> from transformers.image_transforms import rgb_to_id
>>> 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("facebook/detr-resnet-50-panoptic")
>>> model = DetrForSegmentation.from_pretrained("facebook/detr-resnet-50-panoptic")
>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> # forward pass
>>> outputs = model(**inputs)
>>> # Use the `post_process_panoptic_segmentation` method of the `image_processor` to retrieve post-processed panoptic segmentation maps
>>> # Segmentation results are returned as a list of dictionaries
>>> result = image_processor.post_process_panoptic_segmentation(outputs, target_sizes=[(300, 500)])
>>> # A tensor of shape (height, width) where each value denotes a segment id, filled with -1 if no segment is found
>>> panoptic_seg = result[0]["segmentation"]
>>> panoptic_seg.shape
torch.Size([300, 500])
>>> # Get prediction score and segment_id to class_id mapping of each segment
>>> panoptic_segments_info = result[0]["segments_info"]
>>> len(panoptic_segments_info)
5