11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

de:code 2019 [AI06] OCR 案件で Azure Computer Vision と他社サービス含めて徹底検証してみた

Last updated at Posted at 2019-06-04

Microsoft de:code 2019に参加した内容を紹介します。

もし間違いなどあれば、ご指摘いただけますと助かります。

[AI06] OCR 案件で Azure Computer Vision と他社サービス含めて徹底検証してみた / 2019年5月29日

TL;DR(要約)

  • 図面管理システムとしての検索に利用。テキストはOCRとして、AI-OCRでキーワード抽出し、図面部分は、画像判別して特徴量を抽出した。
  • 「テキスト認識モデルを使用して、画像内のテキストらしきものを検出し」というのが、AI-OCRの特徴となる。
  • 認識精度、サービスのプライバシー問題を考慮し、AI-OCRとして、Tesseract-OCRを選択した。

リソース

セッションの目的

image.png

  • 適切なツールを選べるようになる

同じ図面を何度も検索したくない!

  • 業務上で図面を検索することがあるが、何度も同じ図面を検索したくない!
  • この仕様は、以前やったことがあるのではないか

という課題が頻出したため、解決策を探すことになった

図面管理システムを導入しよう!

image.png

ということで、図面管理システムを導入してみた。

検索の問題は解決しなかった。

image.png

確かに図面を管理することができるが、結局検索タグを設定するのが手作業であるため、人によってつけるタグがバラバラになる。

特に、特注品だとタグが属人的になってしまう。

タグ名がバラバラだと検索できなくて、図面検索の効率化にはつながらなかった。

AIで解決できないか?

そもそもどうやればよいのかということを検証していった。

AIをどのように適用すれば図面検索ができるのか。クラウドが提供しているAIの中に、都合がいい機能がそもそも存在するのか。

事例による説明

事例内容

課題

image.png

過去に、同じような部品使用を製造したかの検索に時間がかかり、見つからずに新規に図面作成している現状。
過去10年分の図面データを有効活用できていない。

アプローチ

Aを活用した類似図面検索システムを作ろう!

システム概要

image.png

  1. 一つの書類の中からテキストと図面部分を抽出する
  2. テキスト部分と図面部分について抜き出す
  3. テキストはOCRとして、AI-OCRでキーワード抽出
  4. 図面部分は、画像判別して特徴量を抽出
  5. 抜き出したキーワードと特徴量から、自動タグ付けする

自動タグづけすることで属人性が解除され、検索しやすいシステムとなる

AI-OCRとはなにか?

image.png

テキスト認識モデルを使用して、画像内のテキストらしきものを検出し、どの文字若しくは英数字に当てはまるかを判断した結果を文字データに変換するもの

この「テキスト認識モデルを使用して、画像内のテキストらしきものを検出し」というのが、AI-OCRの特徴となる。

OCRとAI-OCRは何がちがうのか

OCRにはテキスト認識モデルがないので、認識率が下がる傾向がある。

クラウドでのAI-OCR

Azureでは?

image.png

画像認識の中の「コンピューター画像(Azure Computer Vision)」

image.png

背景や顔なども認識できる。画像からの文字データの読み取りについては、25か国語に対応している。

Azure以外では?

Google

  • 言語自動判別があることが、一番の特徴

Tesseract-OCR

  • オープンソース。Apacheライセンスとなっている。
  • バージョン4.0からは、光学文字認識に加え、AIによる認識エンジンも追加された。
  • フォントの追加学習も可能(精度向上につながる)

機能による比較

image.png

  • 対応言語
    • Googleの対応言語は多い。56か国語
    • Tesseractは、161か国語
  • 費用面
    • AzureとGoogleは同等
    • Tesseractは、無償だが、構築、サーバー運用は自分で行う必要がある

検証

データ

データとしては、実際の図面を使用して行った。

検証結果

image.png

認識結果

  • Azureは、英数字しか読めなかった。1人負け...

考察

image.png

Azureは、なぜダメだったのか

  • 自動認識がない
    • ということは、英語+日本語の混在ができない
  • Azureは顧客データの2次利用を行わない
    • プライバシー面では利点となるが、学習が足りていないという面がある
    • Googleはおそらくデータの2次利用をしている可能性がある
  • 今回のフォントは縦横サイズを変更しているものだった
    • CADの特徴で定型のフォントを使用していないため、ご認識しやすいものだった。

GoogleとTesseractは、なぜよかったのか

image.png

Googleは

Googleは、2次利用をしているのではないか、ということは、業務上での使用は場合のよっては怖い点となる(明記されてはいないが)

AI-OCRについての結論

image.png

今回の図面が要保護情報であることを考えると、AzureかTesseract
認識精度としては、GoogleかTesseract

結論、Tesseractを採用する

画像の特徴量検出

画像の特徴量をどのようにして抽出するか

image.png

  • 対象の部品と検索の部品がどの程度近いか、ということを比較する
  • 例での文字間の線は、どことどこを比較しているのか、ということを表している
  • 類似点の距離から、画像の類似度を算出する

image.png

どのように実装するか

残念ながら、AzureやGoogleにはありません、ということで独自開発を行った。

画像の特徴良検出の実装方法

image.png

  1. OpenCVRのORB特徴量算出機能を使用して、ORB特徴量を算出。ORBを選択した理由は、は処理速度重視
  2. 算出した特徴量を比較する。この値が低いと似ている、ということになる。
  3. クラスタリングでどのグループに属するのかを算出する

image.png

AI-OCR実用化のためのポイント

image.png

サービスがあれば積極的に採用する

スピード感重視ということが大事である。

投げるデータ条件を変えて試す

固定の条件で試すのではなく、サービスに渡すデータ(条件)を変えて格納して試したほうが効率的である

サービスがなければ独自開発(OSS推奨)

どうしてもサービスがない場合に限り、独自開発する。

その場合でも、ライセンスには注意したうえで、OSSの利用を考慮したほうが良い。完全な独自開発ということを考えてもよいが、ビジネスではスピード感が大事

独自開発は目的に合ったチューニング

認識精度を上げるために

image.png

今回は、速度もだが、認識精度を重視している。

前処理を行おう

事前にノイズ除去を行うことで、紙スキャン時の汚れを除く、ということが認識精度向上につながる。実際のデータに応じた色調補正処理が必要になる

フォント学習をする

今回採用したTesseractが追加フォント学習が可能であった。JIS第一水準の文字一覧を与えることで、認識率が82%まで向上した。

image.png

後処理を行う

認識結果について、ルールベースの変換を実施している。
つまり、認識結果が明らかに間違っているものについては、AIではないルールベースでの変換による処理が、有効である。AIのみに頼らないことが大事。

  • ルールベースに変換
  • 辞書による補正処理

最終的な構成

image.png

最終的には、各種Azureのサービス(Azure Virtual Machine、Cosmos DB、Web AppsAzure Search)を使用して図面検索を行うシステムを構築している。

11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?