読者です 読者をやめる 読者になる 読者になる

at kaneshin

Free space for me.

Cloud Vision APIを試す

Golang

GoogleがCloud Vision APIを使ってみた記事です。

実装したリポジトリはこちらです。

準備

まず、Google Cloud Consoleでプロジェクトを作成し、Cloud Vision APIを有効にしてください。 その後、Service AccountのCredentialsを作成し、下記のように環境変数へ設定したら準備は完了です。

$ export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json

インストール

pigeonではCommand Line ToolとWebアプリの二つを用意しています。

$ go get github.com/kaneshin/pigeon/tools/cmd/...

インストールできたかどうかは下記のコマンドを叩いてください。

$ pigeon -h
$ pigeon-app -h

使い方

Command Line Tool

$ pigeon assets/lenna.jpg
$ pigeon -face gs://bucket_name/lenna.jpg

コマンドのオプションでどのように検出するかを選択することができます。何も指定しない場合は -label としてラベル検出がデフォルトで与えられます。

f:id:laplus-knsn:20160529020015g:plain

Webアプリケーション

$ pigeon-app
$ pigeon-app -port=8000 -- -face -label -safe-search
$ curl -XGET localhost:8080/

コマンドのオプションでポートや検出を決定することがこちらでも可能です。デフォルトポートは8080で、検出はラベル検出となっています。

f:id:laplus-knsn:20160529020035g:plain

結果

ラベル検出

f:id:laplus-knsn:20160529020112p:plain

$ pigeon -label pigeon.png
[
    {
        "labelAnnotations": [
        {
            "description": "bird",
                "mid": "/m/015p6",
                "score": 0.825656
        },
        {
            "description": "anatidae",
            "mid": "/m/01c_0l",
            "score": 0.58264238
        }
        ]
    }
]

鳩をちゃんと「bird」として検出しています。精度も結構高い。

セーフサーチ

f:id:laplus-knsn:20160529020124j:plain

$ pigeon -safe-search lenna.jpg
[
    {
        "safeSearchAnnotation": {
            "adult": "POSSIBLE",
            "medical": "UNLIKELY",
            "spoof": "VERY_UNLIKELY",
            "violence": "VERY_UNLIKELY"
        }
    }
]

レナの画像は80%くらいでアダルト画像かもしれないと検出することができています。

おわりに

簡単に使えるので、間違えて無料枠から超えないように気をつけてください。