2018年4月27日
プログラミング
顔検出のJavaScriptライブラリ、pico.js【今日のGitHubトレンド】


目次
はじめに
PWAやWebVRやWebARなど、最近はブラウザ上でもアプリと遜色ない体験ができるようになってきました。
今回ご紹介するのは、PCやスマホのカメラを使用し、顔をリアルタイムで検出してくれるJavaScriptのライブラリ、pico.jsです。
こんな形で、カメラを起動すると円で顔をリアルタイムで検出し追い続けてくれます。

pico.jsの使い方
pico.jsを実際に使ってみましょう。
では、まずリポジトリをcloneします。
git clone git@github.com:tehnokv/picojs.git
pico.jsの中身ですが、実はこんな高度をしていますが200行ほどのJavaScriptで構成されています。
pico.jsの中身
cam/index.html の中身を見ていきましょう。
var cascadeurl = 'https://raw.githubusercontent.com/nenadmarkus/pico/c2e81f9d23cc11d1a612fd21e4f9de0921a5d0d9/rnt/cascades/facefinder';
fetch(cascadeurl).then(function(response) {
response.arrayBuffer().then(function(buffer) {
var bytes = new Int8Array(buffer);
facefinder_classify_region = pico.unpack_cascade(bytes);
console.log('* cascade loaded');
})
ここでカスケードファイルを取得して展開しています。
カスケードファイルは、学習用の情報データと思ってください。
それをpico.js内のunpack_cascadeメソッドで展開しています。
そこからカメラから取得した情報をインプットとし、学習データから顔の範囲を算出し、canvasで円をその範囲で描いている、という仕組みです。
具体的にcanvasの円の部分を指定しているのはこちらです。
このパラメータをもとにビデオの画像にcanvas.jsでかぶせています。
ctx.beginPath();
ctx.arc(dets[i][1], dets[i][0], dets[i][2]/2, 0, 2*Math.PI, false);
ctx.lineWidth = 3;
ctx.strokeStyle = 'red';
ctx.stroke();
例えば ctx.strokeStyle = 'blue'; としてみましょう。

するとこのように青の円になりますね。
まとめ
pico.jsを使用することで、気軽にWeb上に顔認識の仕組みを実装することができます。
今回はカメラの映像をリアルタイムで検出する形でしたが、任意の画像や映像をそのリソースとすることもできます。
例えばWeb上で特定の写真に何人がいるかを検出するシステムを作ったり、動画からリアルタイムで人がどこにいるかわかるシステムを作るなど、様々な使い方が考えられます。
pico.jsのデモはこちらにあるので、ぜひ試してみてください!
JavaScriptのお仕事に関するご相談
Bageleeの運営会社、palanではJavaScriptに関するお仕事のご相談を無料で承っております。
zoomなどのオンラインミーティング、お電話、貴社への訪問、いずれも可能です。
ぜひお気軽にご相談ください。
この記事は
参考になりましたか?
0
0
関連記事

2018年7月6日
【js】jQueryでできるハンバーガーメニューの作成

2018年6月18日
プログレスバーを簡単に実装できるprogressbar.js

2018年5月8日
画像に簡単にアニメーションをつけるcurtain.js

2018年2月14日
【js】jQueryでできるアコーディオンメニューの作成

2017年9月4日
【JS】スクロールした時にCSSanimationを発動させる「scrollMonitor」
簡単に自分で作れるWebAR
「palanAR」はオンラインで簡単に作れるWebAR作成ツールです。WebARとはアプリを使用せずに、Webサイト上でARを体験できる新しい技術です。
palanARへ








