DUICUO

17の超実用的なオープンソースOCRプロジェクト

みなさんこんにちは、エチャです。

光学文字認識(OCR)とは、画像ファイル内のテキストデータを分析・認識し、テキストとレイアウト情報を取得するプロセスを指します。つまり、画像内のテキストを認識し、それをテキストとして返すことを意味します。

光学文字認識(OCR)技術の応用


OCR技術の特徴

効率性の向上: OCR テクノロジーにより、従来の手動方法よりもはるかに高速に情報を入力できます。

コストの削減: 手作業を機械に置き換えることで人件費を節約できます。

高い適用性: OCR テクノロジーは、さまざまなシーンや言語を認識できるほか、画像からテキストを抽出してそこに含まれる意味情報を分析できるため、機械が画像を理解するための高度な意味的手がかりを提供できます。

OCR技術の特徴

OCRの適用シナリオ

  • カードと文書の認識:ID カードの認識、銀行カードの認識、運転免許証の認識、車両登録証明書の認識、香港とマカオの旅行許可証の認識、パスポートの認識、戸籍簿の認識、営業許可証の認識。
  • 文書認識:付加価値税請求書認識、小切手認識、銀行手形認識、銀行文書認識、営業許可証認識、物流および速達配送認識。
  • テキスト情報構造化ビデオ認識:主に字幕認識とテキスト追跡が含まれます。
  • その他の認識方法には、QR コード認識、1D バーコード認識、ナンバープレート認識、数式認識、物理および化学記号認識、音楽記号認識、エンジニアリング図面認識、フローチャート認識、履歴文書認識、手書き入力認識などがあります。
  • 上記以外にも、自然シーンでのテキスト認識、メニュー認識、バナーの検出と認識、スタンプの検出と認識、広告テキストや画像の認識など、レビューに関連したビジネスアプリケーションもあります。

OCRの適用シナリオ

この機会に、17個の非常に実用的なオープンソースOCRプロジェクトを皆様にご紹介したいと思います。これらのプロジェクトは、人物や車両など、9つの典型的なOCR認識シナリオを含む、様々なアプリケーションシナリオをカバーしています。CPUで最大3ミリ秒という高速認識速度を誇り、わずか1行のコードで反復学習が可能です。これらのプロジェクトが皆様のOCRへの理解を深め、新たな発見となることを願っています。そして、フォロワーの皆様が日々夢を実現できるよう、健康と活力に満ち溢れた日々をお祈りしています。

全文概要

  1. yx-image-recognition - 画像認識管理システム
  2. EasyPR は、中国のオープンソースのナンバープレート認識システムです。
  3. meihu-meiyan - Meihuライブストリーミングビューティーフィルターシステム
  4. dface は、オープンソースのディープラーニング ベースの顔検出および認識システムです。
  5. HyperLPR - 高性能な中国ナンバープレート認識管理システム
  6. idCardCv - 文書認識管理システム
  7. 検証デコーダー - CAPTCHA認識用のCNNライブラリ
  8. 薬の識別 - 伝統中国医学の画像認識システム
  9. face-search - 顔検索およびデータ収集管理システム
  10. PaddleDetection - 物体検出管理システム
  11. red5-rtmp-push - SkyNet顔認識システム
  12. open-anpr - 14 種類の中国のナンバープレートをサポートするインテリジェントなナンバープレート認識管理システム。
  13. 無料のオフラインOCR - オフライン中国語テキスト検出および認識SDK
  14. 車 - 車両の検出とカウント、ナンバープレートの位置とナンバープレートの認識の融合技術
  15. document-ocr - 比較的完成度の高い文書分析および認識プロジェクト
  16. gradio_yolov5_det - 汎用物体検出システム
  17. mobile-lpr は、モバイル デバイス向けのほぼ商用グレードのナンバー プレート認識ライブラリです。

yx-image-recognition - 画像認識管理システム

gitee: https://gitee.com/admin_yu/yx-image-recognition

導入

Spring Boot、Maven、OpenCVを用いて実装された画像ディープラーニングのデモプロジェクトです。ナンバープレート認識、顔認識、文書認識といった機能に加え、サンプル処理、モデル学習、画像処理、物体検出、物体認識といった技術を網羅しています。

特徴

  • 青、緑、黄色のナンバープレート検出とナンバープレート番号認識
  • Java実装を使用してナンバープレートを抽出するための一般的なオンラインアルゴリズム
  • ナンバープレート抽出のための HSV カラーセグメンテーションアルゴリズム(Java で実装)
  • Harrcascade特徴認識アルゴリズムのJava実装
  • SVM アルゴリズムに基づくナンバープレート検出トレーニングの Java 実装。
  • ANNOVA アルゴリズムに基づくナンバープレート番号認識トレーニングの Java 実装。
  • 次に顔検出が実装され、その後顔認識が実装されます。
  • 画像ツール:現在、HSVカラーセグメンテーションが実装されています。アルゴリズムの最適化を支援するために、今後さらに便利な画像処理ツールが追加される予定です。
  • IDカードのテキスト認識

システムのスクリーンショット

EasyPR は、中国のオープンソースのナンバープレート認識システムです。

ギティー: https://gitee.com/liuruoze/EasyPR

導入

EasyPRはオープンソースの中国ナンバープレート認識システムです。その目標は、制約のない状況でシンプルかつ効率的で正確なナンバープレート認識ライブラリとなることです。

他のナンバープレート認識システムと比較して、EasyPR には次の機能があります。

  • オープンソースライブラリOpenCVをベースにしています。つまり、完全なソースコードを入手し、OpenCVがサポートするすべてのプラットフォームに移植することができます。
  • 中国語の文字を認識できます。例えば、「苏EUK722」というナンバープレートの画像に対しては、std:string型の結果「苏EUK722」を正確に出力できます。
  • 認識率が高く、画像が鮮明な場合、ナンバープレート検出と文字認識の精度は80%以上を達成できます。

次のような元の画像があり、中央のナンバープレートの文字と色を識別する必要があるとします。

EasyPR のナンバープレート検出 (PlateDetect) の最初のステップの後、元の画像でナンバープレートのみを含むパッチを取得しました。

次に、画像タイルに対してOCR処理(EasyPRの「文字認識」と呼ばれる)を実行します。これにより、ナンバープレートの色と文字を含む文字列が得られます。

青色ナンバープレート:Su EUK722

スクリーンショット:

meihu-meiyan - Meihuライブストリーミングビューティーフィルターシステム

Gitee: https://gitee.com/MeiHuSDK/meihu-meiyan

導入

Meihu Beauty SDKは、ライブストリーミングプラットフォームでの美容効果の実現や、ショートビデオシステムへの内蔵美容効果など、様々なオーディオおよびビデオソフトウェアビジネスシーンにおけるお客様の美容ニーズを満たすサードパーティ製美容APIです。顔認識と顔キーポイント技術を基盤とし、プロ仕様のリアルタイム美容、大きな目と小顔、美容フィルター、ダイナミックステッカー、美白・美肌加工、顔整形、キュートフェイスなどの特殊効果を実現するインターフェースを提供し、多機能な動画美容ソフトウェアの開発を目指しています。

スクリーンショット

dface は、オープンソースのディープラーニング ベースの顔検出および認識システムです。

ギティー: https://gitee.com/kuaikuaikim/dface

導入

マルチタスク畳み込みネットワーク (MTCNN) と Center-Loss に基づく、リアルタイムの複数人物の顔検出および顔認識システム。

DFaceはオープンソースのディープラーニング顔検出・認識システムです。すべての機能はPyTorchフレームワークを使用して開発されています。PyTorchはFacebookが開発したディープラーニングフレームワークで、自動微分化や動的グラフ構築といった興味深い高度な機能を備えています。DFaceはこれらの利点を自然に継承しており、トレーニングプロセスはよりシンプルで便利になり、コードはより明確で理解しやすくなっています。DFaceはCUDAを利用してGPUアクセラレーションをサポートできます。

HyperLPR - 高性能な中国ナンバープレート認識管理システム

gitee: https://gitee.com/zeusees/HyperLPR

導入

HyperLRPは、ディープラーニングをベースとしたオープンソースの高性能な中国ナンバープレート認識ライブラリです。PHP、C/C++、Pythonの各言語と、Windows/Mac/Linux/Android/iOSプラットフォームをサポートしています。

特性

  • 高速720p解像度、シングルコアIntel 2.2GHz CPU(MaBook Pro 2015)、平均認識時間100ms未満
  • エンドツーエンドのナンバープレート認識により、文字の分割が不要になります。
  • 認識率が高く、チェックポイント シナリオでの精度は約 95% ~ 97% です。
  • 軽量で、コードの合計サイズは 1,000 行以下です。

識別可能なナンバープレートの種類とサポートが必要なナンバープレートの種類

  • 単列の青い標識
  • イエローカード1枚
  • 新エネルギー車のナンバープレート
  • 白い警察のナンバープレート
  • 大使館/香港およびマカオのナンバープレート
  • コーチのナンバープレート
  • 武装警察車両のナンバープレート
  • 民間航空ナンバープレート
  • ダブルイエローカード
  • 二重武装警察
  • 二重軍用ナンバープレート
  • 二重農業車両ナンバープレート
  • 二層式のパーソナライズされたナンバープレート

スクリーンショット

idCardCv - 文書認識管理システム

ギティー: https://gitee.com/endlesshh/idCardCv

導入

idCardCvは、WebベースのIDカード認識サーバーに適したIDカード番号認識ツールです。フロントエンドでIDカード番号を特定し、バックエンドで処理・認識を行い、約96%の精度で認識します。また、前面に他のテキストが印刷されている自治区のIDカードも認識可能です。

検証デコーダー - CAPTCHA認識用のCNNライブラリ

Gitee: https://gitee.com/kdldbq/verification-decoder

導入

4桁のCAPTCHAは、CNN(畳み込みニューラルネットワーク)を用いて学習されました。文字の組み合わせは62種類(0-9a-zA-Z)ありますが、予測は大文字と小文字を区別しないため、結果として36種類の組み合わせが考えられます。CAPTCHAは、複数のフォント、色、干渉線を用いてランダムに生成されます。

TensorFlow を使用して、CNN を 600,000 回の反復でトレーニングし、4 文字の CAPTCHA を認識して、90.02% の精度を達成しました。

結果

以下は、100 万個のトレーニング CAPTCHA を使用したトレーニングと、トレーニングでは使用されなかった 20 万個のテスト CAPTCHA を使用したテストから得られた結果です。

ほとんどのCAPTCHAシステムは、類似した文字(例:i、l、o、1、0など)を削除します。より包括的なテストを行うため、これらの認識困難な文字も追加することにしました。ご覧のとおり、これらの判別困難な文字が存在する場合、人間でさえ正しく予測するのは困難です(下の画像をご覧ください。1行目は予測値、2行目は実際の値を示しています)。

600,000回のトレーニング反復後の結果:

薬の識別 - 伝統中国医学の画像認識システム

ギティー: https://gitee.com/xiaohaoo/medicine-identification

導入

伝統中医学(TCM)識別システムは、主にアプリベースの写真アップロード方式を採用しています。畳み込みニューラルネットワーク(CNN)を用いて画像認識を行うことで、高い認識効率と精度を実現しています。アプリの機能には、写真認識、TCMに関するQ&A(有料相談)、検索クエリ、TCMの薬効・効能の閲覧、インテリジェントな処方推奨(開発中)などが含まれますが、これらに限定されるものではありません。このシステムは、アプリとサーバーの両方で構成されています。

システムのスクリーンショット

face-search - 顔検索およびデータ収集管理システム

gitee: https://gitee.com/open-visual/face-search

導入

このプロジェクトは、Alibaba CloudのVisual Intelligence Open PlatformにおけるM:N顔検索のオープンソース代替手段です。プロジェクトで使用されるモデルはすべてオープンソースです。Opensearch、Milvus、Proximaのベクターリポジトリをサポートし、高度なカスタマイズ機能を備えています。

システムアーキテクチャ図

スクリーンショット

PaddleDetection - 物体検出管理システム

gitee: https://gitee.com/paddlepaddle/PaddleDetection

導入

PaddleDetectionは、PaddlePaddleをベースとした物体検出のためのエンドツーエンド開発キットです。豊富なモデルコンポーネントとテストベンチマークを提供しながら、エンドツーエンドの産業用アプリケーションに重点を置いています。業界レベルの特性モデルとツールを作成し、産業用アプリケーションの例を構築することで、開発者はデータ準備、モデル選択、モデルトレーニング、モデル展開というプロセス全体をシームレスに統合し、迅速なアプリケーション展開を実現できます。

スクリーンショット

red5-rtmp-push - SkyNet顔認識システム

gitee: https://gitee.com/endlesshh/red5-rtmp-push

導入

SkyNet 顔認識システムは、ビデオ ストリームを取得し、顔認識を実行し、データをストリーミング メディア サーバーにプッシュしてリアルタイムで表示します。

システム全体は 2 つのプロジェクトで構成されています。

  • red5_hls ストリーミング メディア サーバーは、red5 サーバーの Spring Boot 実装であり、HLS、RTSP、およびその他のストリーミング メディアの再生をサポートします。
  • red5-rtmp-push はビデオ ストリームを受け入れ、サーバーにプッシュします。

システムのスクリーンショット

open-anpr - 14 種類の中国のナンバープレートをサポートするインテリジェントなナンバープレート認識管理システム。

gitee: https://gitee.com/open-visual/open-anpr

最も包括的なナンバープレート認識

  • 最も包括的なナンバープレート認識アルゴリズム。14 種類の中国のナンバープレートをサポートします。
  • このプロジェクトは純粋な Java を使用して開発されており、Python の使用に伴うサービスの不安定性が排除されています。
  • 皆様からのコードへの貢献を歓迎いたします。プロジェクトが素晴らしいと思ったら、ぜひスターを付けてください。

無料のオフラインOCR - オフライン中国語テキスト検出および認識SDK

ギティー: https://gitee.com/microic/tr

これは、スキャンされた文書をオフラインでテキスト認識するためのSDKです。コアコードはすべてC++で開発されており、Pythonインターフェースも提供されています。

車 - 車両の検出とカウント、ナンバープレートの位置とナンバープレートの認識の融合技術

ギティー: https://gitee.com/jiang_maowei/car

導入

この実装は、PyTorch ディープラーニング フレームワークに基づいており、テンプレート検出には YOLOv4、ナンバープレート検出には YOLOv5、ナンバープレート検出には LPRNet というオープンソース モデルを使用します。

Windows 10 システムをベースに、Anaconda を使用して Python 環境を構成し、Anaconda から VS Code をダウンロードしてプロジェクトを編集します。

スクリーンショット

document-ocr - 比較的完成度の高い文書分析および認識プロジェクト

gitee: https://gitee.com/rockyzheng/document-ocr

導入

比較的完全なドキュメント分析および認識プロジェクトには、次の 5 つの部分が含まれます。

  1. 文書分析データ、
  2. 識別データ合成ツール
  3. 文書レイアウト分析モデル
  4. テキスト行認識モデル、
  5. 単一文字認識モデル

データ

このデータは、インターネットから収集した上場企業の年次報告書のPDFファイルを解析して生成されたもので、画像とテキストの位置情報が含まれている。

スクリーンショット

gradio_yolov5_det - 汎用物体検出システム

gitee: https://gitee.com/CV_Lab/gradio_yolov5_det

導入

これは、カスタマイズ可能な検出モデル、便利なデモンストレーション、簡単なインストールを特徴とする、Grado をベースにした YOLOv5 汎用オブジェクト検出デモンストレーション システムです。

フローチャート

スクリーンショット

mobile-lpr は、モバイル デバイス向けのほぼ商用グレードのナンバー プレート認識ライブラリです。

ギティー: https://gitee.com/damone/mobile-lpr

導入

Mobile-LPRは、モバイルデバイス向けの商用グレードに近いナンバープレート認識ライブラリです。推論バックエンドとしてNCNN、アルゴリズムコアとしてDNNを採用しています。複数のナンバープレート検出アルゴリズム、ナンバープレート認識、色認識をサポートしています。

特徴

  • 超軽量で、コアライブラリは NCNN のみに依存し、モデルの量子化をサポートします。
  • SSD、MTCNN、LFFD などのオブジェクト検出アルゴリズムを含む複数の検出方法がサポートされています。
  • 高精度: LFFD オブジェクト検出では、CCPD 検出で 98.9%、ナンバープレート認識で 99.95% の AP を達成し、全体的な認識率は 99% を超えます。
  • 使いやすく、ナンバープレートの認識はわずか 10 行のコードで完了します。
  • 簡単に拡張でき、さまざまな検出アルゴリズムをすぐに組み込むことができます。

フローチャート

スクリーンショット

やっと

たった一行のコードが、次なる素晴らしい製品を生み出す。イノベーションが新たな技術時代を切り開く。たった一つの最初の願望が、無数の人々の人生に影響を与える。大企業で働いている人も、小さなチームで奮闘している人も、ベテランプログラマーでも、駆け出しの新人でも、誰もが書いたコードには世界を変える力がある。