5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Textractで色の実験をしてみた

Last updated at Posted at 2023-12-01

はじめに

pythonで画像から文字を抽出する処理をしていたのですが、色や複数の文字の大きさによって読み取れないものがありました。
そこで、Amazon Textractを使用して実験してみることにしました。

サンプル画像は楽天証券の登録銘柄です。

Pythonでの結果

サンプルコード

※画像ファイルはコードと同じディレクトリに置いています

brew install tesseract
pip install pillow pytesseract
sample_code
from PIL import Image
import pytesseract

# 画像から文字を抽出
text = pytesseract.image_to_string(Image.open('YOUR_IMAGE.png'), lang='jpn')

# 抽出された文字列を表示
print(text)

実験結果

  • 黒背景
    • 一応全文取得できる
    • 日本語は怪しい
    • 還記0のように数字が変換されている箇所もある
  • 白背景
    • 数字が銘柄コードしか取れていない
    • 日本語は怪しい
  • 白黒
    • 一応全文取得できている
    • 日本語は怪しい
      • を = のように変換したり、%が漢字になってしまっている箇所もある

サンプル画像1(黒背景)

stock_b_color.png

出力結果

output_b.png

サンプル画像2(白背景)

stock_w_color.png

出力結果

スクリーンショット 2023-11-24 1.18.21.png

サンプル画像3(白黒画像)

stock_color_bw.png

出力結果

スクリーンショット 2023-11-24 1.20.00.png
スクリーンショット 2023-11-24 1.21.13.png

Textractでの結果

設定など

  • Amazon Textractは日本リージョン非対応のようなので、us-east-1で実施
  • サンプルドキュメントは「フォーム1005」を選択
  • データ出力は「レイアウト」「フォーム」「テーブル」の3つを選択

実験結果

  • 黒背景
    • 一応全文取得できる
    • 日本語非対応なので、日本語がTERYなどの英語になっている部分がある
    • フォームで読み込めていない部分がある
    • テーブルの分割も不自然
  • 白背景
    • 一応全文取得できる
    • 日本語が英語になったりはしていない
    • 漢字の隣にあるPなどを読み取れていないものもある
    • フォームで読み込めていない部分が多々ある
    • テーブルは黒背景より規則正しいが、完璧ではない
  • 白黒画像
    • 一応全文取得できる
    • 日本語が英語になったりはしていない
    • 漢字の隣にあるPなどを読み取れていないものもある
    • フォームとして取得できていない箇所が多い
    • テーブルは綺麗に抽出できている(文字の読み取りは完璧ではない)

サンプル画像1(黒背景)

スクリーンショット 2023-11-24 1.47.51.png
スクリーンショット 2023-11-24 1.50.12.png
スクリーンショット 2023-11-24 1.51.02.png

サンプル画像2(白背景)

スクリーンショット 2023-11-24 23.24.22.png
スクリーンショット 2023-11-24 23.26.21.png
スクリーンショット 2023-11-24 23.27.26.png

サンプル画像3(白黒画像)

スクリーンショット 2023-11-24 23.30.45.png
スクリーンショット 2023-11-24 23.31.36.png
スクリーンショット 2023-11-24 23.32.10.png

結果

Python、Textractそれぞれに長所と短所がありました。
また、AIを使ったからといって完全に色や形が共存する画像から、テキストを完璧に抽出できるわけではないということがわかりました。。

今回の実験だと、白背景をpythonで取得するのが、文字列だけであれば1番精度が高そうです。

Pythonのライブラリをもっと駆使したり、Textractのドキュメントは種類が7つあったので、これらを横断的に実験してみたら、もう少し精度の高い抽出ができるかもしれません。

5
0
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
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?