WebRTCで顔認識 (チュートリアル4)

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

今回は、チュートリアル2のWebRTC Magic Mirrorで紹介した内容に近いですが、WebRTCの送信映像から顔を検出して、顔位置に枠を描画するサンプルです。

画像解析の代表例として、お店に入店した人数を数えるピープルカウントが挙げられますが、その応用例として、WebRTCを使って、スマホのカメラ映像をリアルタイムに送信して、Kurentoサーバ側で、ピープルカウントを行うといったことが考えられます。一般的なHTTPプロトコルで映像を送信する場合、帯域制御を行うことが難しくリアルタイムなやり取りは難しいですが、WebRTCであれば、帯域制御も自動的に行ってくれるため、モバイル回線等で帯域が安定しない場合には特に有効かと思われます。

チュートリアル4: WebRTC 顔認識(Metadata)

このチュートリアルでは、受信した映像から顔認識を行い、認識した領域に四角を描画します。

本チュートリアルのMedia Elementの構成は以下のようになっており、WebRtcEndPointで受信した映像データに対して、KmsDetectFacesが顔認識を行い、顔の位置と大きさのメタ情報をバッファーに書き込みます。KmsShowFacesはバッファーからメタ情報を読み出し、その情報に従って緑色の枠を表示します。

 

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

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

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

$ mkdir kurento-tutorial
$ cd kurento-tutorial
$ git clone https://github.com/Kurento/kurento-tutorial-java.git

kurento-tutorialフォルダにgitでソースコードを取得したら、kurento-one2many-callフォルダに移動して、mvnでビルドします。

なお、本チュートリアルでは、kms-datachannelexampleモジュールが必要なため、事前にインストールしておきます。なおkms-datachannelexampleモジュールのインストール後は、Kurentoサービスを再起動してください。

$ sudo apt-get install kms-datachannelexample
$ sudo service kurento-media-server-6.0 start
$ sudo service kurento-media-server-6.0 stop
$ cd kurento-tutorial-java/kurento-metadata-example
$ git checkout 6.6.2
$ mvn compile exec:java

ビルドが成功すると、チュートリアルのアプリが起動します。

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

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

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

「Start」ボタンを押すと、ループバックで自分の映像が右側に表示されますが、ループバック映像では、自分の顔が認識されて、その位置に緑枠が表示されます。もちろん顔を動かすと、緑の枠も追従します。

サーバ側で画像認識ができると、単なるコミュニケーションツール以上のことができる可能性があります。例えば、犬の糞に困っている場合、犬を認識してその滞留時間からアラートを上げるのはどうでしょうか?(笑)

 

コメントを残す

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