解析エンジニアの自動化 blog

コツコツと自動化した方法を残す blog

罫線の無い 10 行 10 列の等間隔整列したサイズの大きい文字の画像を大きくリサイズして ocr してみる(Python + Tesseract)



こんにちは。
仕事の自動化にやりがいと達成感を感じるガッくんです。



この記事の目次



目的


リンクの記事で罫線の無い表の ocr で画像サイズを大きくすると文字認識率がどう変わるのかを調べてみました。
拡大前画像と拡大後画像で 1 桁の数字を除く誤認識数が 75 % 減少しました。

罫線の無い 10 行 10 列の等間隔整列した文字の画像を大きくリサイズして ocr してみる(Python + Tesseract) - 解析エンジニアの自動化 blog

今回はフォントサイズを大きくした罫線の無い等間隔整列する文字の表の画像サイズを 2 倍にするとどのくらいの正解率になりそうか確認します。



プログラム

ソースコード〜画像拡大〜


# -*- coding: utf-8 -*-
###############################################################################
# ライブラリインポート
###############################################################################
import os                       # os の情報を扱うライブラリ
from PIL import Image           # 画像処理ライブラリ
 
# カレントディレクトリを変更する
os.chdir("C:\\作業")
 
# 画像の読み込み
img = Image.open('C:\作業\ocr\ocr-test3.jpg')
 
# 画像のリサイズ
img_resize = img.resize((int(img.width*2), int(img.height*2)), Image.LANCZOS)
 
# 画像の保存
img_resize.save('C:\作業\ocr\ocr-test3-resize.jpg')


拡大した画像

リンクの記事で ocr した画像の ocr-test3.jpg を 2 倍の大きさにして、 ocr-test3-resize.jpg として保存します。

ocr するならやっぱり大きい文字の方が良い - 解析エンジニアの自動化 blog



図1 拡大した画像


ソースコードocr


# -*- coding: utf-8 -*-
###############################################################################
# ライブラリインポート
###############################################################################
import os                       # os の情報を扱うライブラリ
import pytesseract              # tesseract の python 用ライブラリ
from PIL import Image           # 画像処理ライブラリ
import matplotlib.pyplot as plt # データプロット用ライブラリ
import numpy as np              # データ分析用ライブラリ
 
# カレントディレクトリを変更する
os.chdir("C:\\作業")
 
# pytesseract に tesseract のパスを通す
pytesseract.tesseract_cmd='C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
 
# 画像の読み込み
img = Image.open('C:\作業\ocr-test3-resize.jpg')
 
# 画像を配列に変換
im_list = np.array(img)
 
# データプロットライブラリに貼り付け
plt.imshow(im_list)
 
# 表示
plt.show()
 
# テキスト抽出
txt = pytesseract.image_to_string(img)
 
# 抽出したテキストの出力
print()
print(txt)
print()



ocr の結果

図2 は ocr の結果をまとめた表です。

基本的に 1 桁の数字が読み取れていません。

また、『 3 ⇨ 8 』の誤認識数が増えました。

図2 ocr の結果まとめ表



コメント

1 桁の数字を認識しませんでした。
1 桁の数字を認識させる方法が課題です。

画像を拡大しても必ずしも誤認識しやすい文字の認識率は上がらないことがわかった。



以上