質問するログイン新規登録
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1838閲覧

GoogleのCloud Vision APIが遅い

bktclvy

総合スコア63

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/07/17 02:01

編集2022/07/17 06:47

0

0

前提

GoogleのVision APIを試用しているのですが、速度が遅いです。
チュートリアルのコードをそのまま実行しているだけなのに、30秒弱かかります。
Googleがブラウザ上で提供しているサンプルでは一瞬で解析してくれるので複雑なタスクというわけもなさそうです。

原因や、パフォーマンスの向上につながる施策が何かあれば教えていただきたいです。

参照先

こちらに掲載されているサンプルコードを実行しました。
https://cloud.google.com/vision/docs/object-localizer

該当のソースコード

サンプルコードと同じ画像を使用しています。
時間測定のためのコードを追加していますが、それ以外は変えていません。

main.py

1import time 2 3def localize_objects(path): 4 start = time.time() #時間計測 5 """Localize objects in the local image. 6 7 Args: 8 path: The path to the local file. 9 """ 10 from google.cloud import vision 11 client = vision.ImageAnnotatorClient() 12 13 with open(path, 'rb') as image_file: 14 content = image_file.read() 15 16 image = vision.Image(content=content) 17 18 start2 = time.time() #時間計測 19 objects = client.object_localization( 20 image=image).localized_object_annotations 21 end2 = time.time() #時間計測 22 23 print('Number of objects found: {}'.format(len(objects))) 24 for object_ in objects: 25 print('\n{} (confidence: {})'.format(object_.name, object_.score)) 26 print('Normalized bounding polygon vertices: ') 27 for vertex in object_.bounding_poly.normalized_vertices: 28 print(' - ({}, {})'.format(vertex.x, vertex.y)) 29 30 end = time.time() #時間計測 31 print("総実行時間:{}".format(end - start)) 32 print("annotationsにかかる時間:{}".format(end2 - start2)) 33 34localize_objects("./resources/bicycle_original.jpeg")

実行結果

Number of objects found: 4 Bicycle wheel (confidence: 0.9344853758811951) Normalized bounding polygon vertices: - (0.31457117199897766, 0.7848830223083496) - (0.44048216938972473, 0.7848830223083496) - (0.44048216938972473, 0.9704981446266174) - (0.31457117199897766, 0.9704981446266174) Bicycle wheel (confidence: 0.9330147504806519) Normalized bounding polygon vertices: - (0.5049288272857666, 0.7552310824394226) - (0.627302348613739, 0.7552310824394226) - (0.627302348613739, 0.944308340549469) - (0.5049288272857666, 0.944308340549469) Bicycle (confidence: 0.9041756391525269) Normalized bounding polygon vertices: - (0.31727585196495056, 0.6597068905830383) - (0.6291733980178833, 0.6597068905830383) - (0.6291733980178833, 0.9677099585533142) - (0.31727585196495056, 0.9677099585533142) Picture frame (confidence: 0.6569825410842896) Normalized bounding polygon vertices: - (0.786456823348999, 0.16705626249313354) - (0.9639955163002014, 0.16705626249313354) - (0.9639955163002014, 0.3188837766647339) - (0.786456823348999, 0.3188837766647339) 総実行時間:25.37931489944458 annotationsにかかる時間:25.37454390525818

見ていただいてわかる通り、下記の記述部分でかなり時間がかかっているようです。

objects = client.object_localization( image=image).localized_object_annotations

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2022/07/17 02:17

利用画像はサンプルと同じモノ(bicycle_example.png)か また、コードのどの行で時間がかかっているかをprint文を追加するなどで調べて提示すると回答得られやすくなるかと思います。
bktclvy

2022/07/17 06:45

ありがとうございます。 ご助言いただきました通り、サンプルと同じ画像を使用し、時間の測定のためのコードも追加いたしました。
guest

回答1

0

自己解決

その後ローカル開発環境において0.3秒ほどでレスポンスされるようになったり、再び30秒ほどかかったりを繰り返しておりました。
ただ、本番環境では常に素早くレスポンスされていたので、原因不明ですがローカル開発環境の問題だったようです。
ありがとございました。

投稿2022/07/17 14:40

bktclvy

総合スコア63

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問