36
30

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.

Google Cloud Vision APIで光学式文字認識

Posted at

Google Cloud Vision APIとは

Google Cloud Platformで提供されている画像解析のためのAPIでラベル検出や顔の検出などいろいろできる。
今回はその中で手書き画像から光学式文字認識(ORC)をする。

Google Cloud Vision API の APIキー取得

以下のサイトを参考に、
Google Cloud PlatformのAPIキーの取得をした。
Cloud Vision APIの使い方まとめ

参考文献

以下のページで公開されているコードを参考にプログラムを作成した。
・Python3でGoogle Cloud Vision APIを使い、ホットペッパーの画像をラベル検出している
【Python】GoogleCloudVisionAPIを使って、ホットペッパーの画像で肉々しいお店を判定できないか試してみた

作成したコード

以下に作成したコードを示す。
今回は文字認識したText部分のみがほしいため、そこだけを取り出す

ocr.py
import requests
import base64
import json

GOOGLE_CLOUD_VISION_API_URL = 'https://vision.googleapis.com/v1/images:annotate?key='
API_KEY = 'APIキー' # 取得したAPIキーを入力してください。

# APIを呼び、認識結果をjson型で返す
def request_cloud_vison_api(image_base64):
    api_url = GOOGLE_CLOUD_VISION_API_URL + API_KEY
    req_body = json.dumps({
        'requests': [{
            'image': {
                'content': image_base64.decode('utf-8') # jsonに変換するためにstring型に変換する
            },
            'features': [{
                'type': 'TEXT_DETECTION', # ここを変更することで分析内容を変更できる
                'maxResults': 10,
            }]
        }]
    })
    res = requests.post(api_url, data=req_body)
    return res.json()

# 画像読み込み
def img_to_base64(filepath):
    with open(filepath, 'rb') as img:
        img_byte = img.read()
    return base64.b64encode(img_byte)

# 文字認識させたい画像を./img.pngとする
img_base64 = img_to_base64('./img.png')
result = request_cloud_vison_api(img_base64)

#認識した文字の位置など、すべての情報を出力
#print("{}".format(json.dumps(result, indent=4)))

#認識した文字のみを出力
text_r = result["responses"][0]["fullTextAnnotation"]["text"]
print(text_r)

結果

今回は、簡単な文字画像をつかって認識させてみた。
結果として、文字の正しい認識は出来るが、謎のスペースが入ってしまった。
APIから返された結果は、非常に長いため省略するが、文字間隔が広いため「ABCD」,「E」,「F」に区切られて読み取れているらしい

img.png
ABCD E F
12345
あいうえお

また、Qiitaのロゴを読み込ませたところ、うまくいった!

img.png
Qiita

36
30
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
36
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?