昨年は画像でこの仮想通貨が値上がり!みたいな告知をする人がいて、
瞬時に画像識別して取引に使うという話がありました。
丁度その頃に自分も試して見たので忘れない内に手順のメモ。
何ができるの?
Microsoftの提供しているComputer Vision APIというものを利用します。
屋内・屋外の判定や、何が映っているか、そしてどんな風景かを教えてくれます。
無料でも十分使えます。(但し30日間の試用制限あり)
使い方:まずは登録!
https://azure.microsoft.com/ja-jp/services/cognitive-services/computer-vision/ にアクセスし、Computer Vision APIを試す をクリック
一覧から、APIキーの取得を選ぶ。5000トランザクションまで使えると書いてます。どれぐらいの精度か試すには十分な回数かと思います。
クリックすると、利用規約やMicrosoftアカウントのサインイン画面を経由して、APIキーが表示されます。
アカウント連携にすると登録が楽です。自分はgithubのアカウントと繋げました。
登録が終わると、APIキーが2つ表示されます。使うのはどちらでもOKです。
このAPIキーを利用して、画像を読み込ませます。
Micorsoftにもかかわらず、サンプルコードはphp,python,C#等色々書かれています。太っ腹。
今回はC#で試します。(無償のVisualStuidoCommunityやVS2015Expressどちらでも動きました)
サンプルコードはAPIキーが表示されている画面で「クイックスタートガイド」をクリックすると左側に言語別にずらっと表示されます。
サンプルコードはファイル名を入力するようになっています。自分はソース内で画像ファイルを指定して検証しました。(何度も入力面倒なので)
static void Main()
{
// Get the path and filename to process from the user.
Console.WriteLine("Analyze an image:");
string imageFilePath = @"c:\tmp\img.png"; // ファイル名を直接指定
// Execute the REST API call.
MakeAnalysisRequest(imageFilePath);
Console.WriteLine("\nPlease wait a moment for the results to appear. Then, press Enter to exit...\n");
Console.ReadLine();
}
読み込ませてみる
さて、早速読み込ませてみましょう。まずは風景を持ってきます
色々情報が出てきましたが、ここではcaptionsを見てみます。
"captions": [
{
"text": "a close up of a pond of water",
"confidence": 0.84774704380268
}
「池のどアップ」自信の程も0.84と高めで、ドヤ顔で答えてきています。
川かもしれないけど、正解と言えますね。さすがの精度です。
もう一つ読み込ませます。
うさぎコイン発掘所の2代目看板コーギーウサギ。
"captions": [
{
"text": "a drawing of a face",
"confidence": 0.49674243223802728
}
]
「顔の絵」…認識した単語にもうさぎ要素なし。絵は流石に難しいか。自信も0.49と自信なさげな返答。
写真なら得意なのかということで、かしわモーチ(リアル)を読み込ませます。
"captions": [
{
"text": "a drawing of a face",
"confidence": 0.58342362048487484
}
]
顔の絵…しかも今回はちょっと自信度アップ。確かに顔だよね。
まとめ
・MicrosoftのComputerVisionAPI簡単に試すことができる
・風景については精度が高い
・工業用の部品だったり、絵やキャラクターものはまだまだこれから
※ほかにも色々画像を読み込ませて検証しました。
ちなみにサイズが大きすぎたり、小さすぎるとエラーが出るので、エラーが出た場合はメッセージを注意深く見てみましょう。