Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

RolmOCR: modelo de OCR de documentos para reconhecimento de caracteres manuscritos e inclinados

Introdução geral

O RolmOCR é uma ferramenta de reconhecimento óptico de caracteres (OCR) de código aberto desenvolvida pela equipe Reducto AI, com base no modelo de linguagem visual Qwen2.5-VL-7B. Ela pode extrair texto de imagens e arquivos PDF mais rapidamente do que ferramentas semelhantes. olmOCR O RolmOCR não depende de metadados de PDF, simplificando o processamento e oferecendo suporte a uma ampla variedade de tipos de documentos, incluindo anotações manuscritas e trabalhos acadêmicos. A equipe da Reducto criou a ferramenta atualizando o modelo e otimizando os dados de treinamento, com o objetivo de tornar a digitalização de documentos mais eficiente.

RolmOCR: Modelo-1 de OCR de documentos de código aberto, rápido e leve


RolmOCR: modelo de OCR de documentos para reconhecimento de caracteres manuscritos e inclinados-1

 

Lista de funções

  • Extração rápida de texto: extraia texto de imagens e PDFs com velocidade de processamento rápida para um grande número de documentos.
  • Suporta uma ampla variedade de documentos: reconhece anotações manuscritas, documentos impressos e formulários complexos.
  • Código aberto e gratuito: aberto sob a licença Apache 2.0, o código pode ser baixado e adaptado livremente.
  • Baixo consumo de memória: em comparação com olmOCR Mais eficiente em termos de recursos e com baixos requisitos de computador durante a execução.
  • Não são necessários metadados: processe o documento original diretamente sem depender de informações adicionais do PDF.
  • Reconhecimento aprimorado de documentos inclinados: o 15% nos dados de treinamento é girado para melhorar a adaptação a documentos com ângulos não positivos.
  • Baseado no modelo mais recente: adota o Qwen2.5-VL-7B para melhorar a precisão e a eficiência do reconhecimento.

 

Usando a Ajuda

O RolmOCR é uma ferramenta de código aberto que é executada principalmente por meio de código e é adequada para usuários com habilidades básicas de programação. A seguir, um guia detalhado de instalação e uso.

Processo de instalação

  1. Verificação do ambiente Python
    O RolmOCR requer o Python 3.8 ou superior. Abra a linha de comando e digite python --version Verifique a versão. Se você não a tiver instalada, acesse o site do Python e faça o download e a instalação.
  2. Instalação da estrutura vLLM
    Uso do RolmOCR vLLM Execute o modelo. Digite na linha de comando:
pip install vllm

Após a conclusão da instalação, defina as variáveis de ambiente:

export VLLM_USE_V1=1

Isso garante que o vLLM funcione corretamente.

  1. Faça o download do modelo RolmOCR
    Os arquivos do modelo estão hospedados no site Hugging Face. Acesse https://huggingface.co/reducto/RolmOCR e clique em "Files and versions" (Arquivos e versões) para fazer o download. Ou use a linha de comando:
git clone https://huggingface.co/reducto/RolmOCR
  1. Início de serviços locais
    Vá para a pasta do modelo baixado e execute-o:
vllm serve reducto/RolmOCR

Quando o serviço é iniciado, o endereço padrão é http://localhost:8000/v1. Mantenha a janela da linha de comando aberta.

Uso

O RolmOCR extrai texto por meio de chamadas de API. Aqui estão as etapas exatas.

Preparar o documento

Prepare o arquivo a ser reconhecido, por exemplo, uma imagem (PNG/JPG) ou um PDF. test_doc.png.

Chamada da API para extrair texto

Escreva um script em Python para converter o arquivo em codificação base64 e enviá-lo para o RolmOCR. O código de amostra é o seguinte:

from openai import OpenAI
import base64
# 连接本地服务
client = OpenAI(api_key="123", base_url="http://localhost:8000/v1")
model = "reducto/RolmOCR-7b"
# 图片转 base64
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# 调用 RolmOCR 提取文字
def ocr_page_with_rolm(img_base64):
response = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_base64}"}},
{"type": "text", "text": "把这张图片里的文字提取出来,像人读的那样自然返回。"}
]
}
],
temperature=0.2,
max_tokens=4096
)
return response.choices[0].message.content
# 运行示例
test_img_path = "test_doc.png"
img_base64 = encode_image(test_img_path)
result = ocr_page_with_rolm(img_base64)
print(result)

salvar como (um arquivo) ocr_test.pye depois executar:

python ocr_test.py

O programa retorna o texto extraído, por exemplo:

会议记录
2025年4月7日
- 项目计划讨论
- 准备相关资料

arquivo de lote

Para lidar com vários arquivos, reescreva o código. Coloque os caminhos dos arquivos em uma lista e chame-a em um loop:

file_paths = ["doc1.png", "doc2.png", "doc3.png"]
for path in file_paths:
img_base64 = encode_image(path)
result = ocr_page_with_rolm(img_base64)
print(f"{path} 的结果:\n{result}\n")

Operação da função em destaque

  1. reconhecimento de escrita manual
    O RolmOCR reconhece a escrita à mão. Por exemplo, uma anotação que diz "Deepseek Coder" é impressa com precisão sem ser confundida com "OCLM". Após o upload da imagem, os resultados são classificados em ordem natural.
  2. Processamento de documentos distorcidos
    O 15% é girado nos dados de treinamento, portanto, é mais adaptável a documentos distorcidos. Por exemplo, em uma digitalização distorcida, o texto ainda é extraído corretamente.
  3. Operação com pouca memória
    Sem dependência de metadados, comprimentos de dicas mais curtos e menos memória gráfica (VRAM) usada para processamento. Adequado para computadores com configurações mais baixas.

advertência

  • interrupção do serviçoNão feche a janela da linha de comando depois de iniciar o serviço ou a API será interrompida.
  • déficit de memóriaSe o computador não tiver memória suficiente, você poderá ajustar o parâmetro vLLM, como per_device_train_batch_sizereduzindo os requisitos de recursos.
  • limitaçõesRolmOCR pode não reconhecer textos pequenos com baixo contraste ou reconhecimento incompleto de tabelas complexas sem metadados. Recomenda-se otimizar a qualidade da imagem e tentar novamente.
  • Não há suporte para caixas de layoutDiferentemente da API comercial da Reducto, o RolmOCR não pode gerar caixas delimitadoras para texto.

Com essas etapas, os usuários podem instalar e usar facilmente o RolmOCR para extrair texto de documentos rapidamente.

 

cenário do aplicativo

  1. pesquisa acadêmica
    Estudantes e pesquisadores podem usar o RolmOCR para digitalizar anotações manuscritas ou documentos antigos em textos eletrônicos para facilitar a organização e a pesquisa.
  2. Processamento de documentos corporativos
    A empresa pode usá-lo para extrair texto de contratos e envelopes e inseri-lo no sistema, reduzindo o trabalho manual.
  3. Suporte a vários idiomas
    Lide com documentos mistos em chinês e inglês ou cartas manuscritas em francês, extraindo informações de forma rápida e adequada para comunicação internacional.

 

QA

  1. Qual é a diferença entre RolmOCR e olmOCR?
    O RolmOCR é baseado no modelo Qwen2.5-VL-7B atualizado, que é mais rápido, ocupa menos espaço na memória, não usa metadados e é mais robusto para documentos distorcidos.
  2. Ele pode ser usado off-line?
    Disponível. Basta fazer o download do modelo e iniciar o serviço local, sem necessidade de conexão com a Internet.
  3. Ele oferece suporte ao reconhecimento de formulários?
    Suportado, mas pode perder partes de tabelas complexas sem metadados, como subtítulos em artigos acadêmicos.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " RolmOCR: modelo de OCR de documentos para reconhecimento de caracteres manuscritos e inclinados
pt_BRPortuguês do Brasil