今日からはじめるkinect hack
DESCRIPTION
Kinect勉強会 Vol1での発表資料 (At Feb. 23, 2011)TRANSCRIPT
今日からはじめるKinect Hack
hagino3000Feb. 23, 2011 Kinect勉強会 Vol.1
1
@hagino3000 ?
2
3
4
About me✴ Web Developer
✴ まともに書けるのはJavaScriptだけ
✴ 破滅クルー
✴ java-ja.js
✴ 荒川智則個展ではKinectを使って展示
5
荒川智則個展にて (Jun. 2011)
6
Agenda
✴ Introduction
✴ Drivers for Kinect
✴ openFrameworks
✴ Live coding with Xcode and C++
✴ Kinect with Browser
7
アンケート結果
8
Hack用のKinectを持っている
Yes46
No40
9
既にHackしまくっている
Yes11
No35
10
Introduction
11
12
Buy it!!
13
Kinect Hackの始まり✴昨年11月にKinectのオープンソースドライバに2,000ドルの賞金がかけられた。
✴ Hector Martinが現在のlibfreenectを公開して賞金をゲット
✴この時はまだ日本においてKinect未発売
14
http://www.youtube.com/watch?v=rKhW-cvpkks
15
libfreenect
✴ Windows/MacOS/Linux
✴ C++/Python
✴深度と光学映像が取れる
16
OpenNI
✴ Natural Interactionの開発者組織
✴ Kinectの赤外線センサの開発元であるPrimeSence社が支援、ドライバを公開
✴ Natural Interactionデバイス扱うためのインタフェースを定義
18
Natural Interaction
✴ Speech and command recognition, where devices receive instructions via vocal commands.
✴ Hand gestures, where pre-defined hand gestures are recognized and interpreted to activate and control devices.
✴ Body Motion Tracking, where full body motion is tracked, analyzed and interpreted for gaming purposes.
19
<="" p=""/>
http://www.openni.org/documentation
20
骨格認識を行なうNITEは図のMiddle ware部に相当
21
MSの見解
22
XBOXでチートやらなければよし。
23
Kinect for Windows SDK
http://blogs.technet.com/b/microsoft_blog/archive/2011/02/21/kinect-for-windows-sdk-to-arrive-spring-2011.aspx
24
OpenNI + PrimeSensor Moduleが主流になりつつある
(MacOSにも対応)
25
Many Hacks
✴ Media Art
✴ Computer Interface
✴ Sex Game Controller
26
一方その頃日本では✴ミクミクダンス
✴ズゴック
✴ウルトラセブン
27
http://www.kinect-hacks.com/openni
28
openFrameworks
29
openFrameworks✴メディアアートの様なインタラクション向けのフレームワーク
✴ C++
✴ Kinectドライバをラップしたaddonが存在する (ofxKinect / ofxOpenNI)
✴簡単に動く物が作れる
31
Demo
32
Webブラウザとの連携
33
Socket通信でnode.jsやTornadeに渡してからWebSocketでブラウザへ送信する方法が良く取られる
34
var http = require('http'), io = require('socket.io'), zmq = require('zeromq');
var server = http.createServer();server.listen(9876);
// Setupvar webSocket = io.listen(server);webSocket.on('connection', function(client) { // do something});
// C++ Program ==> node.js ==> Browservar zsocket = zmq.createSocket('sub');zsocket.on('message', function(event, data) { webSocket.broadcast(data);});zsocket.connect('tcp://127.0.0.1:14444');zsocket.subscribe('event');
35
Question?
36
Thank you
37