Tmcn Leap Motion

41
あなたが知らない Leap Motion 2014/04/21 Natural Software 中村 薫 Tokyo MotionControl Network tech-cafe Vol.01

Transcript of Tmcn Leap Motion

Page 1: Tmcn Leap Motion

あなたが知らないLeap Motion

2014/04/21

Natural Software 中村薫

Tokyo MotionControl Network tech-cafe Vol.01

Page 2: Tmcn Leap Motion

自己紹介

中村薫フリーランスで主にDepthセンサー系の仕事をしています

アプリケーション開発

講演、ハンズオンセミナー

執筆など

Microsoft MVP for Kienct for Windows

[email protected]

Page 3: Tmcn Leap Motion

Tokyo MotionControl Network

https://www.facebook.com/TokyoMotioncontrolNetwork

Page 4: Tmcn Leap Motion

http://www.buildinsider.net/small/leapmotioncs

http://www.buildinsider.net/small/leapmotioncpp

Page 5: Tmcn Leap Motion

アジェンダ

•Leap Motion Overview

•Leap Motion SDK

•Deep Leap Motion

Page 6: Tmcn Leap Motion

Leap Motion Overview

Page 7: Tmcn Leap Motion

Leap Motion とは

• Leap Motion社が販売しているデバイス

•手や指の動きを認識する

Page 8: Tmcn Leap Motion

Leap Motion とは

• 2012年5月22日 Pre-Oder開始

• 2013年7月一般発売

Page 9: Tmcn Leap Motion

なにができるのか

http://www.youtube.com/watch?v=3b4w749Tud8

Page 10: Tmcn Leap Motion

Leap Motionの認識範囲

https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Overview.html

Page 11: Tmcn Leap Motion

Leap Motion SDK

Hand and Finger Tracking Gesture

http://www.buildinsider.net/small/leapmotionfirstimp/01

Touch

Page 12: Tmcn Leap Motion

Airspace

Page 13: Tmcn Leap Motion

内蔵されたLeap Motion

http://gizmodo.com/heres-the-first-laptop-with-leap-motion-built-right-in-1346551607

Page 14: Tmcn Leap Motion

http://www.systemfriend.co.jp/node/519

エア書道 KOFUDE

Page 15: Tmcn Leap Motion

Leap Motion + LEGO EV3

https://www.facebook.com/photo.php?v=676173909095336

Page 16: Tmcn Leap Motion

Magic Table

https://www.behance.net/gallery/Magic-Table-Digital-action-painting/12491753

Page 17: Tmcn Leap Motion

空中ディスプレイ

Page 18: Tmcn Leap Motion

Leap Motion SDK

Page 19: Tmcn Leap Motion

Leap Motion SDK

Hand and Finger Tracking Gesture

http://www.buildinsider.net/small/leapmotionfirstimp/01

Touch

Page 20: Tmcn Leap Motion

サポートするプログラム言語

• C++

• Objective-C

• C#

• Java

• Python

• JavaScript

• Other Languages

https://developer.leapmotion.com/documentation/GetStarted/Leap_Architecture.html

Page 21: Tmcn Leap Motion

サポートするOS

• OS X 10.6 以降

• Windows 7 以降

• Linux(α版)

Page 22: Tmcn Leap Motion

サポートする環境

• Windows デスクトップ

• Windows ストアアプリ(非公式)

• Mac OS

• Unity

• Webブラウザ

Page 23: Tmcn Leap Motion

サポートする環境

Windows Desktop App Mac OSX App Unity

Browser Windows Store App(Unofficial)

Page 24: Tmcn Leap Motion

Leap Motion のインタフェース

Leap Motion Application Interface Leap Motion WebSocket Interface

https://developer.leapmotion.com/documentation/GetStarted/Leap_Architecture.html

Page 25: Tmcn Leap Motion

Leap Motionの認識範囲(3次元)

https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Overview.html

Page 26: Tmcn Leap Motion

Leap Motionの座標系

https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Overview.html

Page 27: Tmcn Leap Motion

指の位置を表示する(3次元、C++)

void CinderSampleApp::draw()

{

// clear out the window with black

gl::clear( Color( 0, 0, 0 ) );

gl::setMatrices( mCam );

// 指の位置を表示する

auto frame = mLeap.frame();

for ( auto finger : frame.fingers() ) {

gl::drawSphere( toVec3f( finger.tipPosition() ), 10 );

}

}

Page 28: Tmcn Leap Motion

指の位置を表示する(3次元、Unity)

// Update is called once per frame

void Update () {

Frame frame = leap.Frame();

for ( int i = 0; i < FingerObjects.Length; i++ ) {

var leapFinger = frame.Fingers[i];

var unityFinger = FingerObjects[i];

SetVisible( unityFinger, leapFinger.IsValid );

if ( leapFinger.IsValid ) {

unityFinger.transform.localPosition = ToVector3( leapFinger.TipPosition );

}

}

}

Page 29: Tmcn Leap Motion

アプリケーションからの認識(2次元)

InteractionBox

ProjectionIntersection

https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Screen_Location.html

Page 30: Tmcn Leap Motion

指の位置を表示する(2次元、C++)

void TouchEmulationApp::draw()

{

gl::clear( Color( .97, .93, .79 ) );

auto pointables = leap.frame().pointables();

auto iBox = leap.frame().interactionBox();

for( auto p : pointables) {

auto normalizedPosition = iBox.normalizePoint(p.stabilizedTipPosition());

float x = normalizedPosition.x * windowWidth;

float y = windowHeight – (normalizedPosition.y * windowHeight);

}

}

Page 31: Tmcn Leap Motion

Deep Leap Motion

Page 32: Tmcn Leap Motion

注意

•Leap Motionを分解しています。

•サポートなど得られなくなると思いますので、ご自分でも分解される場合は自己責任にてお願いします。

•ライセンス的にどうなのかもわかりません。

Page 33: Tmcn Leap Motion

可視光を通しにくく、赤外線を通すフィルタ

Leap Motion本体

Page 34: Tmcn Leap Motion

(ステレオ)カメラ

赤外線LED

Page 35: Tmcn Leap Motion

https://twitter.com/NeoTechLab/status/440666975253958657

Page 36: Tmcn Leap Motion

https://twitter.com/NeoTechLab/status/440666975253958657

Page 37: Tmcn Leap Motion

https://www.google.com/patents/US8638989

Page 38: Tmcn Leap Motion

OpenLeap

https://github.com/openleap/OpenLeap

Page 39: Tmcn Leap Motion

OpenLeap

https://github.com/openleap/OpenLeap

Page 40: Tmcn Leap Motion

OpenLeap

https://www.youtube.com/watch?v=QQMGvWaFhuo