Deformable DETR
Deformable DETR modelo con ResNet-50 backbone. El modelo Deformable DEtection TRansformer (DETR) entrenado de extremo a extremo en la detección de objetos COCO 2017 (118k imágenes anotadas). Fue introducido en el artículo Deformable DETR: Deformable Transformers for End-to-End Object Detection por Zhu et al. y se publicó por primera vez en este repositorio. El modelo DETR es un transformador codificador-decodificador con una columna vertebral convolucional. Se agregan dos cabezas 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 las cajas delimitadoras. El modelo utiliza las llamadas 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 objetos se establece en 100.
Como usar
Aquí se muestra cómo usar este modelo:
from transformers import AutoImageProcessor, DeformableDetrForObjectDetection
import torch
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
processor = AutoImageProcessor.from_pretrained("SenseTime/deformable-detr")
model = DeformableDetrForObjectDetection.from_pretrained("SenseTime/deformable-detr")
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
# convertir salidas (cajas delimitadoras y logits de clase) al API COCO
# solo mantenemos detecciones con puntaje > 0.7
target_sizes = torch.tensor([image.size[::-1]])
results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.7)[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 "
f"{round(score.item(), 3)} en la ubicación {box}")
Esto debería dar como resultado:
Detectado gato con confianza 0.856 en la ubicación [342.19, 24.3, 640.02, 372.25]
Detectado control remoto con confianza 0.739 en la ubicación [40.79, 72.78, 176.76, 117.25]
Detectado gato con confianza 0.859 en la ubicación [16.5, 52.84, 318.25, 470.78]
Funcionalidades
- Modelo Deformable DEtection TRansformer (DETR)
- Codificador-decodificador transformador con columna vertebral convolucional
- Capas lineales para etiquetas de clase y MLP para cajas delimitadoras
- Entrenamiento utilizando una 'pérdida de coincidencia bipartita'
- Algoritmo de coincidencia Húngaro para crear una mapeo óptimo uno a uno
Casos de uso
- Detección de objetos en imágenes
- Aplicaciones de seguridad y vigilancia
- Automatización de procesos en industria