JavaScriptを使って、写真の顔を認識、抽出して、その範囲を取得する方法を解説。Face Detectionを使います。
JavaScriptを使って、写真の顔を認識、抽出して、その範囲を取得する方法を解説。Face Detectionを使います。
JavaScript製顔認識ライブラリを紹介します。 試してみたところ想像以上に精度が高かったので驚きました。横顔や傾けた顔の認識は難しようですが、正面の精度がすごい。 auduno/clmtrackr デモは画像の顔認識トラッキング(Tracking in image)ビデオの顔認識トラッキング(Tracking in video)認識顔に別の顔を乗せてマスキング(Face masking)認識した顔のデフォルメ(Face deformation)の4つがあります。 デフォルメとマスキングが特に面白いのでお試しあれ。 ちなみにおっぱいを顔として認識してもらおうとしたら怒られました。
ただ、WebRTCで顔認識させようとすると遅くてしかたがなかった。 最初は速いこともあるが、10回ぐらい認識をさせるとすぐに遅くなる。 とりあえず、デモ。 そこで、チューニングをしてみることにした。 まず、JavaScriptの定番の高速化を試してみた。 例えば、正の数で使える「Math.floor(x)」を「(x | 0)」に、整数で使える「x * Math.pow(2, y)」を「x << y」にする等。 これで、10~30%高速化できた。 次に、遅くなっている部分を調べたら、Web Workersで分散するための仕組みが遅くなる原因だとわかった。 これは、Web Workersを使わない場合にも影響が出ていた。 じゃあ、Web Workersを使えば速くなるのかといえばその逆で、20倍遅くなっていた。 詳しくは調べてないけど、多分Workerスレッドに処理データを渡す時にJSON化が
作った。 http://search.cpan.org/dist/Image-ObjectDetect/ http://d.hatena.ne.jp/darashi/20070223/1172232765でRubyの拡張ライブラリを公開されていたので、こりゃやらなくちゃ・・・と思った次第です。すみません。 こんな感じで使えます。Imagerで顔を囲んでみた。 #!/usr/local/bin/perl use strict; use warnings; use Imager; use Image::ObjectDetect; my $file = 'picture.jpg'; my $image = Imager->new->read(file => $file); my $cascade = '/usr/local/share/opencv/haarcascades/haarcascad
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く