uniOCR : outil de reconnaissance de texte open source multiplateforme

Introduction générale

uniOCR est un outil de reconnaissance de texte open source développé par l'équipe mediar-ai. Il est basé sur le langage Rust et supporte macOS, Windows et Linux. Les utilisateurs peuvent l'utiliser pour extraire du texte à partir d'images, l'opération est simple et gratuite. Les principales caractéristiques d'uniOCR sont le support multiplateforme et la conception d'une interface unifiée. Il intègre plusieurs moteurs d'OCR, dont Vision Kit pour macOS, Windows OCR et Tesseract, et prend également en charge l'OCR en nuage, qui peut être utilisé par les utilisateurs individuels et les développeurs pour traiter rapidement les tâches de reconnaissance d'images et de textes. Le code du projet est ouvert, ce qui permet aux utilisateurs de le modifier et de l'étendre librement.

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

 

Liste des fonctions

  • Prend en charge les systèmes macOS, Windows et Linux et fonctionne de manière multiplateforme.
  • Plusieurs options de moteur d'OCR sont disponibles : macOS Vision, Windows OCR, Tesseract et Cloud OCR.
  • Permet d'extraire du texte d'une seule image ou de plusieurs images.
  • Fournir une interface API unifiée pour faciliter le passage d'un moteur d'OCR à un autre.
  • Prise en charge des opérations asynchrones et du traitement par lots pour améliorer l'efficacité de la reconnaissance.
  • Permet de personnaliser les paramètres tels que la langue, les seuils de confiance et les délais d'attente.
  • Projet open source, les utilisateurs peuvent consulter et modifier le code.

 

Utiliser l'aide

Processus d'installation

uniOCR nécessite un environnement Rust et les dépendances associées pour fonctionner. Voici les étapes détaillées :

  1. Installation de la rouille
    • Ouvrez un terminal et entrez la commande suivante pour installer Rust :
      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
      
    • Une fois l'installation terminée, exécutez rustc --version Vérifiez la version pour vous assurer que l'installation a réussi.
  2. Télécharger le code source d'uniOCR
    • Cloner le projet localement en utilisant Git :
      git clone https://github.com/mediar-ai/uniOCR.git
      
    • Accédez au catalogue de projets :
      cd uniOCR
      
  3. Installer Tesseract (optionnel)
    • Si vous souhaitez utiliser le moteur Tesseract, vous devez l'installer en plus :
      • macOS : en cours brew install tesseract
      • Ubuntu : en cours apt-get install tesseract-ocr
      • Windows : en cours winget install tesseract ou téléchargez le paquet d'installation manuellement.
    • Aucune installation supplémentaire n'est nécessaire pour macOS Vision et Windows OCR.
  4. Compilation des projets
    • Exécuter dans le répertoire du projet :
      cargo build --release
      
    • Après compilation, l'exécutable se trouve à l'adresse suivante <项目目录>/target/release/.
  5. programme de course
    • Entrez la commande suivante pour démarrer :
      cargo run --release
      

Comment l'utiliser

uniOCR permet la reconnaissance de texte par le biais d'appels de code. Le fonctionnement de base est le suivant :

  1. Préparer l'image
    • Placez l'image à reconnaître (par ex. test.png) dans le catalogue de projets.
  2. Exécuter l'exemple de base
    • compilateur <项目目录>/examples/basic.rsLe code est le suivant :
      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(())
      }
      
    • Exécutez l'exemple :
      cargo run --example basic
      
    • Le programme affiche le texte dans l'image.
  3. Sélectionner le moteur d'OCR
    • modifications OcrProvider pour changer de moteur :
      • macOS Vision :OcrProvider::MacOS
      • Windows OCR :OcrProvider::Windows
      • Tesseract :OcrProvider::Tesseract
    • Exemple de code :
      let engine = OcrEngine::new(OcrProvider::Tesseract)?;
      
  4. fichier de lot
    • compilateur <项目目录>/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(())
      }
      
    • La course à pied :
      cargo run --example batch_processing
      

Fonction en vedette Fonctionnement

Paramètres personnalisés

  • uniOCR permet d'ajuster les paramètres de reconnaissance. Exemple de code :
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);
  • Après l'exécution, la reconnaissance sera exécutée comme prévu.

Prise en charge multilingue

  • Si vous reconnaissez le chinois, vous devez installer le pack linguistique chinois pour Tesseract :
  • macOS/Ubuntu : exécutez la commande brew install tesseract-lang peut-être apt-get install tesseract-ocr-chi-sim
  • Windows : Télécharger chi_sim.traineddata dans le répertoire d'installation de Tesseract. tessdata Dossier.
  • Réglez le paramètre de la langue sur vec!["chi_sim"].

l'optimisation des performances

  • uniOCR utilise un fonctionnement asynchrone et un traitement parallèle. Pour la reconnaissance par lots, le programme traite plusieurs images en même temps pour gagner du temps.
  • Sur des appareils très performants tels que le MacBook Pro M4, macOS Vision peut traiter 3,2 images par seconde avec une précision de 90%.

mise en garde

  • Les images doivent être claires ; les images floues ou faiblement éclairées peuvent nuire à la reconnaissance.
  • Les systèmes Windows doivent être de type Windows 10 ou supérieur.
  • L'OCR dans le nuage (par exemple Google Cloud Vision) nécessite des informations d'identification supplémentaires pour être configuré, et un exemple officiel complet n'est pas disponible à l'heure actuelle.

 

scénario d'application

  1. numérisation de documents
    Les utilisateurs peuvent prendre une photo d'un document papier, en extraire le texte à l'aide d'uniOCR et l'enregistrer en tant que version électronique.
  2. traduction multilingue
    Après avoir reconnu la langue étrangère dans l'image, il travaille avec des outils de traduction pour générer un texte multilingue.
  3. Flux de travail automatisés
    Les développeurs peuvent intégrer uniOCR dans des scripts pour traiter des images par lots et extraire du texte.

 

QA

  1. Quels sont les systèmes qui prennent en charge uniOCR ?
    Prise en charge de macOS, Windows 10+ et Linux sans matériel supplémentaire.
  2. Comment améliorer la précision de la reconnaissance ?
    Utilisez des images de haute qualité, ajustez les seuils de confiance ou choisissez un moteur d'OCR approprié.
  3. Que dois-je faire si Tesseract ne reconnaît pas le chinois ?
    Les packs de langues chinoises doivent être installés et paramétrés languages(vec!["chi_sim"]).
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...