Google Cloud Platform APIを使いOCR
Google Cloud Platformにアクセス
「無料トライアル」⇢Googleのアカウントでログイン⇢情報を入力⇢「同意して続行」⇢情報の入力
(このときにクレジット情報を求められる。住所や名前は適当に現存しないものでも認証される。しかし、クレジット情報はきちんと入力しないと次に進めない)
やむなくクレジット情報入力し登録。従量課金制と書いているのでビクビクしながらも登録
⇢「無料トライアルを開始」
上の検索枠にてCloud Vision APIとCloud Natural Language を検索
↓
↓
「有効にする」を選択 Natural Language APIも。
APIキーを取得
APIとサービス→認証情報
→認証情報を作成→APIキーを選択
↓
↓
VisionAPI=画像内容を理解=画像分類、顔認識、テキストの検出Natural Language API=感情分析、カテゴリごとに分類し意味づけ
テキストエディタで下記コードを実装
↓
import base64
import requests
import json
def ocr(image_file, api_key=""):
with open(image_file, 'rb') as image:
base64_image = base64.b64encode(image.read()).decode()
#<ocr関数内部で、受け取った画像ファイルを読み込み、base64エンコードを行っている>
url = 'https://vision.googleapis.com/v1/images:annotate?key={}'.format(api_key)
header = {'Content-Type': 'application/json'}
body = {
'requests': [{
'image': {
'content': base64_image,
},
'features': [{
'type': 'TEXT_DETECTION',
'maxResults': 1,
}]
}]
}
#変数body=パラメータを設定。'type'⇢TEXT_DETECTIONに。OCR(光学文字認識)以外にも、顔検出やラベル検出、不適切コンテンツ検出など可能。
response = requests.post(url, headers=header, json=body).json()
# jsonで吐き出し response
# fw = open('vision_response.json','w')
# json.dump(response,fw,indent=4) #JSON形式にエンコード
#APIキーとヘッダ情報を付与して、POSTでAPIを実行(リクエスト)
# print("responseの値は?" + str(response))
text = response['responses'][0]['textAnnotations'][0]['description'] if len(response['responses'][0]) > 0 else ''
print("textの値は?" + str(text))
return text
# imgの画像ファイルのあるPATH↓
img = "/Users/Desktop/ocr/test.png"
key = "ここにGoogle Cloud PlatformのKeyを貼り付け"
data = ocr(img, key)
print(data)
今回は下記画像を 「img」と命名
コマンドにて img画像と上記コードを記載したテキストがあるファイルに移動
python テキスト名(ここではAPIS)で実行
上手く読み取れた模様
時々同じような手順でもPC開きっぱなしだと反応しないことがあるので再起動したところ出来た