¿Qué es franken_ocr?
franken_ocr ejecuta Unlimited-OCR de Baidu, un modelo de documentos mixture-of-experts de 3B derivado de DeepSeek-OCR, en una CPU corriente. En lugar de un framework de ML general, porta a mano unos pocos modelos fijos y cuantiza a int8 las capas feed-forward del decodificador en su propio formato .focrq, manteniendo con más precisión la torre de visión, la atención y la cabeza de salida. La herramienta de línea de comandos, focr, se distribuye como un binario de 13 a 17MB para macOS, Linux y Windows en x86-64 y ARM64.
Además de Unlimited-OCR ejecuta GOT-OCR2 para fórmulas y tablas, SmolVLM2 para describir imágenes, OneChart para datos de gráficos y Polyphonic-TrOMR, que convierte partituras escaneadas en MusicXML. Lee PDF escaneados de forma nativa, puede procesar muchas páginas en una pasada y tiene un modo 'robot' NDJSON para agentes.
El proyecto empezó el 25 de junio de 2026 y llegó a la v0.9.1 el 29 de septiembre. Es obra de una sola persona, Jeffrey Emanuel (los 792 commits), que no integra contribuciones externas. La licencia es MIT más una cláusula que no concede ningún derecho a OpenAI, Anthropic ni a nadie que actúe en su nombre, por eso GitHub no puede clasificarla y por eso no es una licencia de código abierto aprobada por la OSI.
¿Merece la pena franken_ocr?
franken_ocr está hecho para una sola tarea: ejecutar un modelo moderno de análisis de documentos en una máquina sin GPU. La pila oficial de Unlimited-OCR de Baidu es Python más CUDA; esto la sustituye por un binario e inferencia sin conexión. En el registro de rendimiento del autor, en una máquina Apple Silicon con 8 hilos, una página tardó 8,6 segundos de principio a fin frente a 28,9 segundos de la referencia de Hugging Face en CPU con bf16, y otra 14,7 frente a 41,3, unas tres veces más rápido. Son mediciones suyas, y están inusualmente bien documentadas, con las filas perdedoras junto a las ganadoras.
La precisión se sostiene según sus cifras, pero no es perfecta. Una ejecución histórica sobre páginas reales midió una tasa de error por carácter de 0,0094 frente a la decodificación de referencia; el artefacto de la versión actual supera un corpus de 20 páginas con una tasa de error normalizada agregada de 0,193, con una página difícil tirando de la cola. El artefacto int8 de Unlimited-OCR ocupa unos 4,2GB en disco y su pico supera con creces esa cifra, así que el propio README advierte de que una máquina de 8GB se pasará el tiempo usando swap.
La licencia es lo primero que verán los abogados de una empresa. Es MIT, salvo que OpenAI, Anthropic, sus filiales y cualquiera que trabaje en su nombre no reciben ningún derecho, ni siquiera para probar o analizar el código. Es poco probable que eso afecte directamente a la mayoría de usuarios, pero es una licencia no estándar que los equipos de compras señalarán, y los contratistas de cualquiera de las dos empresas quedan excluidos.
Lo segundo es el factor autobús. Todos los commits son del autor, que afirma que no integrará pull requests externos, las compilaciones desde el código necesitan una toolchain nightly de Rust fijada y el crate tiene unas 83 descargas en crates.io. El trabajo es cuidadoso y las comprobaciones de cada versión son exhaustivas, pero estás adoptando el proyecto de una persona en sus términos.
Dónde se gana su sitio
Una investigadora que digitaliza libros escaneados en un portátil de 32GB sin GPU dedicada
Convertir capítulos concretos de PDF escaneados en Markdown sin conexión
Instala el binario, ejecuta focr pull y después focr ocr book.pdf --pages 3,5-9 --split-spreads -o excerpt.md. Gratis; cuenta con entre segundos y decenas de segundos por página en CPU, con el daemon residente manteniendo los pesos cargados entre ejecuciones.
Un bibliotecario musical en un conservatorio
Convertir partituras impresas de dominio público en MusicXML editable
focr pull tromr y después focr ocr --task music en cada página; el modelo TrOMR int8 de 61MB detecta los pentagramas, reconoce cada uno y los une. Las fotos de cámara todavía hay que aplanarlas antes, algo que el autor tiene en la lista de trabajo pendiente.
Antes de decidirte
- Puesta en marcha
- Descarga con curl el script de instalación (o PowerShell en Windows), que baja el binario y comprueba su SHA256; focr pull descarga y verifica el artefacto de Unlimited-OCR de unos 4,2GB. Compilar desde el código necesita la toolchain nightly de Rust fijada.
- Integraciones
- Biblioteca de Rust con una API OcrEngine bloqueante, la CLI focr, modo robot NDJSON con un esquema publicado y códigos de salida estables; salida en Markdown, JSON con cajas, recortes de figuras y MusicXML.
- Datos y privacidad
- La inferencia es sin conexión una vez instalados los pesos; el uso de red se limita a focr pull. El historial de ejecuciones se registra en una base de datos local (~/.cache/franken_ocr/runs.db). La licencia es MIT con una cláusula que excluye a OpenAI, Anthropic y a cualquiera que actúe en su nombre.
- Coste a escala
- No hay edición de pago; el coste es tiempo de CPU. El registro del autor muestra páginas sueltas que tardan entre unos 9 y 15 segundos con 8 hilos de Apple Silicon, así que los volúmenes grandes siguen favoreciendo una pila con GPU como vLLM.
- Límites
- Solo CPU por diseño (CUDA es un 'deferred stretch goal'); cinco modelos fijos, no cualquiera; int4 no está validado; unas 83 descargas en crates.io y un proyecto de solo cuatro meses.
Lo bueno
- Ejecuta Unlimited-OCR en CPU, sin Python, CUDA ni GPU
- El registro del autor muestra que es unas 3x más rápido que la vía de Hugging Face en CPU
- Binarios de 13 a 17MB para seis plataformas con comprobación SHA256
- Modelos extra para fórmulas, gráficos y partituras
Lo malo
- Licencia propia que excluye a OpenAI, Anthropic y sus contratistas
- Un solo mantenedor que no integra contribuciones externas
- Artefacto del modelo de unos 4,2GB; las máquinas de 8GB tiran de swap
- Las compilaciones desde el código necesitan Rust nightly
Ideal para
Desarrolladores individuales y equipos pequeños que necesitan la calidad de Unlimited-OCR en máquinas solo con CPU y aceptan un proyecto de un solo autor y su licencia.
Alternativas a franken_ocr
franken_ocr: preguntas frecuentes
- ¿Merece la pena franken_ocr?
- franken_ocr es una pieza de ingeniería seria que lleva Unlimited-OCR a la CPU de un portátil, envuelta en una licencia y un modelo de gobernanza que la mayoría de empresas no aceptará. Le damos un 3.5 sobre 5.
- ¿Cuánto cuesta franken_ocr?
- Gratuito con licencia MIT y una cláusula que excluye a OpenAI y Anthropic; los pesos de los modelos conservan sus licencias originales (Unlimited-OCR es MIT).
- ¿Qué inconvenientes tiene franken_ocr?
- Licencia propia que excluye a OpenAI, Anthropic y sus contratistas; un solo mantenedor que no integra contribuciones externas; artefacto del modelo de unos 4,2GB; las máquinas de 8GB tiran de swap; las compilaciones desde el código necesitan Rust nightly.
- ¿Para quién es franken_ocr?
- Desarrolladores individuales y equipos pequeños que necesitan la calidad de Unlimited-OCR en máquinas solo con CPU y aceptan un proyecto de un solo autor y su licencia.
- ¿Cuánto cuesta franken_ocr para un equipo o en producción?
- No hay edición de pago; el coste es tiempo de CPU. El registro del autor muestra páginas sueltas que tardan entre unos 9 y 15 segundos con 8 hilos de Apple Silicon, así que los volúmenes grandes siguen favoreciendo una pila con GPU como vLLM.
- ¿Es franken_ocr seguro para los datos de la empresa?
- La inferencia es sin conexión una vez instalados los pesos; el uso de red se limita a focr pull. El historial de ejecuciones se registra en una base de datos local (~/.cache/franken_ocr/runs.db). La licencia es MIT con una cláusula que excluye a OpenAI, Anthropic y a cualquiera que actúe en su nombre.
- ¿Cuáles son las mejores alternativas a franken_ocr?
- Las alternativas más cercanas que hemos analizado son deepseek-ocr.rs, Xberg (formerly Kreuzberg), Ocrs y Docling.
Respuestas comprobadas el 26 oct 2026.