R&D LAB Investigación aplicada En desarrollo Versión Android en pruebas de campo
Vellum
Un escáner de documentos que calcula en el teléfono
Bordes, perspectiva, luz y texto se calculan en el teléfono. Un documento solo sale del dispositivo cuando alguien lo envía.
- 0servidores por los que pasa una página
- 1pasada de GPU para corrección y tono
- 11modos de imagen en el mismo shader
- 2detectores de bordes: visor y captura

Capturado en el banco de pruebas del navegador, que ejecuta el mismo detector y el mismo shader que la aplicación. La página es un documento de prueba sintético proyectado en una foto de escritorio.
Por qué se publica
Construimos IA documental y asesoramos sobre dónde pueden residir los datos. Vellum muestra la parte de ese trabajo que va antes de cualquier modelo: preparar una imagen para que sea legible, y hacerlo allí donde ya está el documento. Eso exige un procesamiento de imagen cuya precisión se mide en lugar de estimarse, y la disciplina de probar en hardware real, porque es ahí donde aparecen defectos que ningún navegador encuentra. Si planea procesar documentos sensibles sin pasar por servidores ajenos, aquí ve cómo construimos algo así.
Un escáner fotografía documentos que uno prefiere no entregar: contratos, albaranes, documentos de identidad. Vellum encuentra los bordes de la página ya en la imagen de la cámara, corrige la perspectiva mediante una homografía, compensa luz y contraste en un fragment shader en la GPU y reconoce el texto en el teléfono. No hay ningún servidor por el que pase una página en el camino. Los PDF y las imágenes salen del dispositivo por el menú de compartir del sistema operativo, es decir, solo cuando alguien pulsa enviar por sí mismo. La aplicación está construida con Expo y React Native; una versión para Android se está probando actualmente en un emulador y en un teléfono.
La decisión
El teléfono ya está donde está el documento
La primera pregunta a este escáner no fue lo bien que encuentra los bordes, sino adónde va una página mientras lo hace. Un servidor que prepara imágenes y lee texto se construye rápido. Pero también es un lugar más donde quedan contratos, documentos de identidad y albaranes, con todas las preguntas que eso conlleva: quién tiene acceso, durante cuánto tiempo, en qué país. Por eso Vellum no tiene ninguno. Detección, corrección de perspectiva, corrección tonal y reconocimiento de texto se ejecutan en el teléfono.
De esa decisión se desprende casi todo lo demás. La corrección de perspectiva es una homografía en un fragment shader y no una llamada a un servicio. El reconocimiento de texto escribe una capa de texto invisible en el PDF, en la posición de cada línea reconocida, y hace que la biblioteca se pueda buscar sin que el texto se suba nunca. Enviar significa que la aplicación de correo o el menú de compartir del sistema se abre con el archivo adjunto, y una persona pulsa enviar.
El precio de eso hay que nombrarlo con claridad. Todo lo que necesita un servidor falta a propósito: sincronización entre dispositivos, enlaces para compartir, traducción, reconocimiento de texto en la nube. Tampoco existe el envío sin intervención, porque cada envío pasa por una persona. Y la potencia de cálculo es la del teléfono, así que cada paso tiene que caber en su presupuesto.
Lo que no sale del dispositivo no está en un segundo lugar.
El recorrido de una página
De la imagen de la cámara al archivo con búsqueda
- 01 Bordes en el visor En cada imagen de la cámara, un worklet lee el plano de luminosidad en una cuadrícula gruesa, y solo la parte que la pantalla muestra de verdad. De ahí sale un contorno que se suaviza y se mantiene durante unas pocas imágenes perdidas. Las esquinas se pueden arrastrar antes de disparar.
- 02 Esquinas tras la captura Sobre la foto busca un detector más minucioso: umbral de Otsu, regiones conexas, solo las celdas de borde situadas sobre un salto real de luminosidad, y después una recta por lado ajustada por mínimos cuadrados. Si no encuentra nada, se usa la imagen completa y las esquinas se colocan a mano. Por defecto sigue una revisión de esquinas.
- 03 Corregir y compensar la luz Una sola pasada de GPU. El shader lleva cada coordenada de salida de vuelta a la foto mediante la homografía y lee ahí. Estima el blanco del papel a partir de dos copias reducidas de la foto, de modo que cada luminosidad es relativa al papel, esté donde esté la lámpara.
- 04 Reconocer el texto El reconocimiento de texto se ejecuta en el dispositivo. A partir de la dirección de las líneas reconocidas, la aplicación lee si hay que girar la página y cuánto está inclinada, y corrige ambas cosas mediante la lista de esquinas. Si las líneas no coinciden, la página se queda como está.
- 05 PDF y envío Las páginas se convierten en un PDF con capa de texto invisible o en imágenes sueltas. Un tamaño objetivo reduce primero la calidad JPEG y solo después la resolución. El archivo sale por la aplicación de correo o por el menú de compartir del sistema.
Solo se busca lo que se ve
La vista previa llena la pantalla, pero la imagen de la cámara tiene otra relación de aspecto. En un teléfono alargado, aproximadamente un tercio de cada imagen queda por eso fuera de la pantalla. Mientras el detector buscaba también en ese tercio, podía colocar una esquina en un lugar que nadie veía y nadie podía arrastrar. Ahora los dos detectores buscan solo en la zona visible.
La segunda causa de un borde desplazado era una zona clara junto a la página, por ejemplo un círculo de luz de una lámpara, que se fundía con el papel en una sola mancha. Desde entonces, cada lado del contorno se valora según haya o no un salto real de luminosidad a través de él. Un círculo de luz se difumina suavemente; un borde de papel, no.
Los dos detectores tienen un entorno de medición que da el error de esquinas en un conjunto fijo de páginas de prueba frente a valores de referencia determinados de forma independiente. Cada cambio se mide antes y después.
Lo que está fijado en el dispositivo
Tras la captura, todo sigue siendo editable
La vista de documento muestra cada página con su modo de imagen y su tamaño de salida. Desde aquí se puede retocar cualquier página: arrastrar esquinas, con una lupa que salta al lado opuesto para que el dedo nunca tape la esquina, y elegir un modo de imagen en una tira que muestra cada modo como pequeña vista previa del recorte actual.
Girar, recolocar las esquinas y dividir una doble página de un libro por el pliegue son cambios en la lista de esquinas del mismo original, no ediciones de píxeles. La doble página no necesita para ello una segunda foto. Además, las páginas se pueden mover, volver a capturar y unir con otro documento.
Lo que prueba el banco de pruebas y lo que solo muestra el dispositivo
Comprobable en el navegador
- La geometría de la detección de bordes, porque el banco ejecuta el mismo detector.
- El tono de cada modo de imagen, porque el mismo shader GLSL ES 1.00 se ejecuta en WebGL.
- Un borde claro a lo largo del canto de la página, causado por un contorno elegido un poco demasiado grande.
- El error de esquinas por página de prueba, medido frente a valores de referencia fijos.
Visible solo en la versión Android
- Una sesión de cámara que no se dejaba configurar, porque la vista de cámara ya trae su propia vista previa.
- Contornos en el lugar equivocado, porque las coordenadas del sensor llegan en la orientación del sensor y primero hay que girarlas.
- Páginas reflejadas en vertical, porque un framebuffer se lee de abajo arriba.
- Páginas negras, porque una decodificación nativa de imagen fallaba sin notificar ningún error.
- Cierres inesperados que solo ocurren en la versión de publicación y en desarrollo son como mucho una advertencia.
Buscar en lo que el teléfono ha leído
La biblioteca filtra por etiquetas, por antigüedad y por el texto reconocido en las páginas. Un documento lleva hasta ocho etiquetas. Los preajustes de recibo, contrato y documento de identidad fijan a la vez el modo de imagen y la maquetación; con el documento de identidad, dos capturas van en una hoja A4.
Si se desea, una cola procesa el reconocimiento de texto de las páginas ya guardadas, una página tras otra y solo mientras la aplicación está en primer plano. Una foto que otra aplicación pasa a Vellum recorre la misma cadena que una captura. En ambos casos ninguna imagen sale del dispositivo.
Para qué está pensada esta construcción
- Documentos que no deben quedar en un servicio de escaneo: contratos, expedientes de personal, copias de documentos de identidad.
- Servicio de campo y almacén, donde un albarán se captura in situ y se envía desde allí.
- Recibos con impresión térmica desvaída, para los que hay un modo de imagen propio.
- Como primer paso de una IA documental con los datos en casa: las páginas se hacen legibles en el dispositivo antes de procesar nada más.
- Como plantilla para sus propias aplicaciones que procesan imágenes con shaders en el dispositivo en lugar de en un servidor.
Por qué se publica
Lo que esto significa para su proyecto
Más del laboratorio
Método Event Scout Un modelo de lenguaje lee las páginas de eventos; todo lo demás es código fijo. Queda una lista breve de dónde merece la pena un día presencial.
Diseño computacional Atlas EV1 Doce capítulos desmontan un coche eléctrico, hasta una sola celda. Sin archivos de modelo ni texturas: 327 piezas de una tabla de medidas.
Método Contradiction Indique qué debe mejorar y qué empeora al hacerlo. Obtiene los principios que resolvieron ese par exacto y los inventos que lo lograron. ¿Deben volverse legibles documentos sensibles sin pasar por servidores ajenos? Para eso existe un piloto.
Contactar