スキャン画像とフォームからテキストを解析する無料 JavaScript ライブラリ
WebまたはNode.jsアプリで、画像前処理とテンプレートサポートを備えた、白黒スキャン画像および文書からテキストを解析するためのオープンソース光学文字認識(OCR)JavaScriptライブラリ。
現代のデジタル社会において、光学文字認識(OCR)技術は、スキャン画像、手書きメモ、印刷された文書を編集可能で検索可能なデータに変換する上で重要な役割を果たしています。軽量でオープンソースのソリューションを求める JavaScript 開発者にとって、Guten OCR は魅力的な選択肢です。この JavaScript ベースの OCR エンジンはシンプルさを重視して設計されており、ブラウザベースまたは Node.js アプリケーションに OCR 機能を直接組み込むのに最適です。ライブラリには、テンプレートによる文字認識、画像の閾値処理と二値化、文字分割、テンプレートマッチングとテキスト組み立て、モジュラーコードベースのサポートなど、いくつかの重要な機能が含まれています。黒白のスキャン文書から印刷されたテキストを認識することに焦点を当てており、書籍やフォームなどの整ったテキストに最適です。
Guten OCR は、Gutenye が作成したオープンソースの JavaScript OCR エンジンです。外部依存関係や大規模なセットアップが必要な重量級 OCR ツールとは異なり、Guten OCR は完全に JavaScript で書かれているため、ウェブブラウザや Node.js を使用したサーバー上で実行できます。このライブラリは、基本的な画像処理技術を用いて文字をセグメント化し、文字パターン認識システムで識別します。多言語や手書きテキストのサポートに関しては、Tesseract のような商用 OCR エンジンにまだ匹敵しないかもしれませんが、そのシンプルさとハッカビリティにより、教育プロジェクト、概念実証、またはカスタムウェブアプリに組み込む OCR 機能に最適な選択肢です。Tesseract や他の大型エンジンとは異なり、Guten OCR は意図的に軽量で焦点を絞っているため、OCR の内部動作を理解したい人にとって優れた出発点となります。
Guten OCRの開始方法
Guten OCR をインストールする推奨方法は Brew を使用することです。スムーズなインストールのために、以下のコマンドを使用してください
BrewでGuten OCRをインストール
brew install git-lfs GitHub から Guten OCR をインストール
git clone git@github.com:gutenye/ocr.git 手動でインストールすることもできます;最新のリリースファイルを GitHub リポジトリから直接ダウンロードしてください。
OCR操作前の画像前処理
オープンソースのGuten OCRライブラリは完全にJavaScriptで書かれており、ブラウザとNode.jsの両方の環境と互換性があります。認識精度を向上させるための組み込み画像前処理機能が含まれています。画像の二値化(白黒変換)、ノイズ除去、傾き補正などをサポートします。以下の例は、開発者が画像に対してOCR処理を行う前に、複数の画像前処理ステップを適用できる方法を示しています。
JavaScript ライブラリを使用して OCR 操作の前に画像前処理を適用する方法は?
const { preprocess } = require('guten-ocr');
// Apply multiple preprocessing steps
const processedImage = preprocess(imageData, [
'grayscale', // Convert to grayscale
'binarize', // Convert to black and white
'deskew', // Correct skew
'denoise' // Reduce noise
]);
// Then perform OCR on the processed image
ocr.recognize(processedImage).then(/* ... */);
テンプレートによる文字認識
JavaScript ライブラリ Guten OCR は、JavaScript アプリケーション内でテンプレートを使用した OCR 操作を完全にサポートしています。Guten OCR の中心にはテンプレートマッチングシステムがあります。機械学習モデルをトレーニングする代わりに、事前定義された文字パターンを使用します。これによりシステムは高速で理解しやすくなりますが、フォントやレイアウトの一貫性に対しては敏感になります。このタスクを実行するために、ライブラリは各文字(A–Z、a–z、0–9 など)をキャンバスに描画し、各文字の二値マトリックスを参照テンプレートにします。画像を解析する際、ライブラリは画像セグメントをこれらのテンプレートと比較して最適な一致を見つけます。垂直および水平のラインスキャンを組み合わせてバウンディングボックスを検出することでこれを行います。
OCRライブラリによる文字分割
オープンソースの JavaScript ライブラリ Guten OCR は、ソフトウェア開発者が文字分割を簡単に実行できるようにします。画像が二値化されたら、次のステップは個々の文字を分割することです。Guten OCR は行と列をスキャンして黒ピクセルが密集した領域を検出し、潜在的な文字に分割します。以下の例は、ソフトウェア開発者が JavaScript OCR ライブラリを使用して文字分割を実行できる方法を示しています。
JavaScript ライブラリを使用して文字分割を実行する方法は?
const segment = require('guten-ocr/segment');
const boxes = segment(binarized); // returns array of [x, y, width, height]