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.
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:
- 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.
- Abra um terminal e digite o seguinte comando para instalar o Rust:
- 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
- Clone o projeto localmente usando o Git:
- 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.
- macOS: em execução
- Não é necessária nenhuma instalação adicional para o macOS Vision e o Windows OCR.
- Se quiser usar o mecanismo Tesseract, você precisará instalá-lo adicionalmente:
- 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/
.
- Execute no diretório do projeto:
- programa de corrida
- Digite o seguinte comando para iniciar:
cargo run --release
- Digite o seguinte comando para iniciar:
Como usar
O uniOCR permite o reconhecimento de texto por meio de chamadas de código. A operação básica é a seguinte:
- Preparar a imagem
- Coloque a imagem a ser reconhecida (por exemplo
test.png
) no catálogo de projetos.
- Coloque a imagem a ser reconhecida (por exemplo
- Executar o exemplo básico
- compilador
<项目目录>/examples/basic.rs
O 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.
- compilador
- Selecione o mecanismo de OCR
- modificações
OcrProvider
para trocar de motor:- macOS Vision:
OcrProvider::MacOS
- OCR do Windows:
OcrProvider::Windows
- Tesseract:
OcrProvider::Tesseract
- macOS Vision:
- Código de amostra:
let engine = OcrEngine::new(OcrProvider::Tesseract)?;
- modificações
- 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
- compilador
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
talvezapt-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
- 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. - 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. - Fluxos de trabalho automatizados
Os desenvolvedores podem integrar o uniOCR em scripts para processar imagens em lote e extrair texto.
QA
- Quais sistemas suportam o uniOCR?
Compatível com macOS, Windows 10+ e Linux, sem necessidade de hardware adicional. - 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. - O que devo fazer se o Tesseract não reconhecer o idioma chinês?
Os pacotes de idiomas chineses precisam ser instalados e definidoslanguages(vec!["chi_sim"])
.