1
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 1 year has passed since last update.

はじめてのアドベントカレンダーAdvent Calendar 2023

Day 12

[Python] Vision AIをAPI経由で使えるようにするまで

Last updated at Posted at 2023-12-11

環境

Ubuntu 23.04
Python 3.11.4

venvで仮想環境を作って作業しています。
venvの使い方↓

はじめに

Vision AIとは、Google Cloud APIs に含まれる、画像処理に特化したAPI経由で使える事前学習済みのデータセットです。

上記サイトでAPIを試せるので、遊んでみるのをおすすめします。
結構面白いです。
image.png

手順

  • Google Cloudにログイン

最初は90日間無料で利用できます。

  • サービスアカウントの作成

タブメニューの「IAMと管理」画面から、「サービスアカウント」を押して作成します。

image.png

アカウントの詳細画面から、「鍵を追加」 > 「新しい鍵を作成」でプライベートキーを含むJSONファイルがダウンロードされます。

image.png

  • 環境変数の設定
    export GOOGLE_APPLICATION_CREDENTIALS= "JSONファイルの絶対パス"

  • ライブラリのインストール
    pip install google-cloud-vision

実践

サンプルとして画像からテキストを抽出するコードを書きます。
profile.png
これがこう↓

Web, CreativeCoding, ずとまよが好きです。 宮崎
test.py
import io
from google.cloud import vision

client=vision.ImageAnnotatorClient()
image_path='./assets/profile.png'
with io.open(image_path,'rb') as image_file:
    content=image_file.read()

image=vision.Image(content=content)
response=client.text_detection(image=image)

texts=response.text_annotations

for text in texts:
    print(text.description)

テキスト抽出以外にも、ロゴの特定や、顔の検出なども出来ます。

おわりに

image.png

何度もこいつが出てきましたが、再試行押したら通った

道中で得た知見

プライベートキーの入ったJSONファイルの管理

  • ローカルのディレクトリから参照する、バージョン管理システムに含めないなど色々ある
  • 今回は同じ階層に./config/secrets/を作って.gitignoreで管理している

環境変数周り

  • Unix系で環境変数の設定をするにはexportコマンドを使う。
    (Windowsだとset)
  • 環境変数一覧を見るにはprintenv
    特定の環境変数を参照するには(主にPATH)、printenv PATH
  • 環境変数を更新したいときは同じコマンドで上書きでいい
  • 環境変数を追加した後確認するには、printenv GOOGLE_APPLICATION_CREDENTIALS

参考

1
0
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
1
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?