SlideShare a Scribd company logo
1 of 13
Download to read offline
HTML5とOSSで作る
ブラウザで簡単顔認識

2013/10/31 業務システムのためのHTML5勉強会#05
HALLOWEEN WEB NIGHT
小川 充(@mitsuruog)
自己紹介
小川充(おがわみつる)37歳
株式会社クレスコ 技術研究所
フロントエンジニア
HTML5j えんぷら部スタッフ
enja-ossメンバー
github:https://github.com/mitsuruog
twitter:https://twitter.com/mitsuruog
命題
Q.
HTML5とOSSを組み合わせてブラウザで
顔認識ができるのか?

A.できます!
使用技術
・HTML5 Media Capture and Streams
(以下、StreamAPIと略)
http://dev.w3.org/2011/webrtc/editor/getusermedia.html
・OSS headtrackr.js https://github.com/auduno/headtrackr
・Chrome28+
StreamAPIの使い方
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
window.URL = window.URL || window.webkitURL || window.msURL || window.mozURL;
var videoInput = document.getElementById('video');
if (navigator.getUserMedia) {
var videoSelector = {video: true, audio: true};
navigator.getUserMedia(videoSelector, function (stream) {
videoInput.src = window.URL.createObjectURL(stream);
}, function (e) {
alert('あぼーん');
});
} else {
alert(‘あぼーん’);
}
StreamAPIの使い方
ブラウザにて、サイトからのカメラへのアクセスの許可する。
→httpだと毎回、httpsだと永続的。
ブラウザサポート

http://caniuse.com/#feat=stream
顔認識させてみた
https://github.com/auduno/headtrackr
顔特徴認識させてみた
https://github.com/auduno/clmtrackr
デモ
https://github.com/mitsuruog/html5-webcam-demo
HTML5とOSSで出来ること
・カメラ入力データの二次利用
(ストリーミング、顔認識、顔特徴認識など)

他にもできること
スクリーンショットの取得
画像処理
・CSS Filter(Webkitのみ)
http://caniuse.com/css-filters
http://www.html5rocks.com/en/tutorials/getusermedia/intro/#toc-effects-css
・WebGL(Three.js利用)
http://learningthreejs.com/blog/2012/02/07/live-video-in-webgl/
課題
StreamAPIがEditor’s Draft。(2013年10月末現在)
画像解析の演算処理パフォーマンスがマシンスペックと直結している。
→サーバサイドやネイティブなど要件に応じて処理分担する。
→必ずしもリアルタイムである必要はない。
OSSの演算処理の関係上、入力データサイズが固定。
→headtrackr(320×240)、clmtrackr(400×300)
二次利用する際に画像としてCanvasにコピーする必要がある。
canvasContext.drawImage(videoInput, 0, 0, canvas.width, canvas.height);
reuseData = canvasContext.getImageData(0, 0, canvas.width, canvas.height);
reuseData.some();
まとめ
HTML5とOSSで顔認識ができる。
Web上での表現方法の幅が広がった。
ただし、制限や制約が多く、既存の顔認識の代替となるほどではない。
(HTML5の登場でブラウザでできることは増えたが、必ずしも万能ではない。)

ご清聴ありがとうございました。
photo credit
・http://www.flickr.com/photos/twistermc/57364804/
・http://www.flickr.com/photos/27656397@N05/2988598127/

More Related Content

Viewers also liked

Viewers also liked (8)

Peer js + clmtrackrでつくるモテるアプリ
Peer js + clmtrackrでつくるモテるアプリPeer js + clmtrackrでつくるモテるアプリ
Peer js + clmtrackrでつくるモテるアプリ
 
201205016 deformablemodelfitting
201205016 deformablemodelfitting201205016 deformablemodelfitting
201205016 deformablemodelfitting
 
Peer js
Peer jsPeer js
Peer js
 
WebRTCの技術解説 公開版
WebRTCの技術解説 公開版WebRTCの技術解説 公開版
WebRTCの技術解説 公開版
 
MVP Community Camp
MVP Community CampMVP Community Camp
MVP Community Camp
 
月間10,000PVのブログになるまでに学んだSEO 2014年12月7日
月間10,000PVのブログになるまでに学んだSEO 2014年12月7日月間10,000PVのブログになるまでに学んだSEO 2014年12月7日
月間10,000PVのブログになるまでに学んだSEO 2014年12月7日
 
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
 
論文輪読資料「FaceNet: A Unified Embedding for Face Recognition and Clustering」
論文輪読資料「FaceNet: A Unified Embedding for Face Recognition and Clustering」論文輪読資料「FaceNet: A Unified Embedding for Face Recognition and Clustering」
論文輪読資料「FaceNet: A Unified Embedding for Face Recognition and Clustering」
 

Similar to HTML5とOSSで作るブラウザで簡単顔認識

Html5でOpen Dataをやってみる
Html5でOpen DataをやってみるHtml5でOpen Dataをやってみる
Html5でOpen Dataをやってみる
Masakazu Muraoka
 
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことメンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
Mitsuru Ogawa
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
Masakazu Muraoka
 
ボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考えるボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考える
Masakazu Muraoka
 
_HTML5で組んでみた_
_HTML5で組んでみた__HTML5で組んでみた_
_HTML5で組んでみた_
Kelly Holonic
 

Similar to HTML5とOSSで作るブラウザで簡単顔認識 (20)

Html5 and Graphics
Html5 and GraphicsHtml5 and Graphics
Html5 and Graphics
 
html5とcss3実例紹介とデモ
html5とcss3実例紹介とデモhtml5とcss3実例紹介とデモ
html5とcss3実例紹介とデモ
 
Html5でOpen Dataをやってみる
Html5でOpen DataをやってみるHtml5でOpen Dataをやってみる
Html5でOpen Dataをやってみる
 
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
 
Attractive HTML5
Attractive HTML5Attractive HTML5
Attractive HTML5
 
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことメンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
 
HTML5が創り出す新たな世界
HTML5が創り出す新たな世界HTML5が創り出す新たな世界
HTML5が創り出す新たな世界
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 
【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう
【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう
【ハンズオン】jQuery+HTML5 APIでスライドショーを作ろう
 
2018年に於ける HTML の役割(概要編)
2018年に於ける HTML の役割(概要編)2018年に於ける HTML の役割(概要編)
2018年に於ける HTML の役割(概要編)
 
HTML5勉強会@福岡
HTML5勉強会@福岡HTML5勉強会@福岡
HTML5勉強会@福岡
 
デブサミ2014【13-D-2】成井弦氏 HTML5が創り出す新たな世界
デブサミ2014【13-D-2】成井弦氏 HTML5が創り出す新たな世界デブサミ2014【13-D-2】成井弦氏 HTML5が創り出す新たな世界
デブサミ2014【13-D-2】成井弦氏 HTML5が創り出す新たな世界
 
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
 
Thing.jsについて
Thing.jsについてThing.jsについて
Thing.jsについて
 
ボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考えるボクたちのWWW Webクリエイターのこれからを考える
ボクたちのWWW Webクリエイターのこれからを考える
 
HTML5 のお話
HTML5 のお話HTML5 のお話
HTML5 のお話
 
Chrome Extensionで スクリーンシェアをやってみる
Chrome ExtensionでスクリーンシェアをやってみるChrome Extensionでスクリーンシェアをやってみる
Chrome Extensionで スクリーンシェアをやってみる
 
_HTML5で組んでみた_
_HTML5で組んでみた__HTML5で組んでみた_
_HTML5で組んでみた_
 
AMD basic and practice
AMD basic and practiceAMD basic and practice
AMD basic and practice
 

More from Mitsuru Ogawa

More from Mitsuru Ogawa (16)

React+TypeScriptもいいぞ
React+TypeScriptもいいぞReact+TypeScriptもいいぞ
React+TypeScriptもいいぞ
 
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewAngular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overview
 
Webアプリケーションセキュリティ ディスカッション資料
Webアプリケーションセキュリティ ディスカッション資料Webアプリケーションセキュリティ ディスカッション資料
Webアプリケーションセキュリティ ディスカッション資料
 
Lightningコンポーネント事始め
Lightningコンポーネント事始めLightningコンポーネント事始め
Lightningコンポーネント事始め
 
ゆるふわWoT&firefoxOS体験記
ゆるふわWoT&firefoxOS体験記ゆるふわWoT&firefoxOS体験記
ゆるふわWoT&firefoxOS体験記
 
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
 
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました
 
エンタープライヤーのためのWeb Componentsハンズオン
エンタープライヤーのためのWeb ComponentsハンズオンエンタープライヤーのためのWeb Componentsハンズオン
エンタープライヤーのためのWeb Componentsハンズオン
 
エンタープライズとHTML5〜エンタープライズでHTML5って本当に必要なのか?〜
エンタープライズとHTML5〜エンタープライズでHTML5って本当に必要なのか?〜エンタープライズとHTML5〜エンタープライズでHTML5って本当に必要なのか?〜
エンタープライズとHTML5〜エンタープライズでHTML5って本当に必要なのか?〜
 
国内初事例に学ぶSAPUI5
国内初事例に学ぶSAPUI5国内初事例に学ぶSAPUI5
国内初事例に学ぶSAPUI5
 
35歳無名のシステムエンジニアが1年半でフロントエンジニアになるために行った3つの成長戦略
35歳無名のシステムエンジニアが1年半でフロントエンジニアになるために行った3つの成長戦略35歳無名のシステムエンジニアが1年半でフロントエンジニアになるために行った3つの成長戦略
35歳無名のシステムエンジニアが1年半でフロントエンジニアになるために行った3つの成長戦略
 
賢くツールを使って脱人海戦術駆動テスト
賢くツールを使って脱人海戦術駆動テスト賢くツールを使って脱人海戦術駆動テスト
賢くツールを使って脱人海戦術駆動テスト
 
ゆるふわCSS3
ゆるふわCSS3 ゆるふわCSS3
ゆるふわCSS3
 
これからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへこれからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへ
 
オフラインWeb 今どきのデータ永続化事情
オフラインWeb 今どきのデータ永続化事情オフラインWeb 今どきのデータ永続化事情
オフラインWeb 今どきのデータ永続化事情
 
Enja OSSやってます
Enja OSSやってますEnja OSSやってます
Enja OSSやってます
 

HTML5とOSSで作るブラウザで簡単顔認識