ハッカソンではすごいスピードですごいものを作らないといけないので、結構既存サービスをうまく使って独自部分の実装に注力できるようにしておかないといけないというのがありますよね。
ということで、ハッカソンでパッと使えて割とすごいサービスをいくつか紹介したいと思います。
# QnA Maker
トップを飾るのは先日プレビューから一般公開になった QnA Maker です。
これは質問と回答の組みを登録しておくと、質問に対して回答を返してくれる API を提供してくれるものになります。
質問は完全一致してなくても大丈夫で、なんとなくそれっぽいものを返してくれるところがポイントです。
なんとなく AI チックにやり取りしてくれる人や QnA 対応を自動化するときにとても強いです。
# Custom Vision API
こちらは画像をいい感じに判別してくれる API を作れます。
しかも、画像は自分で登録してタグづけしておくと学習させて API として公開できるので写真が何なのかというのを判別させる機能をさくっと作れるところが強いです。
しかも、最近は CoreML のようなモバイルアプリで使える学習済みモデルの出力とかにも対応してるので、クラウドで学習させてエクスポートしてローカルで学習結果を使うということもできます。強い。
そして、最近 preview で公開された Object Detection という機能は最高に強いです。
今までは1枚の画像を渡して1つの認識結果を返してくれるというものでした。Object Detection は、1枚の画像のどの部分に何があるのかということを返してくれます。
画像の左に猫がいて画像の右に納豆が置いてある!とかいうことが判別できるような API を作ることができます。
強い。
# Face API
これは写真を食べて顔を検出してくれたりするやつです。前の2つが自分たちで学習させないといけないものでしたが、こちらはサービスをポチっと作った段階でほぼ使える感じです。(人の顔が誰のものか判別する API を使う場合は学習させないといけません)
ということで顔認証とかみたいなのがサクッとできますね。
過去に来た人を覚えておくようなシナリオなんかに使ったり、人が喜んでるのか?悲しんでるのか?といった感情に応じて対応を変えるようなものにも使えます。
https://azure.microsoft.com/ja-jp/services/cognitive-services/face/?v=18.05
# Bing Image Search
キーワードから画像を返してくれる API です。イメージ画像をさくっと返してくれるのでテキスト情報をなんとなく画像でわかりやすく示したいとかいうのに使えます。
私は英語レストランメニューを OCR して結果をこの API に投げ込んで英語のレストランのメニュー画像をとってきてメニューがどんな食べ物なのかというのを知るために使ったりしました。
使いようによっては面白いことに使えるのかなと思います。
https://azure.microsoft.com/ja-jp/services/cognitive-services/bing-image-search-api/
# Text Analytics
これはテキストをインプットとして解析結果を返してくれるものです。
テキストからキーワードを抽出したり、感情を返してくれたり、何語で書かれてるのか?とかも返してくれます。
たとえば入力された文章を食わせてキーワードを検出して、先ほど紹介した Bing Image Search に渡すと文章のイメージにあった画像を出してくれるといったこととかも実現できますね。
https://azure.microsoft.com/ja-jp/services/cognitive-services/text-analytics/
# まとめ
ということで、今回紹介したサービスは基本的に全部 Microsoft Cognitive Services という簡単に利用できる AI を使った Web API を簡単につくれるサービスの中のものです。
もし、ちょっとでも面白そうだな?って思ったら以下の URL から Cognitive Services のサイトに行けますので一度目を通しておくと何か作るときの引き出しを増やすという意味でいいかもしれません。
https://azure.microsoft.com/ja-jp/services/cognitive-services/
あと、Web API を作ることって凄く多いと思うのですが Azure Functions を使うと凄く簡単に Web API 作ったりできるので、まだ手に馴染む Serverless のプラットフォームをお持ちでないかたは見てみるといいかもしれません。
https://azure.microsoft.com/ja-jp/services/functions/
node.js, や C# で簡単にかけるようになってます。ちょっとしたものなら Web ブラウザだけで完結して作れます。本格的なものは Visual Studio Code + CLI ツール や Visual Studio を使っての開発になります。
私は、パッと何かやるときは Azure Functions で API を作って、そこから各種 Cognitive Services の API を叩いて結果をいい感じに組み合わせて返すものを作ってクライアントのアプリから呼ぶという形をとったりします。
ということで良いハッカソンライフを!!