クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

Googe Cloud Vision GCSに対応 #gcpja


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 は、数週間後パブリックβでだれでも使用できるようになるようです。

コメントは受け付けていません。