Introdução geral
O Versatile OCR Program é uma ferramenta de reconhecimento óptico de caracteres (OCR) de código aberto projetada para processar documentos acadêmicos e educacionais complexos. Ele pode extrair textos, tabelas, fórmulas matemáticas, gráficos e esquemas de PDFs, imagens e outros documentos e gerar dados estruturados adequados para treinamento de aprendizado de máquina. É compatível com vários idiomas, incluindo inglês, japonês e coreano, e o formato de saída é JSON ou Markdown, o que é conveniente para os desenvolvedores.
Lista de funções
- Extrai texto em vários idiomas, suporta inglês, japonês, coreano, etc., e pode ser estendido a outros idiomas.
- Reconhecer fórmulas matemáticas e gerar código LaTeX e descrições em linguagem natural.
- Analisa tabelas, preserva a estrutura de linhas e colunas e gera dados estruturados.
- Analisar diagramas e esquemas para gerar anotações e descrições semânticas (por exemplo, "Este diagrama mostra os quatro estágios da divisão celular").
- Lidar com PDFs de layout complexo, identificando com precisão parágrafos e elementos visuais com uso intensivo de fórmulas.
- Gera o formato JSON ou Markdown contendo contexto semântico para otimizar o treinamento de IA.
- Use DocLayout-YOLO, Google Vision API, MathPix e outras tecnologias para melhorar a precisão do reconhecimento.
- Fornece alta precisão de 90-95% para conjuntos de dados acadêmicos reais (por exemplo, EJU Biology, Eastern University Maths).
- Oferece suporte ao processamento em lote para lidar com várias entradas de arquivos.
Usando a Ajuda
Processo de instalação
Para usar o Versatile OCR Program, você precisa clonar o repositório e configurar o ambiente. Veja a seguir as etapas detalhadas:
- armazém de clones
É executado no terminal:git clone https://github.com/ses4255/Versatile-OCR-Program.git cd Versatile-OCR-Program
- Criação de um ambiente virtual
Recomenda-se o Python 3.8 ou superior. Crie e ative um ambiente virtual:python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
- Instalação de dependências
Instale as bibliotecas necessárias para o projeto:pip install -r requirements.txt
As dependências incluem
opencv-python
egoogle-cloud-vision
emathpix
epillow
etc. Certifique-se de que a conexão de rede esteja estável. - Configuração da chave de API
O projeto depende de APIs externas (por exemplo, Google Vision, MathPix) para processamento avançado de OCR:- API do Google Vision: em
config/
para criar o diretóriogoogle_credentials.json
Preencha a chave da conta de serviço. Para obter a chave, visiteConsole do Google Cloud. - API do MathPix: em
config/
para criar o diretóriomathpix_config.json
Preencherapp_id
responder cantandoapp_key
. Registre-se em uma conta do MathPix para obter a chave. - Os modelos de arquivos de configuração estão disponíveis no projeto
README.md
.
- API do Google Vision: em
- Verificar a instalação
Execute o script de teste para garantir que o ambiente esteja correto:python test_setup.py
Se não houver erros, a instalação estará concluída.
fluxo de trabalho
O programa Versatile OCR é executado em duas fases: extração inicial e processamento semântico.
1. extração inicial de OCR
estar em movimentoocr_stage1.py
Extrair elementos brutos (texto, tabelas, gráficos, etc.):
python ocr_stage1.py --input sample.pdf --output temp/
--input
Especifique o arquivo de entrada (PDF ou imagem, por exemplo, PNG, JPEG).--output
Especifica o diretório de resultados intermediários que contém coordenadas, imagens cortadas, etc.- Suporte para processamento em lote: use
--input_dir
Especifique a pasta.
2 Processamento semântico e saída final
estar em movimentoocr_stage2.py
Converta dados intermediários em saída estruturada:
python ocr_stage2.py --input temp/ --output final/ --format json
--input
Especifica o diretório de saída para o primeiro estágio.--format
Selecione o formato de saída (json
talvezmarkdown
).- A saída contém texto, descrições de fórmulas, dados tabulares e rotulagem semântica de gráficos.
Funções principais
1. extração de texto multilíngue
Extraia texto de PDFs ou imagens com suporte a vários idiomas:
python ocr_stage1.py --input document.pdf --lang eng+jpn+kor --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
--lang
Especifique o idioma no formatoeng
(Inglês),jpn
(japonês),kor
(coreano), multilíngue+
Conexões.- O arquivo de saída contém conteúdo textual e contexto semântico, salvo como Markdown ou JSON.
2. identificação da fórmula matemática
Identificar fórmulas e gerar códigos e descrições LaTeX. Por exemplo, a fórmulax^2 + y = 5
O resultado é "uma equação quadrática com variáveis x e y". Operação:
python ocr_stage1.py --input math.pdf --mode math --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
--mode math
Reconhecimento da fórmula de ativação.- A saída contém código LaTeX e descrições em linguagem natural.
3. análise de tabelas
Extraia a tabela, preservando a estrutura de linhas e colunas:
python ocr_stage1.py --input table.pdf --mode table --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
--mode table
Especializada em processamento de formulários.- A saída é JSON com dados de linha e coluna e uma descrição resumida.
4. análise gráfica e esquemática
Analise gráficos ou diagramas para gerar anotações semânticas. Por exemplo, um gráfico de linhas pode gerar "Gráfico de linhas mostrando a mudança de temperatura de 2010 a 2020". Ação:
python ocr_stage1.py --input diagram.pdf --mode figure --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
--mode figure
Ativar a análise de gráficos.- A saída contém a descrição da imagem, a extração do ponto de dados e o contexto.
Dicas e truques
- Precisão aprimoradaArquivos de alta resolução de entrada (recomenda-se 300 DPI). Adicionar em tempo de execução
--dpi 300
Otimizar a análise de imagens. - arquivo de loteUso de
--input_dir data/
Processa todos os arquivos da pasta. - idioma personalizado:: Editorial
config/languages.json
Para adicionar um idioma, você precisa instalar o modelo de OCR correspondente (por exemplo, o pacote de idiomas do Tesseract). - Registro de depuração: Adicionar
--verbose
Exibir informações operacionais detalhadas. - saída compactadaUso de
--compress
Reduzir o tamanho do arquivo JSON.
advertência
- Certifique-se de que os documentos de entrada sejam claros; documentos de baixa qualidade podem reduzir a precisão do reconhecimento.
- É necessária uma rede estável para a API externa, e é recomendável configurar uma chave reserva.
- O diretório de saída precisa ter espaço suficiente em disco, pois PDFs grandes podem gerar arquivos maiores.
- De acordo com a licença GNU AGPL-3.0, os projetos derivados devem tornar o código-fonte disponível publicamente.
- O projeto planeja lançar a integração do pipeline de IA dentro de um mês, portanto, fique atento.
Com essas etapas, os usuários podem começar a trabalhar rapidamente, processar documentos complexos e gerar dados de treinamento de IA.
cenário do aplicativo
- Extração de dados de pesquisas acadêmicas
Os pesquisadores podem extrair fórmulas, tabelas e gráficos de provas ou ensaios para gerar conjuntos de dados com anotações semânticas. Por exemplo, as provas de matemática da Eastern University foram convertidas em JSON para treinamento de modelos de geometria. - Digitalização de recursos educacionais
As escolas podem converter livros didáticos em papel ou provas de exame em formato eletrônico, extrair textos e gráficos multilíngues e gerar arquivos pesquisáveis. Adequado para o processamento multilíngue de programas internacionais. - Construção de conjuntos de dados de aprendizado de máquina
Os desenvolvedores podem extrair dados estruturados de documentos acadêmicos para gerar conjuntos de treinamento de alta qualidade. Por exemplo, extrair diagramas de divisão celular de artigos de biologia, rotular descrições de estágios e treinar modelos de reconhecimento de imagens. - Processamento de documentos de arquivos
As bibliotecas podem converter documentos acadêmicos históricos em formato digital, preservando fórmulas e estruturas de tabelas para melhorar a eficiência da recuperação. Suporte ao processamento em PDF de layouts complexos. - Ferramentas de análise de exames
As instituições educacionais podem analisar o conteúdo das provas de perguntas, extrair tipos de perguntas e gráficos, gerar relatórios estatísticos e otimizar o projeto de ensino.
QA
- Quais formatos de entrada são suportados?
Há suporte para PDF e imagens (PNG, JPEG). Recomenda-se PDFs de alta resolução para garantir a precisão. - Como posso melhorar a precisão do reconhecimento de formulários?
Use uma documentação clara para permitir--dpi 300
. Para tabelas japonesas, a API do Google Vision supera o MathPix e pode ser usada noconfig/
Ajuste médio. - Preciso usar uma API paga?
As APIs do Google Vision e do MathPix exigem uma conta paga, mas os módulos de código aberto, como o DocLayout-YOLO, são gratuitos. Recomenda-se configurar a API para obter os melhores resultados. - Como faço para adicionar um novo idioma?
compiladorconfig/languages.json
Adicione o código do idioma e o modelo de OCR (por exemplo, pacote de idiomas Tesseract). Reinicie o programa para que ele entre em vigor. - E se o arquivo de saída for muito grande?
despesa ou gasto--compress
Comprimir JSON ou escolher o formato Markdown. Também é possível limitar o módulo de saída, por exemplo, para extrair apenas texto (--mode text
). - Como posso me envolver no aprimoramento do projeto?
As Pull Requests podem ser enviadas via GitHub ou entrando em contato com o autor em ses425500000@gmail.com. Sinta-se à vontade para contribuir com código ou dar feedback sobre problemas.