uniOCR: кроссплатформенный инструмент для распознавания текста с открытым исходным кодом

Общее введение

uniOCR - это инструмент для распознавания текста с открытым исходным кодом, разработанный командой mediar-ai. Он основан на языке Rust и поддерживает macOS, Windows и Linux. Пользователи могут использовать его для извлечения текста из изображений, работа с которыми проста и бесплатна. Основные особенности uniOCR - кроссплатформенная поддержка и унифицированный дизайн интерфейса. Он интегрирует несколько движков OCR, включая Vision Kit для macOS, Windows OCR и Tesseract, а также поддерживает облачный OCR, который может использоваться как индивидуальными пользователями, так и разработчиками для быстрого решения задач по распознаванию изображений и текста. Код проекта является открытым, что позволяет пользователям свободно изменять и расширять его.

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

 

Список функций

  • Поддерживает системы macOS, Windows и Linux и работает в кроссплатформенном режиме.
  • Доступно несколько вариантов движков OCR: macOS Vision, Windows OCR, Tesseract и Cloud OCR.
  • Поддерживает извлечение текста из одного или нескольких изображений.
  • Предоставьте унифицированный API-интерфейс для облегчения переключения между различными OCR-движками.
  • Поддержка асинхронных операций и пакетной обработки для повышения эффективности распознавания.
  • Позволяет настраивать такие параметры, как язык, пороги доверия и тайм-ауты.
  • Проект с открытым исходным кодом, пользователи могут просматривать и изменять код.

 

Использование помощи

Процесс установки

Для работы uniOCR требуется среда Rust и соответствующие зависимости. Ниже приведены подробные шаги:

  1. Установка ржавчины
    • Откройте терминал и введите следующую команду для установки Rust:
      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
      
    • После завершения установки запустите rustc --version Проверьте версию, чтобы убедиться, что установка прошла успешно.
  2. Загрузить исходный код uniOCR
    • Клонируйте проект локально с помощью Git:
      git clone https://github.com/mediar-ai/uniOCR.git
      
    • Перейдите в каталог проектов:
      cd uniOCR
      
  3. Установите Tesseract (необязательно)
    • Если вы хотите использовать движок Tesseract, вам необходимо установить его дополнительно:
      • macOS: работает brew install tesseract
      • Ubuntu: работает apt-get install tesseract-ocr
      • Windows: работает winget install tesseract или загрузите установочный пакет вручную.
    • Для macOS Vision и Windows OCR дополнительная установка не требуется.
  4. Компиляция проектов
    • Запустите в каталоге проекта:
      cargo build --release
      
    • После компиляции исполняемый файл находится по адресу <项目目录>/target/release/.
  5. программа бега
    • Введите следующую команду для запуска:
      cargo run --release
      

Как использовать

uniOCR позволяет распознавать текст с помощью кодовых вызовов. Ниже описаны основные операции:

  1. Подготовьте фотографию
    • Поместите изображение для распознавания (например. test.png) в каталог проектов.
  2. Запустите базовый пример
    • компилятор <项目目录>/examples/basic.rsКод выглядит следующим образом:
      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(())
      }
      
    • Запустите пример:
      cargo run --example basic
      
    • Программа выводит текст на изображение.
  3. Выберите механизм распознавания текста
    • модификации OcrProvider параметр для переключения двигателей:
      • macOS Vision:OcrProvider::MacOS
      • Windows OCR:OcrProvider::Windows
      • Тессеракт:OcrProvider::Tesseract
    • Код примера:
      let engine = OcrEngine::new(OcrProvider::Tesseract)?;
      
  4. пакетный файл
    • компилятор <项目目录>/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(())
      }
      
    • Бег:
      cargo run --example batch_processing
      

Функциональное управление

Пользовательские настройки

  • uniOCR поддерживает настройку параметров распознавания. Пример кода:
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);
  • После запуска распознавание будет выполнено в заданном порядке.

Поддержка нескольких языков

  • Если вы знаете китайский язык, вам необходимо установить китайский языковой пакет для Tesseract:
  • macOS/Ubuntu: запустите программу brew install tesseract-lang возможно apt-get install tesseract-ocr-chi-sim
  • Windows: Скачать chi_sim.traineddata в каталоге установки Tesseract. tessdata Папка.
  • Установите для параметра "Язык" значение vec!["chi_sim"].

оптимизация производительности

  • В uniOCR используется асинхронная работа и параллельная обработка. При пакетном распознавании программа обрабатывает несколько изображений одновременно для экономии времени.
  • На высокопроизводительных устройствах, таких как M4 MacBook Pro, macOS Vision может обрабатывать 3,2 изображения в секунду с точностью 90%.

предостережение

  • Изображения должны быть четкими, размытость или плохое освещение могут повлиять на распознавание.
  • Системы Windows должны быть не ниже Windows 10.
  • Для настройки облачного OCR (например, Google Cloud Vision) требуются дополнительные учетные данные, и полный официальный пример на данный момент недоступен.

 

сценарий применения

  1. сканирование документов
    Пользователи могут сфотографировать бумажный документ, извлечь из него текст с помощью uniOCR и сохранить его в электронном виде.
  2. многоязычный перевод
    После распознавания иностранного языка на изображении он работает с инструментами перевода для создания многоязычного текста.
  3. Автоматизированные рабочие процессы
    Разработчики могут интегрировать uniOCR в сценарии для пакетной обработки изображений и извлечения текста.

 

QA

  1. Какие системы поддерживают uniOCR?
    Поддерживает macOS, Windows 10+ и Linux, не требуя дополнительного оборудования.
  2. Как повысить точность распознавания?
    Используйте высококачественные изображения, настройте пороги доверия или выберите подходящий механизм OCR.
  3. Что делать, если Tesseract не распознает китайский язык?
    Необходимо установить и настроить китайские языковые пакеты languages(vec!["chi_sim"]).
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...