O que é franken_ocr?
O franken_ocr roda o Unlimited-OCR da Baidu, um modelo de documentos mixture-of-experts de 3B derivado do DeepSeek-OCR, em uma CPU comum. Em vez de um framework de ML genérico, ele porta à mão alguns modelos fixos e quantiza para int8 as camadas feed-forward do decodificador em seu próprio formato .focrq, mantendo a torre de visão, a atenção e a camada de saída com precisão maior. A ferramenta de linha de comando, focr, é distribuída como um binário de 13 a 17MB para macOS, Linux e Windows em x86-64 e ARM64.
Além do Unlimited-OCR, ele roda o GOT-OCR2 para fórmulas e tabelas, o SmolVLM2 para descrição de imagens, o OneChart para dados de gráficos e o Polyphonic-TrOMR, que transforma partituras digitalizadas em MusicXML. Lê PDFs digitalizados nativamente, consegue processar muitas páginas de uma vez e tem um modo 'robot' em NDJSON para agentes.
O projeto começou em 25 de junho de 2026 e chegou à v0.9.1 em 29 de setembro. É trabalho de uma só pessoa, Jeffrey Emanuel (todos os 792 commits), e ele não aceita contribuições externas. A licença é MIT com uma cláusula adicional que não concede nenhum direito à OpenAI, à Anthropic nem a quem atue em nome delas. Por isso o GitHub não consegue classificá-la, e por isso ela não é uma licença open source da OSI.
franken_ocr vale a pena?
O franken_ocr foi feito para uma tarefa: rodar um modelo moderno de análise de documentos em uma máquina sem GPU. A stack oficial do Unlimited-OCR da Baidu é Python mais CUDA; este projeto a substitui por um único binário e inferência offline. No registro de desempenho do autor, em uma máquina Apple Silicon com 8 threads, uma página levou 8,6 segundos de ponta a ponta contra 28,9 segundos da referência bf16 em CPU do Hugging Face, e outra levou 14,7 contra 41,3, cerca de três vezes mais rápido. São medições dele, e estão documentadas com cuidado incomum, com as linhas desfavoráveis mantidas ao lado das favoráveis.
A precisão se sustenta nos números dele, mas não é perfeita. Uma execução histórica com páginas reais mediu uma taxa de erro por caractere de 0,0094 em relação à decodificação de referência; o artefato da versão atual passa em um corpus de 20 páginas com uma taxa de erro normalizada agregada de 0,193, com uma página difícil puxando a cauda. O artefato int8 do Unlimited-OCR ocupa cerca de 4,2GB em disco e o pico de memória fica bem acima disso, então o próprio README avisa que uma máquina de 8GB vai passar o tempo fazendo swap.
A licença é a primeira coisa que os advogados de uma empresa vão notar. É MIT, exceto que OpenAI, Anthropic, suas afiliadas e qualquer pessoa trabalhando em nome delas não recebem direito algum, nem mesmo para testar ou analisar o código. É improvável que isso afete diretamente a maioria dos usuários, mas é uma licença fora do padrão que as equipes de compras vão sinalizar, e prestadores de serviço de qualquer uma das duas empresas ficam excluídos.
A segunda é o bus factor. Todos os commits são do autor, ele declara que não vai aceitar pull requests externos, compilar a partir do código-fonte exige uma toolchain nightly do Rust fixada, e o crate tem cerca de 83 downloads no crates.io. O trabalho é cuidadoso e as verificações de release são extensas, mas você está adotando o projeto de uma pessoa, nas condições dela.
Onde ele se destaca
Um pesquisador digitalizando livros escaneados em um notebook de 32GB sem GPU dedicada
Converter capítulos selecionados de PDFs digitalizados em Markdown, offline
Instale o binário, rode focr pull e depois focr ocr book.pdf --pages 3,5-9 --split-spreads -o excerpt.md. Gratuito; espere de segundos a dezenas de segundos por página em CPU, com o daemon residente mantendo os pesos carregados entre execuções.
Um bibliotecário musical de um conservatório
Converter partituras impressas em domínio público em MusicXML editável
focr pull tromr e depois focr ocr --task music em cada página; o modelo TrOMR int8 de 61MB detecta as pautas, reconhece cada uma e as junta. Fotos tiradas com câmera ainda precisam ser retificadas antes, o que o autor lista como trabalho pendente.
Antes de decidir
- Configuração
- Baixe o script de instalação com curl (ou PowerShell no Windows), que baixa o binário e verifica o SHA256; focr pull baixa e verifica o artefato do Unlimited-OCR de cerca de 4,2GB. Compilar a partir do código-fonte exige a toolchain nightly do Rust fixada.
- Integrações
- Biblioteca Rust com uma API OcrEngine bloqueante, a CLI focr, modo robot em NDJSON com esquema publicado e códigos de saída estáveis; saída em Markdown, JSON com caixas, recortes de figuras e MusicXML.
- Dados e privacidade
- A inferência é offline depois que os pesos estão instalados; o uso de rede se limita ao focr pull. O histórico de execuções fica registrado em um banco de dados local (~/.cache/franken_ocr/runs.db). A licença é MIT com uma cláusula que exclui OpenAI, Anthropic e qualquer pessoa agindo em nome delas.
- Custo em escala
- Não há edição paga; o custo é tempo de CPU. O registro do autor mostra páginas individuais levando de 9 a 15 segundos em 8 threads de Apple Silicon, então volumes grandes ainda favorecem uma stack com GPU como o vLLM.
- Limites
- Só CPU por design (CUDA é uma 'deferred stretch goal'); cinco modelos fixos, não modelos arbitrários; int4 não está validado; cerca de 83 downloads no crates.io e um projeto com apenas quatro meses.
O que é bom
- Roda o Unlimited-OCR em CPU, sem Python, CUDA nem GPU
- O registro do autor mostra cerca de 3x mais velocidade que o caminho em CPU do Hugging Face
- Binários de 13 a 17MB para seis plataformas com verificação SHA256
- Modelos extras para fórmulas, gráficos e partituras
O que não é
- Licença personalizada que exclui OpenAI, Anthropic e seus prestadores de serviço
- Mantenedor único que não aceita contribuições externas
- Artefato do modelo de cerca de 4,2GB; máquinas de 8GB fazem swap
- Compilar do código-fonte exige Rust nightly
Ideal para
Desenvolvedores individuais e equipes pequenas que precisam da qualidade do Unlimited-OCR em máquinas só com CPU e aceitam um projeto de autor único e sua licença.
Alternativas ao franken_ocr
franken_ocr: perguntas frequentes
- franken_ocr vale a pena?
- O franken_ocr é um trabalho sério de engenharia que leva o Unlimited-OCR para a CPU de um notebook, embalado em uma licença e um modelo de governança que a maioria das empresas não vai aceitar. Damos nota 3.5 de 5.
- Quanto custa franken_ocr?
- Gratuito sob a licença MIT com uma cláusula que exclui OpenAI e Anthropic; os pesos dos modelos seguem as licenças de origem (o Unlimited-OCR é MIT).
- Quais são as desvantagens de franken_ocr?
- Licença personalizada que exclui OpenAI, Anthropic e seus prestadores de serviço; mantenedor único que não aceita contribuições externas; artefato do modelo de cerca de 4,2GB; máquinas de 8GB fazem swap; compilar do código-fonte exige Rust nightly.
- Para quem franken_ocr é indicado?
- Desenvolvedores individuais e equipes pequenas que precisam da qualidade do Unlimited-OCR em máquinas só com CPU e aceitam um projeto de autor único e sua licença.
- Quanto custa franken_ocr para uma equipe ou em produção?
- Não há edição paga; o custo é tempo de CPU. O registro do autor mostra páginas individuais levando de 9 a 15 segundos em 8 threads de Apple Silicon, então volumes grandes ainda favorecem uma stack com GPU como o vLLM.
- franken_ocr é seguro para dados da empresa?
- A inferência é offline depois que os pesos estão instalados; o uso de rede se limita ao focr pull. O histórico de execuções fica registrado em um banco de dados local (~/.cache/franken_ocr/runs.db). A licença é MIT com uma cláusula que exclui OpenAI, Anthropic e qualquer pessoa agindo em nome delas.
- Quais são as melhores alternativas ao franken_ocr?
- As alternativas mais próximas que analisamos são deepseek-ocr.rs, Xberg (formerly Kreuzberg), Ocrs e Docling.
Respostas verificadas em 26 de out. de 2026.
