DUICUO

OCR認識のための8つの一般的なオープンソースツール

51CTO読者成長プログラムコミュニティ募集中。お問い合わせはアシスタント(WeChat ID: CTOjishuzhan)までご連絡ください。

著者 | 陳暁兵

校正者 | Chonglou

OCR(光学式文字認識)は、画像内のテキストを編集可能なテキストに自動変換する技術です。現在、主要ベンダーは様々なシナリオに対応したOCR認識APIを提供しています。また、カスタマイズやトレーニングをサポートするオープンソースのOCRフレームワークやツールも提供されており、開発者は様々なシナリオにおけるOCRのニーズに柔軟に対応できます。

I. オープンソースOCRツールの利点

オープンソースのOCRツールを使用すると、テキスト認識の自動化、効率化、精度が向上し、様々なアプリケーションシナリオに利便性と実用性をもたらします。市販のOCRソフトウェアと比較して、オープンソースのOCRツールには以下の利点があります。

無料で使用可能: 商用ソフトウェアには著作権やライセンスの制限はなく、オープンソースの OCR ツールが提供する機能はすべて無料で使用できます。

オープンソース: ソースコードは公開されており、必要に応じて変更およびカスタマイズできます。

柔軟性と拡張性: 実際のニーズに応じてさまざまなツールを選択でき、これらのツールはさまざまなスタイルや分野で実用的に使用でき、汎用性と拡張性を備えています。

II. 8つの一般的なオープンソースOCRツール

1. テッセラクト

Tesseractは、Googleが管理するオープンソースのOCRエンジンです。オープンソースで無料であり、複数の言語とプラットフォームをサポートしています。さまざまな種類の画像を処理でき、さまざまなフォントとテキストレイアウトもサポートしています。

2. テッセラクト

Tesseract.jsは、100以上の言語をサポートし、非常に使いやすいTesseract OCRのJavaScriptバージョンです。npm経由でインストールするか、ページ内で直接参照することができます。JavaScriptで実行されるため、追加の設定は必要ありません。

3. パドルOCR

PaddleOCRは、Baiduが提供するオープンソースのOCRライブラリです。開発者が優れたモデルをトレーニングし、効果的に実装できるよう、豊富で先進的かつ実用的なOCRツールキットを作成するように設計されています。PaddleOCRは、テキスト検出モデルとテキスト認識モデルの2つの部分で構成され、複数の言語や複雑なシナリオでのテキスト認識をサポートします。

4. イージーOCR

EasyOCRは、画像認識とテキスト出力に使用されるTesseract OCRエンジンをベースにしたOCR認識ライブラリで、現在80以上の言語をサポートしています。さらに、EasyOCRはテキストの位置合わせと文字検出の精度が向上しており、使いやすく、迅速に導入できます。

5. MMOCR

MMOCRは、PyTorchとMMDetectionをベースにしたオープンソースツールキットで、テキスト検出、テキスト認識、そしてキー情報抽出といった関連する下流タスクに重点を置いています。様々なシナリオにおいて優れたパフォーマンスを誇り、複雑な環境におけるOCRニーズにも対応します。

6. シンプルOCR OpenCV

simple-ocr-opencv は、OpenCV と NumPy をベースにした OCR 認識エンジンです。一般的な OCR タスクを処理するためのシンプルかつ信頼性の高い方法を提供し、Python プロジェクトに簡単に統合できます。

7.OCRmyPDF

OCRmyPDFは、Tesseract-OCRをベースに開発・学習された、テキスト認識・抽出のためのオープンソースプロジェクトです。スキャンしたファイルや画像ファイル内のテキストを編集可能なPDFドキュメントに変換できます。

8. 海OCR

Umi-OCRは、PaddleOCRをベースにしたオープンソースのテキスト認識ツールです。高品質なOCRモデルを迅速に生成し、使いやすいAPIを提供し、複数の言語とファイル形式をサポートしています。特に、カスタムトレーニングを必要とするOCRアプリケーションに最適です。

III. 8つのオープンソースOCRツールの基本コマンド

1. テッセラクト

公式サイト: https://github.com/tesseract-ocr/tesseract

 git clone https://github.com/tesseract-ocr/tesseract.git cd tesseract ./autogen.sh ./configure make sudomake install

2. テッセラクト

公式サイト: https://github.com/naptha/tesseract.js

 import Tesseract from 'tesseract.js'; Tesseract.recognize('/path/to/image.png') .then(function(result){ console.log(result.text); })

3. パドルOCR

公式サイト: https://github.com/PaddlePaddle/PaddleOCR

pip インストール paddleocr

使用例:

 import paddleocr # 初始化识别器ocr = paddleocr.OCR() # 读取图像文件img_path = '/path/to/image.png' img = paddleocr.read_image(img_path) # 进行OCR识别result = ocr.ocr(img) # 输出识别结果for line in result: print(line)

4. イージーOCR

公式サイト: https://github.com/JaidedAI/EasyOCR

easyocr を pip でインストール

使用例:

 import easyocr #初始化OCR识别器reader = easyocr.Reader(['en', 'ch']) #读取图像文件img_path = '/path/to/image.png' img = easyocr.imgproc.read(img_path) #进行OCR识别result = reader.readtext(img) #输出识别结果for line in result:print(line)

5. MMOCR

公式サイト: https://github.com/open-mmlab/mmocr

pip インストール mmocr

使用例:

 import mmocr # 初始化OCR识别器pipeline = mmocr.Pipeline(cnotallow='configs/textrecog/detector/tp_det_mv3_db.yml') # 读取图像文件img_path = '/path/to/image.png' img = mmcv.imread(img_path) # 进行OCR识别result = pipeline(img) # 输出识别结果for line in result: print(line['text'])

6. シンプルOCR OpenCV

公式サイト: https://github.com/goncalopp/simple-ocr-opencv

pipでsimple-ocr-opencvをインストールする

使用例:

 import cv2 from simple_ocr import OCR # 初始化OCR识别器ocr = OCR() # 读取图像文件img_path = '/path/to/image.png' img = cv2.imread(img_path) # 进行OCR识别result = ocr.ocr(img) # 输出识别结果print(result)

7.OCRmyPDF

公式サイト: https://github.com/ocrmypdf/OCRmyPDF

pipでocrmypdfをインストールする

使用例:

 ocrmypdf /path/to/input.pdf /path/to/output.pdf

8. 海OCR

公式サイト: https://github.com/umi-lib/UMI-OCR

pipを使ってumi-ocrをインストールする

使用例:

 import umi_ocr # 初始化识别器ocr = umi_ocr.OCR() # 读取图像文件img_path = '/path/to/image.png' img = umi_ocr.read_image(img_path) # 进行OCR识别result = ocr.ocr(img) # 输出识别结果print(result)

IV. OCRの実用的応用シナリオ

この記事では、Tesseract、Tesseract.js、PaddleOCR、EasyOCR、MMOCR、simple-ocr-opencv、OCRmyPDF、Umi-OCRを含む、8つの一般的なオープンソースOCRフレームワークとツールを紹介します。これらのツールはそれぞれ異なる機能と利点を持ち、実際のニーズに合わせて選択できます。以下に、これらのツールの実用的な適用シナリオをいくつか示します。

Tesseract は、スキャナーやデジタル化された文書などの画像認識やテキスト変換に広く使用されています。

Tesseract.js: Web ベースの OCR 認識に使用され、画像内のテキストを編集可能なテキストに変換できるため、オンライン エディター、スマート フォーム、オンライン リーダーなどのアプリケーションに適しています。

PaddleOCR: ID カード、銀行カード、ナンバープレートなどの複雑なテキスト シナリオでの OCR 認識に適しています。

EasyOCR: 名刺認識、請求書認識、製品ラベル認識など、テキストの配置と文字検出精度に対する要件が高い OCR アプリケーション シナリオに適しています。

MMOCR: 中国語と英語が混在するテキスト、縦書きテキスト、手書きテキスト、表、小説などの非構造化テキストを含むシナリオでの OCR 認識に適しています。

simple-ocr-opencv: ID カード、営業許可証、ナンバープレートなどの一般的な OCR タスクの処理に適しています。

OCRmyPDF: スキャンされたファイルまたは画像ファイル内のテキストを編集可能な PDF ドキュメントに変換します。PDF ドキュメントを編集する必要があるシナリオに適しています。

Umi-OCR:高品質なOCRモデルを迅速に生成し、複数の言語とファイル形式をサポートします。カスタムトレーニングを必要とするOCRアプリケーションに最適です。

V. OCR技術の国内応用

OCR技術は、情報技術イノベーション分野で広く活用されており、主に文字認識、表認識、印刷テキスト認識、各種証明書の認識などが含まれます。様々なオープンソースOCRツールの登場と継続的な改良により、OCR技術は広く採用されるようになり、国産OCR技術も比較的成熟し、広く利用されるようになりました。代表的なベンダーとしては、Tudin Technology、China Standard Information、Digital China、iFlytek OCRなどが挙げられますが、Alibaba CloudやTencent Cloudなどのインターネット企業も独自のOCR技術製品を発表しています。

これらの OCR テクノロジは、次のようなさまざまな分野に応用できます。

  • 電子商取引: 注文処理、請求書管理、製品識別のアプリケーションにより、効率と精度が向上します。
  • 金融サービス: 銀行カード、ID カード、証券口座などの分野での識別により、顧客エクスペリエンスが向上し、作業負荷とエラー率を削減できます。
  • ヘルスケア:医療記録管理、医薬品規制、個人のプライバシー情報の保護などの分野での応用も非常に重要です。

OCR技術は、幅広い用途に加え、行政、教育、交通、セキュリティなど、様々な分野で活用できます。幅広い用途と有望な市場展望を有しています。

もちろん、OCR技術にも欠点はあります。例えば、一部の手書き文字の認識精度には改善の余地があります。複雑な環境や多様な形式の文書を処理する場合、OCR技術は誤認識などの問題に直面する可能性もあります。さらに、OCR技術は新たなシナリオのニーズに適応し、製品の品質を向上させるために、継続的な最適化と改善が必要です。

総じて、OCR技術は国内ITイノベーション分野においてますます重要性を増し、その応用範囲は拡大・深化し続けるでしょう。メーカーは技術革新、アルゴリズムの最適化、運用促進を通じて製品の性能と競争力を向上させ、ユーザーにより良い体験とサービスを提供することができます。

結論として、OCR技術は重要な人工知能技術として広く応用されており、今後ますます重要になってくるでしょう。オープンソースのOCRフレームワークとツールを活用することで、開発者はより柔軟に高品質なOCRアプリケーションを構築し、より実用的な応用シナリオを実現することができます。

著者紹介

陳暁兵は51CTOのコミュニティエディターです。以前はアリババグループのセキュリティ部門に勤務し、現在は北京理工大学コンピュータサイエンステクノロジー学院の博士課程に在籍しています。北京サイバーセキュリティ部隊に10年間勤務し、情報システムプロジェクトにおける豊富な経験と18年以上のサイバーセキュリティの経験を誇ります。