2
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?

More than 3 years have passed since last update.

面倒なので自動化するよ!~画像自動読み込み失敗編~

Posted at

こんにちは!

今回、年始の目標立案のために価値観リストを活用したいが、質問項目が画像のばかりみつかり打ち込むのが吐くほど面倒...
なので、文字の抽出を自動で行たいとおもいます。

#####実行環境
mac
python3
環境anaconda

##画像を読み込む方法
・PIL(pillow)
・OpenCV
・scikit-image

一番使われるのがPLIらしい。
pillowはpythonで代表的な画像処理ライブラリで、画像のリサイズや描画を容易に行うことができます。

form PIL import Image,ImageFilter
im = Image.open('画像ファイル名')

##テキストに変換する方法
・画像をテキストに変換する技術をOCR(Optical Character Recoding)という。
・OCRはOCRエンジンというソフトを使い、画像データからテキストを抽出する。
・今回はオープンソースのTesseract OCRを使用

・また、PythonからOCRエンジンを使えるようにする代表的なライブラリがPyOCRです。

txt = tool.iamge_to_string(
    Image.open('画像ファイル名')
    lang=言語名,
    builder=pyocr.builders.TextBuilder()
)

##実際にpng画像をテキストに変換してみる

brew install tesseract

pyocrの日本語学習モデル取得のためにwgetもインストール

brew install wget

jpn.traineddataを取得

wget https://github.com/tesseract-ocr/tessdata/raw/4.00/jpn.traineddata
mv jpn.traineddata /usr/local/Cellar/tesseract/4.1.1/share/tessdata

※Pathが存在しない場合、以下コマンドでtesseractのpathとバージョン確認

which tessaract
tessaract -v

・コード実行

from PIL import Image
import sys

import pyocr
import pyocr.builders

tools = pyocr.get_available_tools()
if len(tools) == 0:
    print("No OCR tool found")
    sys.exit(1)

# The tools are returned in the recommended order of usage
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))
# Ex: Will use tool 'libtesseract'

langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = 'jpn'
print("Will use lang '%s'" % (lang))
# Ex: Will use lang 'fra'
# Note that languages are NOT sorted in any way. Please refer
# to the system locale settings for the default language
# to use.

txt = tool.image_to_string(
    Image.open('target.png'),
    lang=lang,
    builder=pyocr.builders.TextBuilder()
)
# txt is a Python string

print(txt)

変換元
target.png

変換結果

python3 Image-To-Text.py
Will use tool 'Tesseract (sh)'
Available languages: eng, jpn, osd, snum
Will use lang 'jpn'
       ⑧②        

⑧②            

          a  

I          M   

BAMN    

H            fW  

    Au  ⑧②  Aea

        D      

HR&⑦⑥④    a 

iams aaliitcdiits

           $   

EROEREfaiR ezRtd

 @    B   igu   o

   i   Ma

①⑧f          

       M   

GEiESimEreiirimeikid

IR    W        

       aREe

⑧②          

IIN   M  00      aa
    BA         

       0  i  k   
       h 

ERte itha taiii

Reaeimtiisaci

R    0  mmWk   

N   f       

IR  Mi+S     

       

⑧②0  A     

⑧②            B   

⑧②             

R  R   M 

   IM     

HA    z   

      E    

       W    

   R    $  

  M         m   

H&lcmtg  A    $  

⑧②0       0 

きびしいですね...
画像の画質もあるのでしょうか、それともライブラリの問題でしょうか、どちらにせよ読めません...

##(追記)Cloud Vision APIの方が断然精度がよいです...
Screenshot 2021-01-03 at 16.04.06.png

GoogleのAPI、さすが精度がよいですね。
時間を見つけて実装し直していきたいです。

##参考
https://aitanu.com/kachikan-list/
https://qiita.com/seigot/items/7d424000c8d35e5146e4
https://punhundon-lifeshift.com/tesseract_ocr
https://webkaru.net/dev/mac-wget-command-install/
https://cloud.google.com/vision/?hl=ja

2
0
2

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
2
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?