REVA-QCAV

1aurent
Detección de objetos

Un modelo Transformer de detección (DETR) con una infraestructura ResNet-50 (facebook/detr-resnet-50) afinado en un conjunto de datos personalizado de esferas de calibración fotogramétrica.

Como usar

Object Detection (usando transformers)

from transformers import AutoImageProcessor, AutoModelForObjectDetection
from huggingface_hub import hf_hub_download
from PIL import Image
import torch

# descargar imagen de ejemplo
img_path = hf_hub_download(repo_id="1aurent/REVA-QCAV", filename="examples/chevaux.jpg")
img = Image.open(img_path)

# transformar imagen usando image_processor
image_processor = AutoImageProcessor.from_pretrained("1aurent/REVA-QCAV")
data = image_processor(img, return_tensors="pt")

# obtener salidas del modelo
model = AutoModelForObjectDetection.from_pretrained("1aurent/REVA-QCAV")
with torch.no_grad():
    output = model(**data)

# usar post procesamiento de image_processor
img_CHW = torch.tensor([img.height, img.width]).unsqueeze(0)
output_processed = image_processor.post_process_object_detection(output, threshold=0.9, target_sizes=img_CHW)

Object Detection (usando onnxruntime)

from transformers.models.detr.modeling_detr import DetrObjectDetectionOutput
from transformers import AutoImageProcessor
from huggingface_hub import hf_hub_download
import onnxruntime as ort
from PIL import Image
import torch

# descargar onnx y comenzar sesión de inferencia
onnx_path = hf_hub_download(repo_id="1aurent/REVA-QCAV", filename="model.onnx")
session = ort.InferenceSession(onnx_path)

# descargar imagen de ejemplo
img_path = hf_hub_download(repo_id="1aurent/REVA-QCAV", filename="examples/chevaux.jpg")
img = Image.open(img_path)

# transformar imagen usando image_processor
image_processor = AutoImageProcessor.from_pretrained("1aurent/REVA-QCAV")
data = image_processor(img, return_tensors="np").data

# obtener logits y predicciones de bbox usando sesión onnx
logits, pred_boxes = session.run(
    output_names=["logits", "pred_boxes"],
    input_feed=data,
)

# envolver salidas dentro de DetrObjectDetectionOutput
output = DetrObjectDetectionOutput(
    logits=torch.tensor(logits),
    pred_boxes=torch.tensor(pred_boxes),
)

# usar post procesamiento de image_processor
img_CHW = torch.tensor([img.height, img.width]).unsqueeze(0)
output_processed = image_processor.post_process_object_detection(output, threshold=0.9, target_sizes=img_CHW)

Funcionalidades

Detección de objetos
Transformers
Soporte ONNX
Safetensors
Calibración fotogramétrica

Casos de uso

Detección de objetos en imágenes
Calibración de iluminación mediante la detección de esferas en imágenes