Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

uniOCR: ferramenta de reconhecimento de texto de código aberto multiplataforma

Introdução geral

O uniOCR é uma ferramenta de reconhecimento de texto de código aberto desenvolvida pela equipe mediar-ai. Ela é baseada na linguagem Rust e é compatível com macOS, Windows e Linux. Os usuários podem usá-lo para extrair texto de imagens, a operação é simples e gratuita. Os principais recursos do uniOCR são o suporte a várias plataformas e o design de interface unificado. Ele integra vários mecanismos de OCR, incluindo o Vision Kit para macOS, Windows OCR e Tesseract, e também suporta OCR em nuvem, que pode ser usado por usuários individuais e desenvolvedores para lidar rapidamente com tarefas de reconhecimento de imagem e texto. O código do projeto é aberto, permitindo que os usuários o modifiquem e ampliem livremente.

uniOCR: ferramenta de reconhecimento de texto de código aberto multiplataforma-1


 

Lista de funções

  • É compatível com os sistemas macOS, Windows e Linux e funciona em várias plataformas.
  • Estão disponíveis várias opções de mecanismo de OCR: macOS Vision, Windows OCR, Tesseract e Cloud OCR.
  • Suporta a extração de texto de uma única imagem ou de várias imagens.
  • Fornecer uma interface API unificada para facilitar a troca entre diferentes mecanismos de OCR.
  • Suporta operação assíncrona e processamento em lote para aumentar a eficiência do reconhecimento.
  • Permite a personalização de configurações como idioma, limites de confiança e tempos limite.
  • Projeto de código aberto, os usuários podem visualizar e modificar o código.

 

Usando a Ajuda

Processo de instalação

O uniOCR requer um ambiente Rust e dependências relacionadas para ser executado. Veja a seguir as etapas detalhadas:

  1. Instalação de ferrugem
    • Abra um terminal e digite o seguinte comando para instalar o Rust:
      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
      
    • Após a conclusão da instalação, execute rustc --version Verifique a versão para ter certeza de que a instalação foi bem-sucedida.
  2. Faça o download do código-fonte do uniOCR
    • Clone o projeto localmente usando o Git:
      git clone https://github.com/mediar-ai/uniOCR.git
      
    • Vá para o catálogo de projetos:
      cd uniOCR
      
  3. Instale o Tesseract (opcional)
    • Se quiser usar o mecanismo Tesseract, você precisará instalá-lo adicionalmente:
      • macOS: em execução brew install tesseract
      • Ubuntu: em execução apt-get install tesseract-ocr
      • Windows: em execução winget install tesseract ou faça o download do pacote de instalação manualmente.
    • Não é necessária nenhuma instalação adicional para o macOS Vision e o Windows OCR.
  4. Compilação de projetos
    • Execute no diretório do projeto:
      cargo build --release
      
    • Após a compilação, o executável está localizado em <项目目录>/target/release/.
  5. programa de corrida
    • Digite o seguinte comando para iniciar:
      cargo run --release
      

Como usar

O uniOCR permite o reconhecimento de texto por meio de chamadas de código. A operação básica é a seguinte:

  1. Preparar a imagem
    • Coloque a imagem a ser reconhecida (por exemplo test.png) no catálogo de projetos.
  2. Executar o exemplo básico
    • compilador <项目目录>/examples/basic.rsO código é o seguinte:
      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(())
      }
      
    • Execute o exemplo:
      cargo run --example basic
      
    • O programa gera o texto na imagem.
  3. Selecione o mecanismo de OCR
    • modificações OcrProvider para trocar de motor:
      • macOS Vision:OcrProvider::MacOS
      • OCR do Windows:OcrProvider::Windows
      • Tesseract:OcrProvider::Tesseract
    • Código de amostra:
      let engine = OcrEngine::new(OcrProvider::Tesseract)?;
      
  4. arquivo de lote
    • 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(())
      }
      
    • Em execução:
      cargo run --example batch_processing
      

Operação da função em destaque

Configurações personalizadas

  • O uniOCR suporta o ajuste dos parâmetros de reconhecimento. Código de amostra:
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);
  • Após a execução, o reconhecimento será executado conforme definido.

Suporte a vários idiomas

  • Se você reconhece o chinês, precisa instalar o pacote de idioma chinês para o Tesseract:
  • macOS/Ubuntu: execute o comando brew install tesseract-lang talvez apt-get install tesseract-ocr-chi-sim
  • Windows: Download chi_sim.traineddata no diretório de instalação do Tesseract. tessdata Pasta.
  • Defina o parâmetro de idioma como vec!["chi_sim"].

otimização do desempenho

  • O uniOCR usa operação assíncrona e processamento paralelo. Para o reconhecimento em lote, o programa processa várias imagens ao mesmo tempo para economizar tempo.
  • Em dispositivos de alto desempenho, como o MacBook Pro M4, o macOS Vision pode processar 3,2 imagens por segundo com uma precisão de 90%.

advertência

  • As imagens precisam ser nítidas; borrões ou pouca luz podem afetar o reconhecimento.
  • Os sistemas Windows precisam ser Windows 10 ou superior.
  • O OCR em nuvem (por exemplo, Google Cloud Vision) requer credenciais adicionais para ser configurado, e um exemplo oficial completo não está disponível no momento.

 

cenário do aplicativo

  1. digitalização de documentos
    Os usuários podem tirar uma foto de um documento impresso, extrair o texto usando o uniOCR e salvá-lo como uma versão eletrônica.
  2. tradução multilíngue
    Depois de reconhecer o idioma estrangeiro na imagem, ele trabalha com ferramentas de tradução para gerar um texto multilíngue.
  3. Fluxos de trabalho automatizados
    Os desenvolvedores podem integrar o uniOCR em scripts para processar imagens em lote e extrair texto.

 

QA

  1. Quais sistemas suportam o uniOCR?
    Compatível com macOS, Windows 10+ e Linux, sem necessidade de hardware adicional.
  2. Como melhorar a precisão do reconhecimento?
    Use imagens de alta qualidade, ajuste os limites de confiança ou escolha um mecanismo de OCR adequado.
  3. O que devo fazer se o Tesseract não reconhecer o idioma chinês?
    Os pacotes de idiomas chineses precisam ser instalados e definidos languages(vec!["chi_sim"]).
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " uniOCR: ferramenta de reconhecimento de texto de código aberto multiplataforma
pt_BRPortuguês do Brasil