3

API キーを追加する場所、または Google クラウド ビジョン コードの Google 資格情報ファイルの場所を見つける必要がある場所が見つからないようです。

    import argparse
    import base64
    import httplib2
    import validators
    import requests

    from apiclient.discovery import build
    from oauth2client.client import GoogleCredentials


    def main(photo_file):
      '''Run a label request on a single image'''

      API_DISCOVERY_FILE = 'https://vision.googleapis.com/$discovery/rest?version=v1'
      http = httplib2.Http()

      credentials = GoogleCredentials.get_application_default().create_scoped(
          ['https://www.googleapis.com/auth/cloud-platform'])
      credentials.authorize(http)

      service = build('vision', 'v1', http, discoveryServiceUrl=API_DISCOVERY_FILE)

    if __name__ == '__main__':
      parser = argparse.ArgumentParser()
      parser.add_argument(
        'image_file', help='The image you\'d like to label.')
      args = parser.parse_args()
      main(args.image_file)

    photo_file = "image_of_bottle.jpg"
    main(photo_file)

APIキーを追加したり、資格情報ファイルを見つけたりできる場所を知っている人はいますか?

編集: Eray Balkanli が推奨する変更を追加し、通話に画像ファイルを追加しました。正しくやったかどうかわかりません:

import argparse
import base64
import httplib2
import validators
import requests

from apiclient.discovery import build
from oauth2client.client import GoogleCredentials


def main(photo_file,developerkey):
  '''Run a label request on a single image'''

  API_DISCOVERY_FILE = 'https://vision.googleapis.com/$discovery/rest?version=v1'
  http = httplib2.Http()

  credentials = GoogleCredentials.get_application_default().create_scoped(
      ['https://www.googleapis.com/auth/cloud-platform'])
  credentials.authorize(http)

  service = build('vision', 'v1', http, discoveryServiceUrl=API_DISCOVERY_FILE,developerkey=INSERT API KEY)

if __name__ == '__main__':
  parser = argparse.ArgumentParser()
  parser.add_argument(
    'image_file', help='The image you\'d like to label.')
  args = parser.parse_args()
  main(args.image_file)

photo_file = "image_file.jpg"
main(photo_file,developerkey)

次のエラーを受け取りました。

usage: googleimagetest_v.4.py [-h] image_file
googleimagetest_v.4.py: error: too few arguments

このエラーを解決する方法を知っている人はいますか?

4

1 に答える 1

2

API を認証するための Google Vision API ドキュメントには、資格情報を取得する方法のステップバイステップ ガイドが明確に記載されており、そのページの最後のセクションでは次のことについて説明していますAuthenticating with Application Default Credentials

アプリケーションが Google Cloud Platform API サービスに対して認証する最も簡単な方法は、Application Default Credentials (ADC) を使用することです。ADC を使用するサービスは、最初に GOOGLE_APPLICATION_CREDENTIALS 環境変数内の資格情報を検索します。ADC に他の資格情報 (ユーザー資格情報など) を使用させたい場合を除き、この環境変数をサービス アカウント キー ファイル (サービス アカウント キーの作成時にダウンロードした .json ファイル) を指すように設定することをお勧めします。サービス アカウントを設定します。

$ export GOOGLE_APPLICATION_CREDENTIALS=<サービス アカウント ファイルへのパス>

重要な場合 (まだ登録していない場合)、Google はCloud Platform の無料トライアルアクセス (365 日間で 300 ドル相当) を提供します。Vision APIの低価格、私見では、テストのために多くのことができるはずです.


さて、あなたのコードのエラー; エラーについて説明した内容からは明確ではありませんが、コードは引数を受け入れているように見えますが、引数なしで python スクリプトを実行しようとしています。次の方法でコードを実行できます。

python googleimagetest_v.4.py "image_file.jpg"

次の 2 行は必要ありません ( の呼び出しが重複しているためmain()) 。

photo_file = "image_file.jpg"
main(photo_file,developerkey)

main()2 つの引数を受け入れる関数を定義しましたが、__main__セクションで呼び出すと、単一の引数が渡されます。あなたもそれを修正したいかもしれません。

于 2016-04-17T05:41:05.940 に答える