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