Cognitive Serviceってご存知ですか?
- Microsoftが開発した画像、音声、文章などを認識・分析してくれるサービス
- 今回はFace APIを使用
写真に含まれる顔の検出、識別、分析、グループ化、タグ付け
今回作ったもの
- 感情分析機能付きビデオチャット
- ビデオチャットをしている相手の顔を分析して感情などを推測してくれる
- ほかにも、年齢、眼鏡をかけているか、といった情報を表示
デモ
https://github.com/Kadoshita/skyway-x-cognitiveservice
- cloneして動かしてみてください。
- SkyWayとFace APIのAPI KEYは自分のものに置き換えてください。
仕組み
- ベースはSkyWayのP2Pのビデオチャット
- 非表示の
<canvas>
があり、定期的にdrawImage()
を使用して映像を一コマ描画 - その一コマを
toBlob()
でBlobに変換してFaceAPIにPOST - 返ってきた結果をSkyWayのDataConnectionを使用して相手に送信
- 認識結果を受信したら各項目を表示
SkyWayのここがいい!
- Webページに「通信」の機能を 簡単に 追加できるところ
- ビデオチャットなどの機能に着目しがちですが、データのやり取りを簡単にできるところも利点だと思います
- 自分でサーバー側の開発、運用をしなくていい
今後の改良点
- 複数人でも使用可能にする
- SFUを使用したサンプルをベースに作成
- SFUを使うと負荷が抑えられる(P2Pだと3人以上はつらい…)
まとめ
- 映像や音声の認識を行うことで、付加価値を付けることができます。
- Cognitive ServiceにはFace API以外にも様々なAPIがあります。
- SkyWayとCognitive Serviceを組み合わせることで、おもしろいビデオチャットができるかもしれません。