43
@ MOSUT + Python.Tainan by Victor Gau www.victorgau.com

20131221 victor gau - kinect 簡介

Embed Size (px)

Citation preview

Page 1: 20131221   victor gau - kinect 簡介

@ MOSUT + Python.Tainan

by Victor Gau

www.victorgau.com

Page 2: 20131221   victor gau - kinect 簡介

Outline

緣起

什麼是Kinect?

怎麼開發Kinect程式?

Kinect 3D Scanner

New Kinect for Windows

Page 3: 20131221   victor gau - kinect 簡介
Page 4: 20131221   victor gau - kinect 簡介

台灣產業的問題

傳統產業的問題:

市場很少有新產品出現,各廠商都沒有擁有無法被取代的技術,也無法建立進入障礙,產品最後進入削價競爭。

政府認為可能的解決方法:

製造業服務化

服務業科技化

服務業國際化

傳統產業特色化

Page 5: 20131221   victor gau - kinect 簡介

申請計畫的優缺點

優點 構思企業面臨的問題

構思與國內外技術/產品/服務比較

構思技術/產品/服務運用深度與廣度

構思市場所在

企業轉型/創新業務/核心能力

建立企業共識

計畫審查免費顧問諮詢

獲取資金挹注,分散風險

政府新聞稿,提升公司形象

缺點 降低研發的彈性

降低研發的時效性

洩密的風險

需花額外的時間在計畫文件上

Page 6: 20131221   victor gau - kinect 簡介

政府計畫

CITD

主辦單位:經濟部工業局

補助金額:最高200萬元。

SIIR (以前叫做ASSTD)

主辦單位:經濟部商業司

補助金額:最高200萬元。

SBIR (中央型)

主辦單位:經濟部技術處

補助金額:每年補助最高不超過500萬元。

Page 7: 20131221   victor gau - kinect 簡介

CITD概略的時程

2013/01/25: 遞出計畫申請書

2013/03/03: 至工業局簡報

2013/03/26: 獲得政府補助

2013/04/02: 簽約說明會

2013/04/09: 繳交修正版計畫書

2013/04/16: 委員復核通過

2013/04/19: 正式簽約執行計畫

2013/05/18: 簽約補件完畢

2013/07/30: 期中查訪說明會

2013/08/09: 繳交期中報告

Page 8: 20131221   victor gau - kinect 簡介

CITD概略的時程

2013/09/02: 期中審查

2013/09/07: 繳交修正版期中報告

2013/09/11: 期中審查複核通過

2013/10/04: 申請計畫變更

2013/10/09: 計畫變更通過

2013/10/22: 結案說明會

2013/10/30: 繳交期末報告

2013/11/11: 結案審查

2013/12/10: 全年度資料彙整膠裝

Page 9: 20131221   victor gau - kinect 簡介

BIFMA的辦公座椅參考尺寸

381 ~ 505.46 mm

Page 10: 20131221   victor gau - kinect 簡介

座椅高度分析

K

K: Knee Height

B: Chair Base Height

M: Mechanism Height

T: Seat Thickness

X: Taper Length

Y: Length Below Taper

L: Extended Length

C: Stroke

Page 11: 20131221   victor gau - kinect 簡介

一些有名的人體工學椅

公司名稱 座椅名稱 推出時間 座椅高度 備註

Steelcase Sensor 1986 16”~21” (406.4~533.4mm)

耗時四年,耗費200萬美金。

Herman Miller Aeron 1994

A: 14 3/8”~19 1/6” (365.1~486.8mm) B, C: 15”~20 7/8” (381.0~530.2mm)

1980年代末期開始研發,1991年發表,1994年正式推出。

Herman Miller Embody 2008 16”~20.5” (406.4~520.7mm) 耗時六年研發。

Kokuyo Agata 2001 435-525mm

Wilkhahn FS Line 1984 420-530mm 耗時多年研究。

Wilkhahn On 2010 400-520mm 耗時六年研發。

Page 12: 20131221   victor gau - kinect 簡介

台灣及美國使用者膝蓋高度分布

Data analysis using Python + NumPy + MatPlotLib

Page 13: 20131221   victor gau - kinect 簡介

Sensor Chair 高度分析

(a) without shoes (b) with shoes (3cm)

Page 14: 20131221   victor gau - kinect 簡介

本公司今年度CITD內容

可鎖定氣壓棒

互動式產品服務系統

利用Kinect來掃描人體尺寸

比對辦公座椅的尺寸,幫使用者篩選符合其身材之辦公座椅。

(a) 標準型氣壓棒解剖圖 (b) 不可旋轉氣壓棒示意圖

可鎖定氣壓棒

+

Page 15: 20131221   victor gau - kinect 簡介
Page 16: 20131221   victor gau - kinect 簡介

“身體就是控制器”

Page 17: 20131221   victor gau - kinect 簡介

Kinect Sensor有兩種

Kinect for XBOX (11/4/2010)

注意:XBOX Bundle裡面的Kinect,並沒有包含電源供應線。因為Kinect在跟XBOX連接的時候,不需要電源供應線。(沒有電源供應線無法在PC上正常驅動。)

Kinect for Windows (2/1/2012)

Page 18: 20131221   victor gau - kinect 簡介

Kinect 可以做什麼?

體感遊戲

醫療復健

遠端控制

試衣鏡

3D Scanner

Page 19: 20131221   victor gau - kinect 簡介

Kinect 可以擷取那些資訊?

Microphone Array (麥克風陣列) (聲音)

Color Image (彩色影像)

Depth Image (深度影像)

Skeleton Tracking (人體骨架追蹤)

Face Tracking (人臉追蹤)

Page 20: 20131221   victor gau - kinect 簡介

KINECT的結構

Page 21: 20131221   victor gau - kinect 簡介

深度影像運作原理(PrimeSense)

IR Image

Depth Image

Page 22: 20131221   victor gau - kinect 簡介

Kinect的偵測範圍

Page 23: 20131221   victor gau - kinect 簡介

Kinect 的視角 & 骨架追蹤

Page 24: 20131221   victor gau - kinect 簡介

Kinect的骨架追蹤

Page 25: 20131221   victor gau - kinect 簡介
Page 26: 20131221   victor gau - kinect 簡介

SDK的選擇

Kinect for Windows SDK 微軟官方SDK

只能用在Windows平台

可以使用C#, C/C++, Python等語言開發

OpenNI (Open Natural Interaction) PrimeSense公司發起 (www.primesense.com)

可以使用在Mac OS, Linux, 跟 Windows

僅能使用C/C++開發

OpenKinect Johnny Chung Lee發起的計畫。

Page 27: 20131221   victor gau - kinect 簡介

如果使用Microsoft的解決方案

安裝Kinect for Windows SDK

安裝Developers’ Toolkit

豐富的範例

選擇使用的語言:C++, C#, Python

如果是使用Python需要安裝PyKinect

Page 28: 20131221   victor gau - kinect 簡介

如何連結Kinect?

加入Microsoft.Kinect組件

在專案的參考(Reference)裡面加入Microsoft.Kinect.dll

加入Microsoft.Kinect命名空間

“using Microsoft.Kinect;”

從KinectSensors裡面存取預設的Kinect

Sensor。

Page 29: 20131221   victor gau - kinect 簡介

Console程式概略架構

using Microsoft.Kinect;

static void Main(string[] args)

{

// 取得預設的Kinect Sensor

KinectSensor sensor = KinectSensor.KinectSensors[0];

// 啟動Kinect Sensor

sensor.Start();

// 填上自己的程式,譬如說將Kinect Sensor的角度歸位。

sensor.ElevationAngle = 0;

// 關閉Kinect Sensor

sensor.Stop();

}

Page 30: 20131221   victor gau - kinect 簡介

視窗程式概略架構(WPF) public MainWindow()

{

InitializeComponent();

Loaded += Window_Loaded;

Unloaded += Window_Unloaded;

}

private void Window_Loaded(object sender, RoutedEventArgs e)

{

sensor = KinectSensor.KinectSensors[0];

if (sensor != null)

{

sensor.ColorFrameReady += Sensor_ColorFrameReady;

sensor.ColorStream.Enable();

sensor.Start();

}

}

Page 31: 20131221   victor gau - kinect 簡介

視窗程式概略架構(WPF) void Window_Unloaded(object sender, RoutedEventArgs e)

{

if (sensor != null)

{

sensor.ColorStream.Disable();

sensor.Stop();

sensor.ColorFrameReady -= Sensor_ColorFrameReady;

}

}

Page 32: 20131221   victor gau - kinect 簡介
Page 33: 20131221   victor gau - kinect 簡介

類似的使用模式

直接取得相關多媒體資料

ColorStream

DepthStream

SkeletonStream

使用EventHandler

ColorFrameReady

DepthFrameReady

SkeletonFrameReady

ex: sensor.ColorStream.OpenNextFrame(0)

Page 34: 20131221   victor gau - kinect 簡介

骨架追蹤 (Skeleton Tracking)

Page 35: 20131221   victor gau - kinect 簡介

Skeleton Tracking Code Snippet void Sensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)

{

using (var frame = e.OpenSkeletonFrame())

{

if (frame != null)

{

Skeleton[] skeletons = new Skeleton[frame.SkeletonArrayLength];

frame.CopySkeletonDataTo(skeletons);

var skeleton = skeletons[0];

if (skeleton != null)

{

var head = skeleton.Joints[JointType.Head];

var rightHand = skeleton.Joints[JointType.HandRight];

var shoulderCenter = skeleton.Joints[JointType.ShoulderCenter];

var hipRight = skeleton.Joints[JointType.HipRight];

var shoulderRight = skeleton.Joints[JointType.ShoulderRight];

}

}

}

Page 36: 20131221   victor gau - kinect 簡介
Page 37: 20131221   victor gau - kinect 簡介

ReconstructMe

Page 38: 20131221   victor gau - kinect 簡介

SKANect

Page 39: 20131221   victor gau - kinect 簡介

Kinect Fusion

Page 40: 20131221   victor gau - kinect 簡介
Page 41: 20131221   victor gau - kinect 簡介

深度影像 IR影像

骨架追蹤 肢體旋轉方向追蹤

Page 42: 20131221   victor gau - kinect 簡介

肌肉受力分析 心跳偵測

臉部表情分析 多人骨架追蹤

Page 43: 20131221   victor gau - kinect 簡介