パッケージ、リポジトリ、アプリカテゴリを検索

flutter_tesseract_ocr のカバー
パッケージ詳細v0.4.31

flutter_tesseract_ocr

Tesseract 4は、行認識に焦点を当てたニューラルネットワーク(LSTM)ベースの新しいOCRエンジンを追加しました。Unicode(UTF-8)対応で、100以上の言語を認識できます。

AndroidiOSWeb
30日間ダウンロード
7910
いいね数
216
Pub ポイント
130

パッケージをインストール

flutter pub add flutter_tesseract_ocr

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Flutter Tesseract OCR は、Tesseract 4 の高度なニューラルネットワーク(LSTM)ベースの OCR エンジンを統合した Flutter プラグインであり、100 語以上で画像からの正確なテキスト認識を可能にします。Unicode(UTF-8)をサポートしており、マルチリンガルアプリケーションに最適です。このプラグインは Android、iOS、Web プラットフォームで動作し、Flutter アプリ内でのドキュメントスキャンおよびテキスト抽出のための信頼性の高いソリューションを提供します。

用途

  • モバイルアプリにおける文書スキャン
  • 画像からのテキスト抽出
  • 多言語テキスト認識
  • 自動フォームデータキャプチャ
  • 画像ベースの検索機能

主な機能

  • LSTMベースのOCRエンジン
  • 100以上の言語をサポート
  • Unicode (UTF-8) テキスト出力
  • クロスプラットフォーム互換性
  • ラインレベルの認識における高い正確性

適している対象

  • OCRを必要とするモバイルアプリ
  • ドキュメント管理ツール
  • 言語に依存しないテキスト抽出
  • Web とモバイルのハイブリッドプロジェクト
  • 画像からテキストへのワークフローを持つアプリ

注意事項

  • 最高の結果を得るためには画像前処理が必要です
  • 低性能デバイスではパフォーマンスが異なる場合があります
  • デフォルト以外の言語用に追加の設定が必要です
  • バンドルされたモデルなしの制限付きオフラインサポート
  • モデルのサイズはアプリバンドルサイズに影響します

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Tesseract OCR for Flutter

Fork note (onestudi0/tesseract_ocr): This fork exists solely to fix android/build.gradle, which still declares the defunct jcenter() repository — current Gradle rejects the jcenter() DSL method outright, so upstream fails to build at all as of this writing. This fork replaces it with mavenCentral(). No other changes. If upstream (khjde1207/tesseract_ocr) ever merges an equivalent fix, switch back to the pub.dev release and drop the dependency_overrides pointing here.

Tesseract OCR 4.0 for flutter This plugin is based on Tesseract OCR 4 This plugin uses Tesseract4Android and SwiftyTesseract.

pub.dev link


https://pub.dev/packages/google_ml_kit

Tesseract is slower than ml_kit.

Consider whether you should use Tesseract


example

install


dev_dependencies:
  ...
  flutter_tesseract_ocr:

web

./web/index.html

use https://www.npmjs.com/package/tesseract.js/v/v4.0.2

<body>
  <script src='https://unpkg.com/tesseract.js@v4.0.2/dist/tesseract.min.js'></script>
  <script>
    async function _extractText(imagePath , mapData){
      var worker = await Tesseract.createWorker();
      await worker.load();
      await worker.loadLanguage(mapData.language)
      await worker.initialize(mapData.language)
      await worker.setParameters(mapData.args)
      var rtn = await worker.recognize(imagePath, {}, worker.id);
      await worker.terminate();
      if(mapData.args["tessjs_create_hocr"]){
        return rtn.data.hocr;
      }
      return rtn.data.text;
    }
  </script>
  ...
  ..
  .
</body>

Getting Started (Android / Ios)

You must add trained data and trained data config file to your assets directory. You can find additional language trained data files here Trained language files

add tessdata folder under assets folder, add tessdata_config.json file under assets folder:

{
  "files": [
    "eng.traineddata",
    "<other_language>.traineddata"
  ]
}

Plugin assumes you have tessdata folder in your assets directory and defined in your pubspec.yaml

Check the contents of example/assets folder and example/pubspec.yaml


IOS issues

Initialization of SwiftyTesseract has failed

Just drag tessdata folder from asset to place under Runner folder in xcode add as a reference then it will work.

Reference


Usage

Using is very simple:

//args support android / Web , i don't have a mac
String text = await FlutterTesseractOcr.extractText('/path/to/image', language: 'kor+eng',
        args: {
          "psm": "4",
          "preserve_interword_spaces": "1",
        });

You can leave language empty, it will default to `'eng'.

//---- dynamic add Tessdata (Android)---- ▼
// https://github.com/tesseract-ocr/tessdata/raw/main/dan_frak.traineddata

HttpClient httpClient = new HttpClient();

HttpClientRequest request = await httpClient.getUrl(Uri.parse(
        'https://github.com/tesseract-ocr/tessdata/raw/main/${langName}.traineddata'));

HttpClientResponse response = await request.close();
Uint8List bytes =await consolidateHttpClientResponseBytes(response);
String dir = await FlutterTesseractOcr.getTessdataPath();

print('$dir/${langName}.traineddata');
File file = new File('$dir/${langName}.traineddata');
await file.writeAsBytes(bytes);
//---- dynamic add Tessdata ---- ▲

カテゴリー

依存関係

依存関係一覧 2 件

ソースリポジトリ

このパッケージを使用しているプロジェクト