VOP: herramienta de OCR para extraer diagramas complejos y fórmulas matemáticas
Últimos recursos sobre IAPublicado hace 4 meses Círculo de intercambio de inteligencia artificial 1.6K 00
Introducción general
Versatile OCR Program es una herramienta de reconocimiento óptico de caracteres (OCR) de código abierto diseñada para procesar documentos académicos y educativos complejos. Puede extraer texto, tablas, fórmulas matemáticas, gráficos y esquemas de PDF, imágenes y otros documentos, y generar datos estructurados adecuados para la formación en aprendizaje automático. Es compatible con varios idiomas, incluidos el inglés, el japonés y el coreano, y el formato de salida es JSON o Markdown, lo que resulta muy práctico para los desarrolladores.


Lista de funciones
- Extrae texto en varios idiomas, admite inglés, japonés, coreano, etc., y puede ampliarse a otros idiomas.
- Reconocer fórmulas matemáticas y generar código LaTeX y descripciones en lenguaje natural.
- Analiza tablas, conserva la estructura de filas y columnas y genera datos estructurados.
- Analizar diagramas y esquemas para generar anotaciones semánticas y descripciones (por ejemplo, "Este diagrama muestra las cuatro etapas de la división celular").
- Maneje PDF de maquetación compleja, identificando con precisión los párrafos con muchas fórmulas y los elementos visuales.
- Genera salidas en formato JSON o Markdown que contienen contexto semántico para optimizar el entrenamiento de la IA.
- Utilice DocLayout-YOLO, Google Vision API, MathPix y otras tecnologías para mejorar la precisión del reconocimiento.
- Proporciona una alta precisión de 90-95% para conjuntos de datos académicos reales (por ejemplo, Biología de la EJU, Matemáticas de la Eastern University).
- Admite el procesamiento por lotes para gestionar la entrada de varios archivos.
Utilizar la ayuda
Proceso de instalación
Para utilizar Versatile OCR Program, es necesario clonar el repositorio y configurar el entorno. A continuación se detallan los pasos a seguir:
- almacén de clones
Se ejecuta en el terminal:git clone https://github.com/ses4255/Versatile-OCR-Program.git cd Versatile-OCR-Program
- Creación de un entorno virtual
Se recomienda Python 3.8 o superior. Cree y active un entorno virtual:python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
- Instalación de dependencias
Instale las bibliotecas necesarias para el proyecto:pip install -r requirements.txt
Las dependencias incluyen
opencv-python
ygoogle-cloud-vision
ymathpix
ypillow
etc. Asegúrese de que la conexión de red es estable. - Configuración de la clave API
El proyecto se basa en API externas (por ejemplo, Google Vision, MathPix) para el procesamiento avanzado de OCR:- API de Google Vision: en
config/
para crear el directoriogoogle_credentials.json
Introduzca la clave de la cuenta de servicio. Para obtener la clave, visiteConsola de Google Cloud. - API MathPix: en
config/
para crear el directoriomathpix_config.json
Rellenarapp_id
responder cantandoapp_key
. Regístrese para obtener una cuenta MathPix para obtener la clave. - Las plantillas de archivos de configuración están disponibles en el proyecto
README.md
.
- API de Google Vision: en
- Verificar la instalación
Ejecute el script de prueba para asegurarse de que el entorno es correcto:python test_setup.py
Si no hay errores, la instalación se ha completado.
flujo de trabajo
El programa Versatile OCR se ejecuta en dos fases: extracción inicial y tratamiento semántico.
1. Extracción inicial del OCR
estar en movimientoocr_stage1.py
Extraer elementos en bruto (texto, tablas, gráficos, etc.):
python ocr_stage1.py --input sample.pdf --output temp/
--input
Especifique el archivo de entrada (PDF o imagen, por ejemplo PNG, JPEG).--output
Especifica el directorio de resultados intermedios que contiene coordenadas, imágenes recortadas, etc.- Compatibilidad con el tratamiento por lotes: utilice
--input_dir
Especifique la carpeta.
2. Tratamiento semántico y resultado final
estar en movimientoocr_stage2.py
Convierte los datos intermedios en salida estructurada:
python ocr_stage2.py --input temp/ --output final/ --format json
--input
Especifica el directorio de salida para la primera etapa.--format
Seleccione el formato de salida (json
tal vezmarkdown
).- La salida contiene texto, descripciones de fórmulas, datos tabulares y etiquetado semántico de gráficos.
Funciones principales
1. Extracción de textos multilingües
Extrae texto de PDF o imágenes con soporte multilingüe:
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 la lengua en el formatoeng
(Inglés),jpn
(Japonés),kor
(coreano), Multilingüe+
Conexiones.- El archivo de salida contiene contenido textual y contexto semántico, guardado como Markdown o JSON.
2. Identificación de fórmulas matemáticas
Identifique fórmulas y genere códigos y descripciones LaTeX. Por ejemplo, la fórmulax^2 + y = 5
La salida es "una ecuación cuadrática con variables x e y". Operación:
python ocr_stage1.py --input math.pdf --mode math --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
--mode math
Reconocimiento de la fórmula de activación.- El resultado contiene código LaTeX y descripciones en lenguaje natural.
3. Análisis de cuadros
Extraer la tabla, conservando la estructura de filas y columnas:
python ocr_stage1.py --input table.pdf --mode table --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
--mode table
Especializada en el tratamiento de formularios.- La salida es JSON con datos de filas y columnas y una descripción resumida.
4. Análisis gráfico y esquemático
Analice gráficos o diagramas para generar anotaciones semánticas. Por ejemplo, un gráfico lineal podría mostrar "Gráfico lineal que muestra el cambio de temperatura de 2010 a 2020". Acción:
python ocr_stage1.py --input diagram.pdf --mode figure --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
--mode figure
Activar el análisis de gráficos.- La salida contiene la descripción de la imagen, la extracción de puntos de datos y el contexto.
Trucos y consejos
- Mayor precisiónEntrada de archivos de alta resolución (se recomiendan 300 DPI). Añadir en tiempo de ejecución
--dpi 300
Optimización del análisis de imágenes. - archivo por lotes: Uso de
--input_dir data/
Procesa todos los archivos de la carpeta. - lenguaje personalizado:: Editorial
config/languages.json
Para añadir un idioma, es necesario instalar el modelo OCR correspondiente (por ejemplo, el paquete de idiomas de Tesseract). - Registro de depuración: Añadir
--verbose
Ver información detallada sobre el funcionamiento. - salida comprimida: Uso de
--compress
Reducir el tamaño del archivo JSON.
advertencia
- Asegúrese de que los documentos introducidos son claros; los documentos de baja calidad pueden reducir la precisión del reconocimiento.
- Se requiere una red estable para la API externa, y se recomienda configurar una clave de repuesto.
- El directorio de salida debe tener suficiente espacio en disco; los PDF de gran tamaño pueden generar archivos más grandes.
- Según la licencia GNU AGPL-3.0, los proyectos derivados deben poner el código fuente a disposición del público.
- El proyecto planea lanzar la integración de la tubería de IA dentro de un mes, así que permanezca atento.
Con estos pasos, los usuarios pueden empezar a trabajar rápidamente, procesar documentos complejos y generar datos de entrenamiento de IA.
escenario de aplicación
- Extracción de datos de investigación académica
Los investigadores pueden extraer fórmulas, tablas y gráficos de exámenes o redacciones para generar conjuntos de datos con anotaciones semánticas. Por ejemplo, los exámenes de matemáticas de la Eastern University se convirtieron a JSON para el entrenamiento de modelos geométricos. - Digitalización de recursos educativos
Los centros de enseñanza pueden convertir libros de texto o exámenes en papel a formato electrónico, extraer textos y gráficos multilingües y generar archivos en los que se puedan realizar búsquedas. Adecuado para el tratamiento multilingüe de programas internacionales. - Construcción de conjuntos de datos de aprendizaje automático
Los desarrolladores pueden extraer datos estructurados de documentos académicos para generar conjuntos de entrenamiento de alta calidad. Por ejemplo, extraer diagramas de división celular de artículos de biología, etiquetar descripciones de etapas y entrenar modelos de reconocimiento de imágenes. - Tratamiento de documentos de archivo
Las bibliotecas pueden convertir documentos académicos históricos a formato digital, conservando fórmulas y estructuras de tablas para mejorar la eficacia de la recuperación. Admite el procesamiento en PDF de diseños complejos. - Herramientas de análisis de exámenes
Los centros educativos pueden analizar el contenido de los cuestionarios, extraer tipos de preguntas y gráficos, generar informes estadísticos y optimizar el diseño de la enseñanza.
CONTROL DE CALIDAD
- ¿Qué formatos de entrada admite?
Se admiten PDF e imágenes (PNG, JPEG). Se recomienda utilizar PDF de alta resolución para garantizar la precisión. - ¿Cómo puedo mejorar la precisión del reconocimiento de formularios?
Utilizar una documentación clara para permitir--dpi 300
. En el caso de las tablas japonesas, la API Google Vision supera a MathPix y puede utilizarse en laconfig/
Ajuste medio. - ¿Tengo que utilizar una API de pago?
Las API de Google Vision y MathPix requieren una cuenta de pago, pero los módulos de código abierto como DocLayout-YOLO son gratuitos. Se recomienda configurar la API para obtener mejores resultados. - ¿Cómo añado una nueva lengua?
compiladorconfig/languages.json
añada el código de idioma y el modelo de OCR (por ejemplo, el paquete de idioma Tesseract). Reinicie el programa para que surta efecto. - ¿Y si el archivo de salida es demasiado grande?
gasto o desembolso--compress
Comprimir JSON, o elegir el formato Markdown. También es posible limitar el módulo de salida, por ejemplo, para extraer sólo texto (--mode text
). - ¿Cómo puedo participar en la mejora de los proyectos?
Las Pull Requests pueden enviarse a través de GitHub o poniéndose en contacto con el autor en ses425500000@gmail.com. No dudes en contribuir con código o dar tu opinión sobre los problemas.
© declaración de copyright
文章版权归 Círculo de intercambio de inteligencia artificial 所有,未经允许请勿转载。
Artículos relacionados
Sin comentarios...