Allgemeine Einführung
uniOCR ist ein Open-Source-Tool zur Texterkennung, das vom mediar-ai-Team entwickelt wurde. Es basiert auf der Sprache Rust und unterstützt macOS, Windows und Linux. Benutzer können damit Text aus Bildern extrahieren, die Bedienung ist einfach und kostenlos. Die Hauptmerkmale von uniOCR sind die plattformübergreifende Unterstützung und das einheitliche Oberflächendesign. Es integriert mehrere OCR-Engines, darunter Vision Kit für macOS, Windows OCR und Tesseract, und unterstützt auch Cloud OCR, das sowohl von Einzelanwendern als auch von Entwicklern genutzt werden kann, um Bild- und Texterkennungsaufgaben schnell zu erledigen. Der Projektcode ist offen, so dass die Nutzer ihn frei ändern und erweitern können.
Funktionsliste
- Unterstützt macOS, Windows und Linux-Systeme und läuft plattformübergreifend.
- Es stehen mehrere OCR-Engine-Optionen zur Verfügung: macOS Vision, Windows OCR, Tesseract und Cloud OCR.
- Unterstützt die Extraktion von Text aus einem einzelnen Bild oder mehreren Bildern.
- Bereitstellung einer einheitlichen API-Schnittstelle, um den Wechsel zwischen verschiedenen OCR-Engines zu erleichtern.
- Unterstützung von asynchronem Betrieb und Stapelverarbeitung zur Steigerung der Erkennungseffizienz.
- Ermöglicht die Anpassung von Einstellungen wie Sprache, Vertrauensschwellen und Zeitüberschreitungen.
- Open-Source-Projekt, Benutzer können den Code einsehen und ändern.
Hilfe verwenden
Einbauverfahren
uniOCR benötigt eine Rust-Umgebung und entsprechende Abhängigkeiten, um ausgeführt werden zu können. Nachfolgend finden Sie die detaillierten Schritte:
- Einbau von Rost
- Öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein, um Rust zu installieren:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Nachdem die Installation abgeschlossen ist, führen Sie
rustc --version
Überprüfen Sie die Version, um sicherzustellen, dass die Installation erfolgreich war.
- Öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein, um Rust zu installieren:
- uniOCR-Quellcode herunterladen
- Klonen Sie das Projekt lokal mit Git:
git clone https://github.com/mediar-ai/uniOCR.git
- Rufen Sie den Projektkatalog auf:
cd uniOCR
- Klonen Sie das Projekt lokal mit Git:
- Tesseract installieren (optional)
- Wenn Sie die Tesseract-Engine verwenden möchten, müssen Sie diese zusätzlich installieren:
- macOS: läuft
brew install tesseract
- Ubuntu: läuft
apt-get install tesseract-ocr
- Windows: läuft
winget install tesseract
oder laden Sie das Installationspaket manuell herunter.
- macOS: läuft
- Für macOS Vision und Windows OCR ist keine zusätzliche Installation erforderlich.
- Wenn Sie die Tesseract-Engine verwenden möchten, müssen Sie diese zusätzlich installieren:
- Kompilieren von Projekten
- Im Projektverzeichnis ausführen:
cargo build --release
- Nach der Kompilierung befindet sich die ausführbare Datei unter
<项目目录>/target/release/
.
- Im Projektverzeichnis ausführen:
- laufendes Programm
- Geben Sie zum Starten den folgenden Befehl ein:
cargo run --release
- Geben Sie zum Starten den folgenden Befehl ein:
Wie zu verwenden
uniOCR ermöglicht die Texterkennung durch Codeaufrufe. Im Folgenden wird die grundlegende Funktionsweise beschrieben:
- Bereiten Sie das Bild vor
- Platzieren Sie das zu erkennende Bild (z. B.
test.png
) in den Projektkatalog.
- Platzieren Sie das zu erkennende Bild (z. B.
- Führen Sie das Basisbeispiel aus
- Compiler
<项目目录>/examples/basic.rs
Der Code lautet wie folgt: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(()) }
- Führen Sie das Beispiel aus:
cargo run --example basic
- Das Programm gibt den Text im Bild aus.
- Compiler
- OCR-Engine auswählen
- Änderungen
OcrProvider
um die Motoren zu wechseln:- macOS Vision:
OcrProvider::MacOS
- Windows OCR:
OcrProvider::Windows
- Tesserakt:
OcrProvider::Tesseract
- macOS Vision:
- Beispiel-Code:
let engine = OcrEngine::new(OcrProvider::Tesseract)?;
- Änderungen
- Stapeldatei
- Compiler
<项目目录>/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(()) }
- Laufen:
cargo run --example batch_processing
- Compiler
Featured Function Bedienung
Benutzerdefinierte Einstellungen
- uniOCR unterstützt die Anpassung der Erkennungsparameter. Beispiel-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);
- Nach der Ausführung wird die Erkennung wie eingestellt ausgeführt.
Unterstützung mehrerer Sprachen
- Wenn Sie Chinesisch erkennen, müssen Sie das chinesische Sprachpaket für Tesseract installieren:
- macOS/Ubuntu: Führen Sie das
brew install tesseract-lang
vielleichtapt-get install tesseract-ocr-chi-sim
- Windows: Herunterladen
chi_sim.traineddata
im Tesseract-Installationsverzeichnis.tessdata
Mappe. - Setzen Sie den Parameter Sprache auf
vec!["chi_sim"]
.
Leistungsoptimierung
- uniOCR verwendet asynchronen Betrieb und Parallelverarbeitung. Bei der Stapelerkennung verarbeitet das Programm mehrere Bilder gleichzeitig, um Zeit zu sparen.
- Auf Hochleistungsgeräten wie dem M4 MacBook Pro kann macOS Vision 3,2 Bilder pro Sekunde mit einer Genauigkeit von 90% verarbeiten.
caveat
- Die Bilder müssen klar sein, Unschärfe oder schlechte Lichtverhältnisse können die Erkennung beeinträchtigen.
- Windows-Systeme müssen Windows 10 oder höher sein.
- Für Cloud OCR (z. B. Google Cloud Vision) müssen zusätzliche Anmeldeinformationen konfiguriert werden, und ein vollständiges offizielles Beispiel ist derzeit nicht verfügbar.
Anwendungsszenario
- Scannen von Dokumenten
Benutzer können ein Papierdokument abfotografieren, den Text mit uniOCR extrahieren und als elektronische Version speichern. - mehrsprachige Übersetzung
Nach der Erkennung der Fremdsprache im Bild arbeitet es mit Übersetzungswerkzeugen, um mehrsprachigen Text zu erstellen. - Automatisierte Arbeitsabläufe
Entwickler können uniOCR in Skripte integrieren, um Bilder im Stapel zu verarbeiten und Text zu extrahieren.
QA
- Welche Systeme unterstützen uniOCR?
Unterstützt macOS, Windows 10+ und Linux, ohne dass zusätzliche Hardware erforderlich ist. - Wie lässt sich die Erkennungsgenauigkeit verbessern?
Verwenden Sie qualitativ hochwertige Bilder, passen Sie die Konfidenzschwellen an, oder wählen Sie eine geeignete OCR-Engine. - Was soll ich tun, wenn Tesseract Chinesisch nicht erkennt?
Chinesische Sprachpakete müssen installiert und eingestellt werdenlanguages(vec!["chi_sim"])
.