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へ
palanでは一緒に働く仲間を募集しています
正社員や業務委託、アルバイトやインターンなど雇用形態にこだわらず、
ベテランの方から業界未経験の方まで様々なかたのお力をお借りしたいと考えております。
運営メンバー

Eishi Saito 総務
SIerやスタートアップ、フリーランスを経て2016年11月にpalan(旧eishis)を設立。 マーケター・ディレクター・エンジニアなど何でも屋。 COBOLからReactまで色んなことやります。
sasakki デザイナー
アメリカの大学を卒業後、日本、シンガポールでデザイナーとして活動。

やまかわたかし デザイナー
フロントエンドデザイナー。デザインからHTML / CSS、JSの実装を担当しています。最近はReactやReact Nativeをよく触っています。
Sayaka Osanai デザイナー
Sketchだいすきプロダクトデザイナー。シンプルだけどちょっとかわいいデザインが得意。 好きな食べものは生ハムとお寿司とカレーです。

はらた エンジニア
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

こぼり ともろう エンジニア
サーバーサイドエンジニア。SIerを経て2019年7月に入社。日々学習しながらRuby on Railsを使った開発を行っています。

ささい エンジニア
フロントエンドエンジニア WebGLとReactが強みと言えるように頑張ってます。

Damien
WebAR/VRの企画・開発をやっています。森に住んでいます。

ゲスト bagelee

かっきー

まりな

suzuki
miyagi

ogawa
雑食デザイナー。UI/UXデザインやコーディング、時々フロントエンドやってます。最近はARも。

いわもと
デザイナーをしています。 好きな食べ物はラーメンです。

taishi kobari
フロントエンドの開発を主に担当してます。Blitz.js好きです。

kubota shogo
サーバーサイドエンジニア。Ruby on Railsを使った開発を行いつつ月500kmほど走っています!
nishi tomoya

aihara
グラフィックデザイナーから、フロントエンドエンジニアになりました。最近はWebAR/VRの開発や、Blender、Unityを触っています。モノづくりとワンコが好きです。
nagao
SIerを経てアプリのエンジニアに。xR業界に興味があり、unityを使って開発をしたりしています。

Kainuma
サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

sugimoto
asama
ando
iwasawa ayane

oshimo
異業界からやってきたデザイナー。 palanARのUIをメインに担当してます。 これからたくさん吸収していきます!