Twitter友達からWolfram Language Image Identification Projectを教えていただきました。こんな記事がありますね。
http://gigazine.net/news/20150527-wolfram-language-image-identification-project/
で、これをREST APIとして使えるかどうか調査しました。結果は「できる」です。
Wolfram Language Image Identification Projectは、よくわかりませんが、Wolfram Programming Cloudの実力を示すデモサイトのようです。
以下、登録が終わってサインインして、新しいノートブックが使えるようになった状態から、 Image Identification REST APIを作る手順です。
1. 画像URLから識別を行う関数を定義する
f[url_]:=Module[{image=Import[url]},ImageIdentify[image]]
(入力を評価するには、Shift + returnです。)
2. 定義した関数でREST APIをデプロイする
api = CloudDeploy[APIFunction[{"url"->"String"}, f[#url]&,"JPG"]]
入力を評価すると、デプロイされたURLが表示されます。
3. REST APIのパーミッションをPublicにする
(デフォルトではPrivateです)
SetOptions[api, Permissions->"Public"]
以上で出来上がりです。
2で取得したURLに?url=<特定したい写真のURLをURLエスケープしたもの>を足してアクセスすると、特定結果が得られます。
直接、写真データをPOSTして得られるようにしたかったのですが、Wolfram言語は今のところ、RESET APIに関してGETしかサポートしていないようです。