onnx-community/yolov10b

onnx-community
Detección de objetos

YOLOv10: Detección de objetos en tiempo real de extremo a extremo. Proporciona un equilibrio entre latencia y precisión, así como entre tamaño y precisión.

Como usar

import { AutoModel, AutoProcessor, RawImage } from '@xenova/transformers';

// Cargar el modelo
const model = await AutoModel.from_pretrained('onnx-community/yolov10b', {
  quantized: false,    // (Opcional) Usar la versión no cuantizada
});

// Cargar el procesador
const processor = await AutoProcessor.from_pretrained('onnx-community/yolov10b');

// Leer imagen y ejecutar el procesador
const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/city-streets.jpg';
const image = await RawImage.read(url);
const { pixel_values, reshaped_input_sizes } = await processor(image);

// Ejecutar detección de objetos
const { output0 } = await model({ images: pixel_values });
const predictions = output0.tolist()[0];

const threshold = 0.5;
const [newHeight, newWidth] = reshaped_input_sizes[0]; // Altura y ancho redimensionados
const [xs, ys] = [image.width / newWidth, image.height / newHeight]; // Escalas de redimensionamiento en x y y
for (const [xmin, ymin, xmax, ymax, score, id] of predictions) {
  if (score < threshold) continue;

  // Convertir a coordenadas originales de imagen
  const bbox = [xmin * xs, ymin * ys, xmax * xs, ymax * ys].map(x => x.toFixed(2)).join(', ');
  console.log(`Encontrado "${model.config.id2label[id]}" en [${bbox}] con puntaje ${score.toFixed(2)}.`);
}

Funcionalidades

Pesos ONNX
Detección de objetos
Equilibrio entre latencia y precisión
Equilibrio entre tamaño y precisión

Casos de uso

Detección de objetos en imágenes en tiempo real
Aplicaciones de vigilancia
Sistemas de asistencia a la conducción
Detección de objetos en flujos de cámaras