【python】GoogleCloudVisionをpythonで使う

プログラミング

今回はpythonでGoogle Cloud Visionを使いたいと思います。

GoogleCloudVisionとはAIを使って簡単に画像認識ができるサービスのことです。

前回「文字起こしBOT」を作りましたが、そのときに使用したのもこの技術です。

そのときにはJavaScriptで動かしていたのですが、今回はpythonで挑戦したいと思います。

スポンサーリンク

必要なもの

  • jupyternotebook
  • Googleアカウント

を用意してください。

準備

ではまずGoogleCloudVisionのAPIを取得していきたいと思います。

【期間限定で無料公開!】独学プログラマーのためのAIアプリ開発がわかる本|Dai|note
この度、noteのおかげでKADOKAWAさんからの出版が決定いたしましたので、書籍の半分を公開したいと思います! 独学プログラマーのためのAIアプリ開発がわかる本amzn.to Amazon.co.jpで購入する 本の価格は2700円となっています。また、こちらのnoteよりも書籍で購入してい...

こちらの記事の「SECTION6-3 Google Cloud Vision APIにアプリを登録しよう」を参考に(結構下の方)APIを取得してみましょう。

実装

では実装していきましょう。コードはこちらです。

 
import requests
import base64
import json


GOOGLE_CLOUD_VISION_API_URL = 'https://vision.googleapis.com/v1/images:annotate?key='
API_KEY = 'your-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_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_KEY = 'your-api'
のところを自分で取得したAPIに変更してください。

さらに、

img_base64 = img_to_base64('img.png')
の括弧の中を自分が光学文字認識させたい写真に置き換えてください。

今回はこの写真を認識させてみました。

結果は

Python チュートリアル
Python は強力で、学びやすいプログラミング言語です。効率的な高レベルデータ構造と、シンプルで効果的な
オブジェクト指向プログラミング機構を備えています。Python は、洗練された文法·動的なデー夕型付け·イ
ンタープリタであることなどから、スクリプティングや高速アプリケーション開発(Rapid Application
Development: RAD)に理想的なフプログラミング言語となっています。
Python Web サイト(https://www.python.org)は、Python インタープリタと標準ライブラリのソースコードと、
主要プラットフォームごとにコンパイル済みのバイナリファイルを無料で配布しています。また、Python Web
サイトには、無料のサードパーティモジュールやプログラム、ツール、ドキュメントなども紹介しています。
Python インタプリタは、簡単に CIC++ 言語などで実装された関数やデータ型を組み込み、拡張できます。ま
た、アプリケーションのカスタマイズを行う、拡張言語としても適しています。
このチュートリアルは、Python言語の基本的な概念と機能を、形式ばらずに紹介します。読むだけではなく、
Pythonインタープリタで実際にサンプルを実行すると理解が深まりますが、サンプルはそれぞれ独立していま
すので、ただ読むだけでも良いでしょう。
標準オブジェクトやモジュールの詳細は、Python 標準ライブラリを参照してください。また、正式な言語定
義は、Python 言語リファレンスにあります。C言語や C++ 言語で拡張モジュールを書くなら、Python イン
タプリタの拡張と埋め込み や Python/C API リファレンスマニュアルを参照してください。Python の解説書も
販売されています。

ほぼ完ぺきでした!!素晴らしい!!

参考

Google Cloud Vision APIで光学式文字認識 - Qiita
Google Cloud Vision APIとは Google Cloud Platformで提供されている画像解析のためのAPIでラベル検出や顔の検出などいろいろできる。 今回はその中で手書き画像から光学式文字認識(ORC)...
Cloud Vision APIの使い方まとめ
Googleが提供する、開発者向けの画像認識サービス、Cloud Vision APIの使い方を説明します。
【期間限定で無料公開!】独学プログラマーのためのAIアプリ開発がわかる本|Dai|note
この度、noteのおかげでKADOKAWAさんからの出版が決定いたしましたので、書籍の半分を公開したいと思います! 独学プログラマーのためのAIアプリ開発がわかる本amzn.to Amazon.co.jpで購入する 本の価格は2700円となっています。また、こちらのnoteよりも書籍で購入してい...
タイトルとURLをコピーしました