DUICUO

人気のオープンソースおよび無料OCRプロジェクト12選

物理世界とデジタル世界の間で情報を変換することは、デジタル開発における技術的な側面です。光学式文字認識(OCR)はそのような技術の一つです。

OCR(光学文字認識)とは、電子デバイス(スキャナーやデジタルカメラなど)が紙に印刷された文字を読み取り、明暗パターンを検出することで文字の形状を判別し、文字認識手法を用いてそれらの形状をコンピュータテキストに変換するプロセスを指します。OCRは、文書認識、ナンバープレート認識、PDF文書からWord文書への変換、画像認識、スクリーンショット認識、オンライン画像認識、自動運転、ペーパーレスオフィス、原稿編集・校正、物流仕分け、文書検索、字幕認識、文献検索などの分野で広く利用されています。特にビジネスプロセス自動化の分野では、OCRはRPA(ロボティック・プロセス・オートメーション)の重要な技術要素として重要な役割を果たしています。

AI技術の発展に伴い、オープンソース市場には優れたOCRプロジェクトが数多く登場しています。以下では、OCR技術の選択やOCRモデルアルゴリズムの検討に役立つ、人気の高いオープンソースOCRプロジェクトをいくつかご紹介します。

1. テッセラクト

https://github.com/tesseract-ocr/tesseract

Tesseractは、Hewlett-Packard社によって開発され、現在はGoogle社によってメンテナンスされている、定番のオープンソースOCRエンジンです。その精度と汎用性で定評のあるTesseractは、スキャンした文書、画像、手書きテキストからデータを抽出し、機械が理解できるテキストに変換します。100以上の言語をサポートし、複数のオペレーティングシステムと互換性があり、ユーザーフレンドリーなコマンドラインインターフェースを備えています。

利点:

  • 精度: Tesseract は、特に印刷されたテキストやスキャンされたドキュメントに対して非常に高い OCR 精度を提供します。
  • 言語サポート: Tesseract は幅広い言語をサポートしており、一部の特殊言語を含む複数の言語のテキストを認識できるため、多言語アプリケーションに最適です。
  • 継続的な改善: Tesseract のオープンソース コミュニティは非常に活発で、プロジェクトをタイムリーに更新およびアップグレードし、バグを修正し、ユーザーから報告されたパフォーマンス要件を改善できます。

欠点:

  • 複雑なレイアウトのドキュメント認識: Tesseract は、シンプルなレイアウトのドキュメントでは非常に優れたパフォーマンスを発揮しますが、より複雑なレイアウトのドキュメントでは追加の前処理または後処理の手順が必要になります。
  • 手書き認識の精度: Tesseract は機械で印刷されたテキストの認識では優れたパフォーマンスを発揮しますが、手書きのテキストではパフォーマンスがそれほど良くなく、専用の手書き認識ツールほど正確でない場合があります。

2. テッセラクト

https://tesseract.projectnaptha.com/

Tesseract.jsは、Tesseract OCRをベースにしたWebブラウザOCRソフトウェアです。ブラウザで使用でき、非常に使いやすいです。Tesseract OCRと同様に、中国語を含む複数の言語をサポートしています。

3. OCRopus

https://github.com/ocropus

OCRopusは、Googleが開発したOCR関連ツールのコレクションで、Tesseract OCRエンジンの機能を拡張します。レイアウト分析、テキスト認識、サンプルデータ生成などの高度な機能を提供します。

さらに、OCRopusは入力画像を指定してコマンドラインから実行することもできます。認識したテキストは標準出力に直接出力されるか、hOCR(HTMLベース)コードとしてファイルに書き込まれ、検索可能なPDFに変換されます。より正確な制御を行うには、コマンドラインでオプションを指定して特定の操作を実行することもできます。

利点:

  • レイアウト分析: OCRopus はレイアウト分析の精度が非常に高く、複雑なレイアウトや複数列構造の文書の認識に最適です。
  • テキスト認識精度: OCRopus は、Tesseract の高精度 OCR エンジンやその他のコンポーネントを活用して認識精度を向上させます。
  • カスタマイズ性: OCRopus は、カスタム OCR モデルをトレーニングするためのサンプル データを生成できるため、プロフェッショナル アプリケーションでより優れたカスタマイズ性と精度を実現できます。

欠点:

  • 学習曲線: スタンドアロンの OCR エンジンと比較すると、OCRopus はツールとコンポーネントの範囲が広いため、学習曲線が急峻です。
  • リソース集約型: OCRopus の高度な機能には、より多くのコンピューティング リソースが必要になる可能性があり、コストが高くなる場合があります。また、プロジェクトの処理時間要件も考慮する必要があります。

4.GOCR

https://jocr.sourceforge.net/

GOCRは、GNU General Public Licenseに基づいて開発されたオープンソースのOCRエンジンです。様々な画像ファイル形式のテキストコンテンツを認識でき、複数の言語とオペレーティングシステムをサポートしています。

GOCR の精度は他の OCR エンジンを上回ることはないかもしれませんが、そのシンプルさと使いやすさが GOCR の利点です。

利点:

  • シンプルさ:GOCRの最大の利点はそのシンプルさにあります。このソフトウェアはユーザーフレンドリーなインターフェースを備えており、複雑な設定や複雑な設定を必要とせず、シンプルなOCRソリューションを求めるユーザーに最適です。
  • 多言語サポート: GOCR は複数の言語をサポートしており、ユーザーは異なる言語のコンテンツを含む画像からテキストを抽出できます。

欠点

  • 精度: GOCR は基本的な OCR 機能を提供しますが、その精度は他のより高度な OCR エンジンに匹敵しない可能性があります。
  • 高度な機能:GOCRは単純なOCRタスクに重点を置いており、レイアウト分析や専門的な認識アルゴリズムといった高度な機能が不足している可能性があります。そのため、高度な機能が必要な場合は、このツールはあまり適していません。

4. 楔形文字

CuneiFormは、スキャンした文書や画像を編集可能なテキストに変換するために特別に設計されたオープンソースのOCRツールです。柔軟な入力ソースと出力形式を提供しながら、正確なOCR結果を提供することを主な目標としています。CuneiFormは複数の言語をサポートし、様々なオペレーティングシステムと互換性があります。

利点:

  • 精度: CuneiForm はスキャンした画像からテキストを認識する精度で知られており、複雑な文書でも非常に信頼性が高いです。
  • 言語サポート: CuneiForm は複数の言語をサポートしており、ユーザーはさまざまな言語環境のドキュメントからテキストを抽出できます。
  • 入出力の柔軟性:CuneiFormは、TIFFやJPEGなど、様々な形式のスキャン画像に対応しています。さらに、認識したテキストをTXT、HTML、PDFなどの形式で出力できるため、後続処理に柔軟に対応できます。

欠点:

  • ユーザーインターフェース:CuneiFormのユーザーインターフェースは、他のOCRツールほど直感的で使いやすくはない場合があります。そのため、機能を効果的に使用するには、OCRソフトウェアやドキュメントに慣れる必要があるかもしれません。
  • カスタマイズ: CuneiForm は一般的な OCR タスクに対して正確な結果を提供しますが、カスタマイズ性や専門的な OCR 要件に関しては制限があります。

5.オクラド

https://www.gnu.org/software/ocrad/

Ocradは、そのシンプルさと認識速度で知られています。軽量なOCRソリューションを提供し、主に印刷テキストの認識に特化しています。テキスト認識と抽出のスピードと使いやすさに重点を置き、シンプルで効率的なOCRソリューションを提供することを目指しています。

利点:

  • 使いやすさと認識効率:Ocradのシンプルな設計と軽量設計は、使いやすさと認識効率の向上に貢献しています。特に、高速でシンプルなOCRソリューションを求めるニーズに最適です。
  • 印刷テキストの認識: Ocrad はスキャンした画像から印刷テキストを認識する能力に優れており、明確で適切にフォーマットされた印刷文書から信頼性の高い結果を抽出できます。

欠点:

  • 高度な機能の欠如: Ocrad は基本的な OCR タスクに重点を置いており、レイアウト分析や手書き認識などの高度な機能が不足している可能性があります。
  • 複雑なテキストと低品質の画像の精度: 複雑なテキスト構造や低品質のスキャン画像を処理する場合、Ocrad の精度が低下する可能性があります。

6.Ocrad.js

http://antimatter15.com/ocrad.js/demo.html

Ocrad.jsは、Ocradをベースに構築されたブラウザベースのOCRソフトウェアです。JavaScriptで使用されます。サポートされている画像形式は、JPEG、PNG、GIF、BMP、SVG、NetBPMなどです。

OCRADは非常にシンプルで使いやすく、関数を呼び出すだけで`img`タグを認識できます。認識精度はTesseract.jsに劣りますが、モデルファイルのサイズがTesseractの30分の1以上小さいという利点があります。

7.Gイメージリーダー

https://github.com/manisandro/gImageReader

GImage Readerは、複数の言語と様々な画像ファイル形式のテキストを認識できるツールです。スキャンした文書、スクリーンショット、写真などからテキストを抽出するのに最適です。また、シンプルで直感的なユーザーインターフェースを備えており、画像を素早く読み込み、テキスト結果を取得できます。

利点:

  • ユーザーフレンドリーなインターフェース:GImage Readerのインターフェースは非常に直感的で使いやすく、ユーザーは簡単にアクセスして画像を読み込み、結果を得ることができます。
  • 多言語サポート: GImage Reader は複数の言語をサポートしており、異なる言語のコンテンツを含む画像からテキストを抽出できます。

欠点:

  • 高度な機能の欠如: GImage Reader は主に基本的な OCR タスクに重点を置いており、より高度なコンテンツ認識には適していません。
  • 精度とパフォーマンス: GImage Reader は基本的な OCR タスクに使用できますが、その精度とパフォーマンスは画像の品質とテキストの複雑さによって影響を受ける可能性があります。

8.キャプチャ2テキスト

https://capture2text.sourceforge.net/

Capture2Textは、コマンドラインベースのWindows OCRソフトウェアです。日本語を含む複数の言語に対応しており、横書き文字と縦書き文字の両方を認識できます。必要に応じてWindowsコマンドラインからOCRコマンドを呼び出すことができ、認識されたテキストはクリップボードに保存されます。

9. NDLOCR

https://github.com/ndl-lab

NDLOCRは、国立国会図書館が運営するオープンソースのOCRプロジェクトです。古書の複雑なレイアウトのOCR認識に適しており、特に日本語テキストの認識に適しています。

さらに、認識したテキスト内の漢字の発音に注釈を追加したり、文字以外の部分を削除したり、広告エリアの文字を読み上げたりする機能もサポートしています。また、年齢に基づいて認識精度を向上させるなど、興味深い機能も搭載されています。

このプロジェクトは研究と学習にのみ適しており、実際の漢字認識シナリオで使用することは困難です。

10.OCRmyPDF

https://github.com/ocrmypdf/OCRmyPDF

OCRmyPDFは、PDF専用のOCRソフトウェアです。認識したテキストを透明テキストとしてPDFに追加できるため、PDF内のテキスト検索が可能になります。

テキスト情報が少ないPDFでも検索が可能になり、利便性が向上します。テキスト認識にはTesseract OCRエンジンを採用しているため、中国語にも対応しています。

11. イージーOCR

https://github.com/JaidedAI/EasyOCR

EasyOCRは、機械学習(CRNN)に基づくOCR機能を実装しています。簡体字中国語と繁体字中国語を含む80以上の言語のテキストを認識できます。Pythonで開発されているため、Pythonで簡単に使用できます。例えば:

中国語の文字を含む画像を認識する:

 import easyocr reader = easyocr.Reader(['ch_sim','en']) # this needs to run only once to load the model into memory reader.readtext('chinese.jpg', detail = 0)

認識結果は次のとおりです。

 ['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']

さらに多くの例は、次の URL でテストできます: https://www.jaided.ai/easyocr/

12.クラーケン

https://github.com/mittagessen/kraken

KrakenはPythonで開発されたOCRソフトウェアで、主に非ラテン文字の認識に使用されます。アラビア語などの右から左に記述する言語だけでなく、日本語などの上から下へ記述する言語もサポートしています。OCRはコマンドラインから実行でき、PDF、JPEG、TIFFなどの形式のファイルを認識できます。

その機能は次のとおりです:

  • カスタムトレーニングされたレイアウト分析と文字認識をサポートします。
  • 右から左、上から下への認識をサポートします。
  • ALTO、PageXML、abbyXML、hOCR 形式での出力を提供します。
  • 単語の境界ボックスを認識し、文字のクリッピングをサポートします。
  • マルチスクリプト認識サポート
  • モデルファイルの公開リポジトリ
  • アニメーションGIF認識ネットワークアーキテクチャ

詳細については、ウェブサイトをご覧ください:https://kraken.re/main/index.html

結論は

上記で紹介したOCRソフトウェアは、プロジェクトのOCR技術の選択やOCR開発の参考資料として役立ちます。さらに、一部の垂直産業アプリケーションでは、ユーザーが独自の認識モデルをトレーニングすることで、それぞれのビジネスニーズに基づいてアプリケーションの有効性を向上させることができます。AI技術の発展に伴い、OCRの認識精度は今後も向上し続けるでしょう。