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