Logotipo de ScanVIN.app Scan VIN
Idioma
Seleccionar idioma
Al cambiar el idioma se mantendrá la subpágina actual.

¿Cómo funciona nuestro escáner de VIN?

¿Cómo funciona nuestro escáner de VIN? Escribir el número VIN a mano es una de esas pequeñas tareas molestas que, cuando te equivocas, generan pérdidas reales. ¿Era un 8 o una B? ¿Un 5 o una S? Un solo carácter erróneo y el informe de historial del vehículo llega vacío o, lo que es peor, describe el coche de otra persona. Por eso hemos creado un escáner de VIN que funciona íntegramente en el navegador de tu teléfono. Sin instalar aplicaciones, sin enviar fotos. En esta entrada te mostraremos qué ocurre realmente en los dos o tres segundos entre apuntar la cámara al número VIN y ver el resultado, incluidas algunas cosas que nos sorprendieron durante el desarrollo.

Dos redes neuronales, una sola tarea

Cuando tocas “Escanear”, tu navegador descarga dos pequeños modelos de IA (en total unos 13 MB, que se guardan en caché tras la primera visita) y los ejecuta localmente mediante WebAssembly. Cada uno tiene una función muy concreta. rol. El Buscador. El primer modelo es un detector de objetos de la familia YOLO que hemos entrenado para hacer exactamente una cosa: encontrar el número VIN en un fotograma de la cámara. No “encontrar texto”, sino encontrar el VIN. Ha visto números VIN en placas en el salpicadero junto al parabrisas, adhesivos en el pilar de la puerta, grabados en metal desnudo en las torretas de los amortiguadores, así como en documentos de matriculación impresos, de modo que distingue entre un número VIN y una matrícula o un número de pieza cualquiera. Y lo que es importante, no se limita a dibujar un recuadro alrededor del VIN: devuelve un recuadro rotado, por lo que conoce el ángulo exacto del texto, incluso cuando sostienes el teléfono torcido o fotografías el compartimento del motor de lado. Lector. La tira de píxeles recortada y enderezada pasa a continuación a un segundo modelo: una red de reconocimiento de texto de la familia PaddleOCR, que hemos ajustado especialmente para los números VIN. Un modelo OCR universal tiene que contemplar miles de caracteres; el nuestro solo conoce 33.

¿Por qué solo 33 caracteres? Una curiosidad de 1981

Las letras I, O y Q están prohibidas en los números VIN. La norma ISO de 1981 las excluyó precisamente porque es demasiado fácil confundirlas con las cifras 1 y 0: en el metal troquelado, en las pegatinas descoloridas y (para más inri) en el OCR. Hemos incorporado esta regla directamente en el alfabeto del modelo-lector. Es físicamente incapaz de escribir O: si un carácter parece redondo, la respuesta permitida más cercana es 0 y eso es exactamente lo que devuelve. Toda una clase de errores OCR clásicos simplemente no puede producirse. Es la mayor ventaja individual de ajustar el modelo específicamente para los números VIN en lugar de usar un motor OCR genérico.

Una sola foto es una conjetura. El vídeo es una prueba.

En una fase temprana tomamos una decisión que dio forma a todo el escáner: nunca confíes en un solo fotograma. La cámara de tu dispositivo proporciona un nuevo fotograma varias veces por segundo, así que en lugar de jugárnoslo todo a una sola toma, el escáner lee el número VIN una y otra vez y permite que los fotogramas voten. El resultado solo se acepta cuando los fotogramas independientes coinciden, y el umbral de “coincidencia” es flexible:

  • Si los mismos 17 caracteres aparecen dos veces y la suma de comprobación integrada del VIN es correcta, aceptamos el resultado casi de inmediato.
  • ¿No hay suma de comprobación? (Más sobre esto a continuación). Entonces esperamos a una tercera confirmación.
  • Si los fotogramas siguen sin coincidir en un carácter, cada candidato se pondera según lo seguro que estaba el lector, carácter por carácter. Esta última regla demostró su valor durante las pruebas. En uno de nuestros clips de prueba —un permiso de circulación bajo una luz intensa—, el reflejo hizo que el 0 del número de serie pareciera un 8 en más de la mitad de los fotogramas. La mera repetición habría elegido la respuesta incorrecta. Pero la confianza del modelo en esos 8 era sigue siendo sistemáticamente menor que con lecturas limpias de 0, y la lógica de votación es lo que lo detectó. El escáner simplemente esperó un segundo más a que la evidencia se estabilizara y devolvió el número VIN correcto.

Dígito de control que solo funciona en algunos coches

Los números VIN incluyen un mecanismo oculto de autocontrol: la posición 9 es el dígito de control, calculado a partir de los otros 16 caracteres. Es una excelente señal de verificación cuando funciona. Pero hay un detalle: solo es obligatorio para los vehículos vendidos en Norteamérica. La mayoría de los VIN del mercado europeo ni siquiera lo utilizan. Por eso nuestro escáner trata el dígito de control como un extra, nunca como un requisito. Cuando coincide, podemos aceptar el resultado más rápido. Cuando no coincide, no es un error: probablemente se trate simplemente de un coche europeo, y el peso recae en el sistema de votación de fotogramas.

Tu número VIN nunca sale de tu teléfono

Conviene dejarlo claro: los fotogramas de la cámara se procesan íntegramente en tu dispositivo. Los modelos de IA se descargan en tu navegador; tus imágenes nunca se envían a ningún sitio. No hay ningún servidor realizando el reconocimiento, ni ninguna foto almacenada en la nube. Lo único que sale de tu teléfono es el número VIN final de 17 caracteres, y solo cuando pasas a la página del informe. No fue una decisión motivada únicamente por la privacidad. Gracias a ello, el escáner también es rápido (no hay idas y vueltas al servidor para cada fotograma) y funciona con mala cobertura en un garaje subterráneo, es decir, exactamente donde con más frecuencia estás junto al número VIN.

Cómo funciona en la práctica

En nuestras pruebas, los VIN en el parabrisas, las pegatinas en las puertas, el VIN estampado en la torreta del amortiguador e incluso el permiso de circulación: el escáner suele localizar el número VIN correcto en uno a cuatro segundos. Unas cuantas recomendaciones sinceras para acelerarlo:

  • La luz es lo más importante. El botón de la linterna existe por una razón: los números VIN estampados en el compartimento del motor los adoran.
  • Acércate. El número VIN debería rellenar aproximadamente el marco auxiliar.
  • No busques inmovilidad absoluta. No necesitas una mano perfectamente firme: el sistema de votación se ha diseñado precisamente para los pequeños movimientos que hace una mano real.

Bajo el capó, en resumen

Para quienes sienten curiosidad técnica: la detección funciona sobre un modelo basado en YOLO exportado a ONNX; el reconocimiento lo realiza un modelo PaddleOCR ajustado, con un alfabeto limitado a VIN, y ambos se ejecutan en un único entorno de ejecución WebAssembly (ONNX Runtime) dentro de un web worker, gracias a lo cual la página sigue siendo responsiva. La corrección de perspectiva entre los dos modelos – enderezar la tira girada con el número VIN – utiliza la misma matemática que usa tu aplicación de escaneo de documentos. Todo lo demás es una ingeniería minuciosa en torno a un único principio: lecturas baratas, realizadas con frecuencia y verificadas por coherencia.

Enseñar al escáner qué aspecto tiene un VIN

Hace poco añadimos un tercer «modelo» – y no es una red neuronal. Es un mapa estadístico del aspecto que tienen los VIN reales, construido a partir de más de medio millón de VIN auténticos procedentes de los registros de vehículos europeos y estadounidenses.

La idea es esta. Un VIN no es una cadena aleatoria – tiene gramática. Los tres primeros caracteres identifican al fabricante, los ocho siguientes codifican el modelo, el año y la planta, y cada fabricante sigue sus propios patrones rígidos (a Volkswagen le encanta WVWZZZ…, BMW tiene su propio dialecto). Así que cuando el OCR lee WVW2ZZ…, nuestro modelo de lenguaje sabe que un 2 en ese lugar es miles de veces menos probable que una Z – y prefiere en silencio la lectura que el fabricante realmente habría estampado.

En lugar de dejar que la red lectora elija el único carácter más probable en cada posición y esperar lo mejor, el escáner ahora explora varias lecturas candidatas a la vez (una técnica llamada beam search) y puntúa cada una tanto por lo que dicen los píxeles como por lo que dice la gramática del VIN. La ventaja es mayor precisamente donde escanear es más difícil: los VIN estampados en metal desnudo, donde un carácter vecino se cuela en el recorte o un carácter desgastado desaparece. En nuestro clip de prueba más difícil, la proporción de fotogramas leídos a la perfección pasó de aproximadamente 1 de cada 9 a 3 de cada 4.

Una lección de las pruebas merece compartirse: un lector más inteligente es un lector más coherente – incluso cuando se equivoca de forma coherente. Al principio, el escáner mejorado leía mal un dígito desgastado de la misma manera fotograma tras fotograma, y los fotogramas coincidían encantados en la respuesta equivocada. La solución fue subir el listón: con el modelo de lenguaje activo, el sistema de votación ahora exige una confirmación independiente adicional antes de aceptar un resultado. La precisión está bien; la precisión fiable es el verdadero producto.

Y en coherencia con todo lo anterior: el modelo de lenguaje es un archivo de 190 KB que se descarga junto con los demás modelos y se ejecuta por completo en tu teléfono. Tu VIN sigue sin salir nunca de tu dispositivo.

Pruébalo tú mismo: apunta el teléfono a la esquina del parabrisas de cualquier vehículo y escanea el número VIN.

Escanear VIN