uniOCR: herramienta de reconocimiento de texto multiplataforma y de código abierto

Introducción general

uniOCR es una herramienta de reconocimiento de texto de código abierto desarrollada por el equipo mediar-ai. Está basada en el lenguaje Rust y es compatible con macOS, Windows y Linux. Los usuarios pueden utilizarla para extraer texto de imágenes, el funcionamiento es sencillo y gratuito. Las características principales de uniOCR son el soporte multiplataforma y el diseño unificado de la interfaz. Integra varios motores de OCR, como Vision Kit para macOS, Windows OCR y Tesseract, y también admite OCR en la nube, que puede ser utilizado tanto por usuarios particulares como por desarrolladores para gestionar rápidamente tareas de reconocimiento de imágenes y texto. El código del proyecto es abierto, lo que permite a los usuarios modificarlo y ampliarlo libremente.

uniOCR:跨平台开源的文字识别工具

 

Lista de funciones

  • Es compatible con los sistemas macOS, Windows y Linux y funciona en varias plataformas.
  • Existen varias opciones de motor de OCR: macOS Vision, Windows OCR, Tesseract y Cloud OCR.
  • Permite extraer texto de una o varias imágenes.
  • Proporcionar una interfaz API unificada para facilitar el cambio entre distintos motores de OCR.
  • Admite el funcionamiento asíncrono y el procesamiento por lotes para mejorar la eficacia del reconocimiento.
  • Permite personalizar ajustes como el idioma, los umbrales de confianza y los tiempos de espera.
  • Proyecto de código abierto, los usuarios pueden ver y modificar el código.

 

Utilizar la ayuda

Proceso de instalación

uniOCR requiere un entorno Rust y las dependencias relacionadas para ejecutarse. A continuación se detallan los pasos a seguir:

  1. Instalación de óxido
    • Abra un terminal e introduzca el siguiente comando para instalar Rust:
      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
      
    • Una vez finalizada la instalación, ejecute rustc --version Compruebe la versión para asegurarse de que la instalación se ha realizado correctamente.
  2. Descargar el código fuente de uniOCR
    • Clona el proyecto localmente usando Git:
      git clone https://github.com/mediar-ai/uniOCR.git
      
    • Vaya al catálogo de proyectos:
      cd uniOCR
      
  3. Instalar Tesseract (opcional)
    • Si desea utilizar el motor Tesseract, deberá instalarlo adicionalmente:
      • macOS: en funcionamiento brew install tesseract
      • Ubuntu: en marcha apt-get install tesseract-ocr
      • Windows: en funcionamiento winget install tesseract o descargue el paquete de instalación manualmente.
    • No se requiere ninguna instalación adicional para macOS Vision y Windows OCR.
  4. Compilación de proyectos
    • Ejecutar en el directorio del proyecto:
      cargo build --release
      
    • Tras la compilación, el ejecutable se encuentra en <项目目录>/target/release/.
  5. programa de carrera
    • Introduzca el siguiente comando para empezar:
      cargo run --release
      

Cómo utilizarlo

uniOCR permite el reconocimiento de texto mediante llamadas de código. El funcionamiento básico es el siguiente:

  1. Preparar la imagen
    • Coloque la imagen que desea reconocer (por ejemplo test.png) en el catálogo de proyectos.
  2. Ejecutar el ejemplo básico
    • compilador <项目目录>/examples/basic.rsEl código es el siguiente:
      use uniocr::{OcrEngine, OcrProvider};
      use anyhow::Result;
      #[tokio::main]
      async fn main() -> Result<()> {
      let engine = OcrEngine::new(OcrProvider::Auto)?;
      let text = engine.recognize_file("test.png").await?;
      println!("提取的文字: {}", text);
      Ok(())
      }
      
    • Ejecuta el ejemplo:
      cargo run --example basic
      
    • El programa muestra el texto de la imagen.
  3. Seleccionar motor OCR
    • modificaciones OcrProvider para cambiar de motor:
      • Visión macOS:OcrProvider::MacOS
      • OCR de Windows:OcrProvider::Windows
      • Tesseract:OcrProvider::Tesseract
    • Código de ejemplo:
      let engine = OcrEngine::new(OcrProvider::Tesseract)?;
      
  4. archivo por lotes
    • compilador <项目目录>/examples/batch_processing.rs::
      use uniocr::{OcrEngine, OcrProvider};
      use anyhow::Result;
      #[tokio::main]
      async fn main() -> Result<()> {
      let engine = OcrEngine::new(OcrProvider::Auto)?;
      let images = vec!["img1.png", "img2.png", "img3.png"];
      let results = engine.recognize_batch(images).await?;
      for (i, text) in results.iter().enumerate() {
      println!("图片 {} 提取的文字: {}", i + 1, text);
      }
      Ok(())
      }
      
    • Corriendo:
      cargo run --example batch_processing
      

Función destacada Operación

Ajustes personalizados

  • uniOCR permite ajustar los parámetros de reconocimiento. Código de ejemplo:
use uniocr::{OcrEngine, OcrProvider, OcrOptions};
let options = OcrOptions::default()
.languages(vec!["eng", "chi_sim"])  // 设置英文和简体中文
.confidence_threshold(0.8)         // 置信度阈值
.timeout(std::time::Duration::from_secs(30));  // 超时 30 秒
let engine = OcrEngine::new(OcrProvider::Auto)?.with_options(options);
  • Tras la ejecución, el reconocimiento se ejecutará según lo establecido.

Soporte multilingüe

  • Si reconoces el chino, necesitas instalar el paquete de idioma chino para Tesseract:
  • macOS/Ubuntu: ejecute el programa brew install tesseract-lang tal vez apt-get install tesseract-ocr-chi-sim
  • Windows: Descargar chi_sim.traineddata en el directorio de instalación de Tesseract. tessdata Carpeta.
  • Establezca el parámetro de idioma en vec!["chi_sim"].

optimización del rendimiento

  • uniOCR utiliza el funcionamiento asíncrono y el procesamiento en paralelo. Para el reconocimiento por lotes, el programa procesa varias imágenes al mismo tiempo para ahorrar tiempo.
  • En dispositivos de alto rendimiento como el MacBook Pro M4, macOS Vision puede procesar 3,2 imágenes por segundo con una precisión de 90%.

advertencia

  • Las imágenes deben ser claras; las borrosas o con poca luz pueden afectar al reconocimiento.
  • Los sistemas Windows deben ser Windows 10 o superior.
  • Cloud OCR (por ejemplo, Google Cloud Vision) requiere la configuración de credenciales adicionales, y en este momento no se dispone de un ejemplo oficial completo.

 

escenario de aplicación

  1. escaneado de documentos
    Los usuarios pueden hacer una foto de un documento en papel, extraer el texto con uniOCR y guardarlo como versión electrónica.
  2. traducción multilingüe
    Tras reconocer la lengua extranjera en la imagen, trabaja con herramientas de traducción para generar un texto multilingüe.
  3. Flujos de trabajo automatizados
    Los desarrolladores pueden integrar uniOCR en scripts para procesar imágenes por lotes y extraer texto.

 

CONTROL DE CALIDAD

  1. ¿Qué sistemas son compatibles con uniOCR?
    Compatible con macOS, Windows 10+ y Linux sin necesidad de hardware adicional.
  2. ¿Cómo mejorar la precisión del reconocimiento?
    Utilice imágenes de alta calidad, ajuste los umbrales de confianza o elija un motor de OCR adecuado.
  3. ¿Qué debo hacer si Tesseract no reconoce el chino?
    Es necesario instalar y configurar los paquetes de idioma chino languages(vec!["chi_sim"]).
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...