Surya OCR

Avalie o Surya OCR na extração de documentos: separe interfaces novas e antigas, licenças de código e pesos, relações de tabelas e revisão da pipeline.

Identidade e acesso

Nome do modelo
Surya OCR
Acesso
O projeto atual está disponível pelo repositório oficial e pacote Python. As licenças de código e pesos devem ser avaliadas separadamente.
Tipo de modelo
Transformer
Arquitetura
VLM de documentos Surya 2 com modelos de detecção separados
Público-alvo
Desenvolvedores e equipes documentais capazes de fixar versões, criar amostra de referência e revisar estrutura antes da automação.
Entrada
Imagens de páginas enviadas à interface documentada de OCR. Guarde a versão do pacote e a preparação de PDF no registro.
Saída
Resultados estruturados cujo texto, blocos, ordem, HTML, conteúdo ignorado e erros devem ser comparados ao contrato posterior.
Custo
Orce licença de pesos, início do servidor, processamento e correção humana separadamente. Acesso ao código não define custo por documento aceito.
Quando evitar
Evite adoção automática enquanto licença, tolerância de erro por documento ou contrato atual de saída estiverem indefinidos.

Fontes e método

Licença e direitos

Licença
Código Apache 2.0; pesos modified OpenRAIL-M
Tipo de licença
Código-fonte disponível
Escopo da licença
Apache 2.0 vale para o código. Os pesos têm condições modified OpenRAIL-M separadas sobre receita, financiamento e uso competitivo. Leia os termos completos para a organização.
Código aberto
Não

Disponibilidade

Estado
Disponível
Escopo do estado
O projeto atual está disponível pelo repositório oficial e pacote Python. As licenças de código e pesos devem ser avaliadas separadamente.

Pontos principais

OCR, layout e tabelas no Surya 2

A documentação revisada usa um modelo documental para OCR, layout e tabelas. Interfaces V2 diferem de exemplos antigos.

Estrutura documental exige verificações próprias

O schema expõe blocos, ordem, HTML, conteúdo ignorado e erros. O teste deve examinar relações, não um único número.

Código e pesos têm termos diferentes

O código é Apache 2.0 e os pesos usam licença modified OpenRAIL-M com restrições adicionais.

Casos de uso e limites

Teste de extração de documentos de fornecedores

Monte amostra pequena com layouts, tabelas e falhas relevantes e compare com referência humana antes de automatizar.

Migração de OCR consciente da versão

Use pacote fixado e saída salva para localizar mudanças de schema, endpoint e concorrência.

Vantagens

  • OCR, layout e tabelas compartilham inference manager no fluxo V2 documentado.
  • Campos estruturados permitem revisar ordem, omissões e erros explicitamente.
  • O inference manager documentado pode se conectar a servidor existente para reutilização.

Limitações

  • Exemplos antigos podem contrariar interfaces e schema atuais do V2.
  • Apache 2.0 do código não substitui os termos modified OpenRAIL-M dos pesos.
  • Palavras corretas ainda podem ter ordem ou relação de tabela errada.

Temas

  • Surya OCR

Sobre o modelo

Nesta página

O Surya OCR é um projeto de processamento de documentos que extrai texto e estrutura de página de imagens e PDFs. Vale avaliá-lo quando a aplicação precisa de algo além de uma sequência de texto, como ordem de leitura ou regiões de tabela. A versão é uma condição importante: este guia trata da documentação atual do Surya 2, não das interfaces antigas que ainda aparecem em tutoriais. Uma instalação bem-sucedida é apenas o começo. O teste de aceitação precisa verificar se o documento extraído continua com o mesmo significado.

Esta é uma avaliação baseada em fontes consultadas em 10 de setembro de 2026. Não executamos benchmark de OCR nem processamos documentos de clientes. O fluxo abaixo é uma proposta de teste adaptável, com condições explícitas de rejeição e sem uma pontuação de precisão inventada.

Revisão do código e da documentação examinada: a2363d33.

Defina o que precisa sobreviver à extração

Comece pela operação que vai consumir o resultado. A busca em um arquivo exige evidências diferentes da importação de uma nota fiscal para um sistema contábil. Um índice de busca pode tolerar um título decorativo danificado se o usuário ainda encontrar a página correta. Um importador financeiro não pode tratar um número de conta plausível, mas incorreto, como simples problema de formatação.

Considere uma equipe hipotética que recebe PDFs de fornecedores. Alguns arquivos têm texto digital limpo. Outros são digitalizações com carimbo, bloco de endereço em duas colunas ou tabela que continua na página seguinte. O resultado desejado não é apenas “OCR concluído”. A equipe precisa de um registro revisável em que fornecedor, descrição dos itens, quantidades e totais continuem ligados às regiões de origem.

Escreva esses requisitos antes de escolher configurações. Identifique campos que nunca podem ser aceitos sem verificação, estruturas que precisam permanecer ligadas e casos que devem ir para uma fila humana. Isso impede que um parágrafo legível esconda uma tabela inutilizável. Cada fluxo candidato deve preservar a mesma informação, em vez de apenas produzir uma prévia atraente.

A documentação do projeto posiciona o Surya para documentos, e não para texto em cenas naturais. Uma fotografia de vitrine ou uma placa em movimento precisa de avaliação separada. O suporte amplo a idiomas não comprova adequação a toda imagem de câmera. Escopo e limitações do Surya.

Identifique a versão instalada antes de copiar exemplos

O nome da família de modelos e a versão do pacote Python são identificadores diferentes. Na data da análise, a configuração declarava a versão 0.22.1 e suporte a Python a partir da 3.10. Registre o pacote realmente instalado, o checkpoint, o backend e o ambiente. Um comando copiado sem esses dados não constitui uma integração reproduzível. Configuração do pacote.

As notas atuais de migração substituem o antigo foundation predictor por um inference manager e descrevem campos de saída diferentes. Trate a atualização como mudança de contrato da aplicação. Antes de processar uma coleção, examine um resultado real e confirme que o parser lê os campos devolvidos por essa versão. Migração do Surya v1.

O schema atual representa a página como blocos e um limite de imagem. Os blocos incluem ordem de leitura, conteúdo HTML e indicadores explícitos de conteúdo ignorado ou erro. Um bloco vazio não deve virar automaticamente um valor vazio no banco. Preserve estado suficiente para distinguir uma região ignorada de propósito, uma falha de reconhecimento e uma área realmente sem texto. Schema de reconhecimento.

Em uma integração existente, salve um resultado antigo representativo ao lado do novo e compare primeiro a estrutura. Verifique campos renomeados, aninhamento, ordem das páginas e tratamento posterior de valores ausentes. Um teste de schema que passa enquanto descarta todas as tabelas silenciosamente não é aceitável.

Separe a permissão do código da permissão dos pesos

O código do repositório usa Apache 2.0. Os pesos do modelo têm uma licença modificada OpenRAIL-M separada. Descrever todo o sistema apenas como GPL ou supor que a licença do código libera o uso irrestrito dos pesos esconde a decisão que uma organização precisa tomar. Licença do código, licença dos pesos.

O Anexo A inclui restrições ligadas a receita bruta do ano anterior superior a cinco milhões de dólares, financiamento total por capital ou dívida acima desse valor e produtos ou serviços concorrentes dos oferecidos pelo licenciador. As exceções de uso pessoal ou pesquisa nas disposições de receita e financiamento não são iguais à restrição de uso competitivo. Não transforme isso em uma afirmação geral de que pequenas empresas estão liberadas. Leia os termos completos para a sua organização e implantação e busque esclarecimento adequado quando houver dúvida. Este guia relata a licença, mas não fornece autorização jurídica.

Os próprios documentos também exigem análise. Permissão para executar o modelo não estabelece permissão para enviar registros de fornecedores, manter identificadores extraídos indefinidamente ou reutilizá-los no treinamento de outro sistema. Registre quem controla a entrada, quem pode ver o resultado e qual ambiente está autorizado a processá-lo.

Monte uma amostra pequena que exponha erros caros

No cenário de fornecedores, escolha uma amostra limitada que represente os problemas reais da operação. Inclua um PDF digital limpo, uma digitalização com texto fraco, uma página girada, um documento em várias colunas e uma tabela com cabeçalhos repetidos. Essas são categorias propostas, não uma alegação de sucesso ou falha do Surya em cada uma.

Antes de examinar a saída do modelo, uma pessoa deve transcrever os campos críticos e marcar a sequência esperada de leitura. Caso contrário, o texto gerado vira o próprio gabarito. Mantenha a página original junto da referência e registre marcas realmente ambíguas como ambíguas.

Dê um identificador estável a cada página. Salve hash de entrada, dimensões, configurações e caminho de saída. Não coloque documentos privados em relatos públicos de erro ou capturas compartilhadas. Quando possível, reproduza o problema do parser com um substituto não sensível que preserve o layout e identifique-o como fixture de diagnóstico.

Execute primeiro a menor amostra. Acompanhe o resultado desde a entrada, passando pelo seu parser, até a aplicação de destino. Não avalie apenas a prévia do Surya. Enviar todo o arquivo para um parser não validado aumenta o trabalho de correção sem explicar melhor a primeira suposição quebrada.

Use uma planilha de aceitação em vez de um único número

A planilha a seguir é uma proposta editorial para o exemplo de documentos de fornecedores. Defina tolerâncias reais com os responsáveis pelo sistema de destino. Não há resultados medidos do Surya nela.

VerificaçãoEvidência a registrarRejeitar ou enviar para revisão quando
Campos críticos de identidadeRecorte da fonte, transcrição de referência e valor extraídoUm caractere muda o fornecedor ou a referência de pagamento.
Ordem de leituraRegiões de origem e blocos de saída ordenadosTextos de colunas se misturam ou uma nota vai para a seção errada.
Relações da tabelaCabeçalho, rótulo da linha, quantidade e valor juntosNúmeros corretos são ligados ao item errado.
Material ausenteNúmero de páginas e regiões esperadas comparados ao estadoPágina, linha de continuação ou nota desaparece sem sinal de revisão.
Comportamento no destinoRegistro importado e link para a fonteA aplicação remove incerteza, perde proveniência ou não mostra a página.

Separe erros críticos de diferenças cosméticas. Uma quebra de linha pode ser irrelevante para busca e inaceitável em um formulário de layout fixo. Essa distinção pertence à política de aceitação, não a uma decisão improvisada depois do resultado. Registre o motivo de cada classificação para que a próxima pessoa possa aplicar a mesma regra.

Inclua o trabalho de revisão no resultado. Se a saída reduz digitação, mas exige localizar páginas repetidamente, o fluxo ainda pode ser mais lento. Meça o tempo até um registro corrigido e aceito, incluindo falhas, e não apenas as páginas bem-sucedidas. Assim, a amostra sustenta uma decisão operacional, em vez de servir apenas como demonstração do modelo.

Meça inicialização e processamento separadamente

A documentação atual descreve vLLM para GPUs NVIDIA e llama.cpp para CPU ou Apple Silicon. A instalação precisa considerar um processo de inferência além do pacote Python. Registre o backend de forma explícita. “Rodou localmente” não descreve hardware e software com precisão suficiente. Documentação dos backends.

O arquivo de configurações expõe cache de modelos, endpoint e ciclo de vida do servidor separadamente. Um comando local pode usar um endpoint remoto, e o primeiro uso pode baixar modelos. Confirme o comportamento de rede e o caminho dos documentos antes de chamar a implantação de offline ou adequada a registros confidenciais. Configurações de inferência.

Registre inicialização fria, processamento com servidor aquecido, conversão de saída e correção humana em separado. Compare execuções na mesma amostra e relate falhas junto do tempo. Uma execução rápida com o servidor aquecido não mostra como uma tarefa agendada se comporta ao iniciar um ambiente novo para cada documento.

Altere resolução ou concorrência uma de cada vez e verifique novamente o texto pequeno e a tabela mais exigente. Observe o processo completo para detectar pressão de memória ou saída truncada. Mantenha as configurações anteriores até que a substituição passe pela mesma planilha de aceitação. Uma execução mais rápida que perde o separador decimal do fornecedor não é uma otimização útil.

Encontre a etapa quebrada antes de repetir

Use a página de origem, o resultado bruto e o registro importado juntos. Se o texto já estiver errado no resultado bruto, mudar o mapeamento do banco não corrige o reconhecimento. Se o resultado bruto estiver correto, mas as linhas se misturarem depois da importação, novas execuções do modelo não resolvem o parser.

SintomaPrimeira investigaçãoVerificação observável depois da mudança
A aplicação não importa nadaComparar schema esperado, resultado bruto e indicadores de erroUma página conhecida como não vazia gera o registro e preserva o erro.
Caracteres são legíveis, mas o sentido mudaRastrear ordem das colunas e relação entre cabeçalho e valorCada valor retorna à região de origem pretendida.
Texto pequeno está ausenteComparar recorte original com a entrada raster realmente enviadaA mesma região continua legível na entrada e aparece correta na saída.
Vazão varia muitoSeparar inicialização, saturação do backend e conversãoExecuções repetidas explicam a variação sem omitir falhas.
Nova versão quebra documentos antigosComparar versões fixadas, configuração e contrato de saídaAmostra anterior e novo caso problemático passam antes da liberação.

Não corrija uma fonte ambígua inventando silenciosamente o texto mais provável. Preserve o marcador de incerteza ou envie a página para revisão. Isso importa especialmente quando uma saída fluente leva alguém a confiar em um valor que mal podia ser lido no original.

Escolha o próximo fluxo a partir das evidências

Se o PDF original já contém texto e estrutura utilizáveis, compare a extração direta antes de adicionar OCR. Para uma coleção pequena com escrita difícil ou tabelas muito irregulares, a transcrição supervisionada pode ser mais controlável do que uma integração extensa. São opções de processo, não alegações de superioridade de um concorrente.

Um serviço gerenciado de documentos é uma escolha operacional diferente de hospedar o Surya. Avalie termos atuais, controles de retenção, contrato de saída e carga total de revisão de forma independente. Usar um modelo relacionado não torna o serviço idêntico ao repositório nem transfere resultados do teste local.

O resultado útil é um limite documentado: quais classes de documento entram na pipeline, quais campos exigem verificação e quais falhas interrompem a importação automática. Guarde exemplos rejeitados como conjunto de regressão de acordo com as regras de retenção e repita-o quando pacote, checkpoint, backend ou parser mudar.

Esta avaliação não estabelece precisão universal por idioma, conformidade de privacidade em produção ou garantia de processamento autônomo de notas fiscais. Ela oferece um método para testar o trabalho específico. Outras categorias estão no diretório de modelos, onde a mesma disciplina de fonte e aceitação deve ser aplicada.

Perguntas frequentes

O que verificar antes de integrar o Surya OCR?

Registre versão, família de modelo, endpoint ou backend local, configurações e schema esperado. Teste uma amostra contra referência humana.

Todo o Surya OCR é Apache 2.0?

Não. O código revisado é Apache 2.0, enquanto os pesos usam modified OpenRAIL-M com condições adicionais.

Texto correto comprova extração correta?

Não. Ordem, relações de bloco, tabelas, omissões e erros ainda podem quebrar o trabalho posterior.

O Surya OCR foi testado em benchmark nesta página?

Não. Esta avaliação de fontes não estabelece precisão, velocidade, hardware ou esforço de revisão.