monica1106/detr-resnet-50

monica1106
Detección de objetos

DETR (Detección de objetos de extremo a extremo) modelo con base ResNet-50. DETR es un modelo transformador de codificador-decodificador con una columna vertebral convolucional. Dos cabezales se agregan en la parte superior de las salidas del decodificador para realizar la detección de objetos: una capa lineal para las etiquetas de clase y una MLP (perceptrón multicapa) para los cuadros delimitadores. El modelo usa consultas de objetos para detectar objetos en una imagen. Cada consulta de objeto busca un objeto particular en la imagen. Para COCO, el número de consultas de objeto se establece en 100. El modelo está entrenado usando una "pérdida de emparejamiento bipartito", comparando las clases predichas y los cuadros delimitadores de cada una de las N = 100 consultas de objeto con las anotaciones de referencia.

Como usar

Aquí se explica cómo usar este modelo:

from transformers import DetrImageProcessor, DetrForObjectDetection
import torch
from PIL import Image
import requests

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

# puedes especificar la etiqueta de revisión si no quieres la dependencia de timm
processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-50", revision="no_timm")
model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", revision="no_timm")

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

# convertir las salidas (cuadros delimitadores y logits de clase) a la API COCO
# solo guardemos las detecciones con puntuación > 0.9
target_sizes = torch.tensor([image.size[::-1]])
results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.9)[0]

for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
    box = [round(i, 2) for i in box.tolist()]
    print(f"Detectado {model.config.id2label[label.item()]} con confianza {round(score.item(), 3)} en la ubicación {box}")

Funcionalidades

Modelo entrenado en el conjunto de datos COCO 2017 para la detección de objetos.
Transformador de codificador-decodificador con columna vertebral convolucional.
Capacidad para detectar objetos en imágenes usando consultas de objetos.
Utiliza el algoritmo de emparejamiento húngaro para la asignación óptima uno a uno entre consultas y anotaciones.
Soporte para PyTorch.

Casos de uso

Detección de objetos en imágenes utilizando transformadores.
Aplicaciones de vigilancia y monitoreo utilizando visión por computadora.
Implementación en sistemas de seguridad para identificar objetos específicos.