Cloud Vision Early Access ProgramのGoogleグループに流れていたことですが、Cloud Visionは、Google Cloud Storageの画像を読み込むことが可能になっています。
ようやく動作できるように(解析結果がレスポンスデータとして戻ってくるように)なりましたので、サンプルコードを掲載します。
下記ソースのbatch_requestのところがポイント。
from PIL import Image from PIL import ImageDraw from pprint import pprint # The url template to retrieve the discovery document for trusted testers. DISCOVERY_URL='https://{api}.googleapis.com/$discovery/rest?version={apiVersion}' def get_vision_service(): credentials = GoogleCredentials.get_application_default() return discovery.build('vision', 'v1', credentials=credentials,discoveryServiceUrl=DISCOVERY_URL) def main(): batch_request = [{ 'image': { 'source': { 'gcs_image_uri': "gs://XXXXXXXXX/top-bnr-70.png" } }, 'features': [{ 'type': 'FACE_DETECTION', 'maxResults': 30, }] }] service = get_vision_service() request = service.images().annotate(body={ 'requests': batch_request, }) response = request.execute() pprint(response['responses'][0]) faces = response['responses'][0]['faceAnnotations']
Googleでは、Google Cloud Visionだけでなく、音声認識、Google Photo等Deep Learningをすでに運用されているので、Google Cloud Visionも解析にDeep Learning技術を使用しています。
Deep LearningのFrameworkとして切り出して公開されているのが、TensorFlowになります。(分散環境に対応したTensorFlowも公開されるとのこと)
TensorFlowは複数台の分散環境(40G portsのスペックを有しているJupiter network)で初めて性能を発揮します。スタンドアロンでは性能を発揮できません。つまり、TensorFlowをAWSのGPインスタンスで動かしても期待して性能がでません。
なお、Google Cloud Vision は、数週間後パブリックβでだれでも使用できるようになるようです。