detr-resnet-50-dc5
DEtection TRansformer (DETR) modelo entrenado de extremo a extremo en detección de objetos COCO 2017 (118k imágenes anotadas). Fue introducido en el artículo End-to-End Object Detection with Transformers por Carion et al. y primero lanzado en este repositorio. El modelo DETR es un transformador de codificador-decodificador con una base convolucional. Se añaden 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. El modelo se entrena utilizando una 'pérdida de emparejamiento bipartita': se comparan las clases previstas + cajas delimitadoras de cada una de las N = 100 consultas de objeto con las anotaciones de verdad del terreno, amortiguadas hasta la misma longitud N (por lo que si una imagen solo contiene 4 objetos, 96 anotaciones solo tendrán 'ningún objeto' como clase y 'ninguna caja' como caja delimitadora). El algoritmo de emparejamiento húngaro se utiliza para crear un mapeo óptimo uno a uno entre cada una de las N consultas y cada una de las N anotaciones. Luego, se utilizan la entropía cruzada estándar (para las clases) y una combinación lineal de la pérdida L1 y la pérdida IoU generalizada (para las cajas) para optimizar los parámetros del modelo.
Como usar
Aquí se muestra cómo usar este modelo:
from transformers import DetrFeatureExtractor, DetrForObjectDetection
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = DetrFeatureExtractor.from_pretrained('facebook/detr-resnet-50-dc5')
model = DetrForObjectDetection.from_pretrained('facebook/detr-resnet-50-dc5')
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
# el modelo predice las cajas delimitadoras y las clases COCO correspondientes
logits = outputs.logits
bboxes = outputs.pred_boxes
Actualmente, tanto el extractor de características como el modelo soportan PyTorch.
Funcionalidades
- Modelo de detección de objetos de extremo a extremo.
- Entrenado en COCO 2017 con 118k imágenes anotadas.
- Transformador codificador-decodificador con base convolucional.
- Dos cabezas para detección de objetos: una capa lineal para etiquetas de clase y una MLP para cajas delimitadoras.
- Utiliza consultas de objetos para detectar objetos en la imagen.
- Pérdida de emparejamiento bipartita y algoritmo de emparejamiento húngaro para mapeo óptimo.
- Entropía cruzada estándar y pérdida IoU generalizada para optimización.
Casos de uso
- Detección de objetos en imágenes utilizando transformadores.
- Aplicaciones de visión artificial que requieren identificar y localizar objetos.
- Sistemas de seguridad y vigilancia donde la detección de objetos es vital.
- Análisis automatizado de imágenes en diversos campos como la medicina, el transporte y el comercio minorista.