WebRTCでAR(拡張現実) (チュートリアル2)

こんにちは、ベーコン婆男です。

今回は、Kurentoならではの顔認識を使ったAR(拡張現実)のチュートリアルを紹介したいと思います。

チュートリアル2: WebRTC magic mirror

このチュートリアルでは、チュートリアル1と同様に、送信した映像をそのまま受信して表示しますが、チュートリアル1と異なるのは、Kurentoサーバ側で、WebRTCの映像データから顔を認識して、赤色の帽子をかぶせます。WebRTCを使った簡単なAR(拡張現実)が実現できています。

チュートリアル1の繰り返しになりますが、以前投稿した「WebRTC Kurentoサーバの構築」の記事に従って、Kurento Media Serverのインストールとサービス起動をお願いします。

サービスが起動していないと、ビルド後にエラーが発生して動作しないため、必ずサービスを起動しておいてください。

また、チュートリアル1に記載した手順で、チュートリアルのコードをGitHubからダウンロードしてください。全チュートリアルのコードがダウンロードされますので、一度ダウンロードすれば再実行する必要はありません。

kurento-tutorialフォルダにgitでソースコードを取得した状態から説明します。kurento-magic-mirrorフォルダに移動して、mvnでビルドします。

2017年9月時点の最新は、6.6.2ですが、このバージョンのMagic Mirrorチュートリアルは不具合があるようで、顔認識が動作しませんでした。そのため、6.6.0を使用してください。

$ cd kurento-tutorial-java/kurento-magic-mirror
$ git checkout 6.6.0
$ mvn compile exec:java

ビルドが成功すると、Magic Mirrorアプリが起動します。

パソコンでブラウザを立ち上げて、Kurentoが起動しているサーバ(ポート8443)をhttpsで開いてください。

https://(サーバアドレス):8443/

サーバに証明書が実装されていない場合は警告が表示されますが、無視して開いてください。

左側に表示されている自分の映像が、サーバからのループバックで、そのまま右側に表示されているのは、チュートリアル1のHello Worldと同じですが、今回のチュートリアル2のMagic Mirrorでは、右側の自分の頭の上に帽子が被っています。

これは、Kurentoサーバ側で、WebRTCクライアント端末から受信した映像を解析し、顔を検出して、その顔位置に帽子を描画して、クライアント端末に送信しています。

Kurentoでは、Media Elementという機能コンポーネントを組み合わせることで、サーバ側で色々な画像処理ができるようになっています。今回のMagic Mirrorでは、ストリーミングデータの受信・送信を行うWebRtcEndpointと、顔認識をして描画を行うFaceOverlayFilterのMedia Elementをつなげることで、今回の機能を実現しています。ちょうど、レゴブロックを組み合わせる感覚で、色々な機能を実現できるようになっています。

WebRTCは、映像や音声等のストリーミングデータをやり取りするリアルタイムコミュニケーションのためのプロトコルですが、Kurentoは、リアルタイムコミュニケーション用のストリーミングプラットフォームに留まらず、画像認識やARなどの、リアルタイムな映像処理プラットフォームとしての可能性を持っています。

ストリーミングデータに対して、リアルタイムに画像加工や画像分析をしたりできるような、新しいコミュニケーションアプリを作りたいと思っている方には、Kurentoは大変面白いサーバだと思います。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です