Kinect for flash新手上路

9,405 views

Published on

第八回AS3讀書會-Kinect for flash新手上路投影片

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,405
On SlideShare
0
From Embeds
0
Number of Embeds
4,353
Actions
Shares
0
Downloads
78
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Kinect for flash新手上路

  1. 1. Kinect to Flash新手上路 林克融
  2. 2. 關於我 • 林克融(阿邪) • 台藝大 古蹟藝術修護學系 • 一個不務正業熱血的開始 • 大一開始碰FLASH製作動畫 • 大四為了玩多媒體互動而開 始研究AS3。 • 雲科大 設計運算所E-mail : sayaku_ling@hotmail.comWeb : http://blog.roodo.com/sayaku 或google sayaku or 阿邪
  3. 3. Kinect發音?啃奶?• 「 Kinect 」 為 kinetics ( 動 力 學 ) 加 上 connection(連接)兩字所自創的新詞彙, 讀音為ki-nect(/kɪn‘ɛkt/),並非con-nect (/kənɛkt/)。 參考資料:http://zh.wikipedia.org/wiki/Kinect
  4. 4. Kinect是什麼?
  5. 5. Kinect構造圖片出處: http://www.techbang.com.tw/posts/2936-get-to-know-how-it-works-kinect
  6. 6. 感應器• 彩色和深度感應鏡頭• 陣列式麥克風• 輔助感應傾斜驅動馬達
  7. 7. 視野角度• 水平視野:57度• 垂直視野:43度• 實體傾斜範圍:± 27度• 深度感應器範圍:1.2m – 3.5m
  8. 8. 資料串流• 深度感應器:320×240 16-bit 30 fps• 彩色攝影機:640×480 32-bit 30 fps
  9. 9. 骨架追蹤系統• 同時辨識6人,包含2人的動作追蹤• 每人能追蹤20個點
  10. 10. 可以做什麼??
  11. 11. 怎麼連接到電腦?
  12. 12. 驅動程式• OpenKinect的libfreenect• OpenNI+SensorKinect• Kinect SDK(官方正式版)
  13. 13. 使用OpenNI Framework
  14. 14. 什麼是OpenNI ?
  15. 15. OpenNIOpenNI=Open Natural Interaction開放式自然互動 資料來源: http://kheresy.wordpress.com/2011/01/19/openni_1st/
  16. 16. • OpenNI 基本上是一個跨平台的「自然互 動」(Natural Interaction) 開放原始碼 架構,提供了一組標準的 API 來針對不同 的裝置、中介軟體來做操作。 資料來源: http://viml.nchc.org.tw/blog/paper_info.php?CLASS_ID=1&SUB_ID=6&PAPER_I D=212
  17. 17. 圖片來源: http://kheresy.wordpress.com/2011/01/19/openni_1st/
  18. 18. 怎麼連接到FLASH ?
  19. 19. Socket server + AS3 library• as3Kinect• Jazztures• flKinect(Mac OS only)
  20. 20. 前置作業
  21. 21. 下載可以執行以 Visual C++ 開發的 應用程式• Microsoft visual c++ 2010 redistributable package• http://www.microsoft.com/downloads/zh- tw/details.aspx?FamilyID=A7B7A05E-6DE6- 4D3A-A423-37BF0912DB84
  22. 22. • OpenNI :OpenNI Framework http://openni.org/• SensorKinect : 支援OpenNI的Kinect驅動 程式他是基於 PrimeSense 官方的版本、 專門針對 Kinect 修改出來的;算是 OpenNI 的一部分,要先安裝 OpenNI 後 才可安裝。 https://github.com/avin2/SensorKinect
  23. 23. NITE• 由 PrimeSense 提供的 OpenNI 的中介軟 體,負責分析 Kinect 抓到的資料,轉換為 人體骨架、手勢等資料。• http://www.primesense.com/?p=515• 授權碼:( 0KOIk2JeIBYClPWVnMoRKn5cdY4= ) 參考資料: http://viml.nchc.org.tw/blog/paper_info.php?CLASS_ID=1&SUB_ID=6&PAPER_I D=212
  24. 24. 下載as3Kinect• as3Kinect OpenNI wrapper http://www.as3kinect.org/download/
  25. 25. as3Kinect• OpenKinect wrapper• OpenNI wrapper• Codelaboratories (NUI) wrapper (不再開發)
  26. 26. OpenNI wrapper• Single socket• Depth Camera. (With user detection).• Skeleton detection
  27. 27. as3Kinect OpenNI wrapper
  28. 28. Demonstration 1 Get Depth
  29. 29. public class GetDepth extends Sprite{ private var as3w:as3kinectWrapper; private var _canvas:BitmapData; private var _bmp:Bitmap; public function GetDepth():void { init(); //將要建構的物件初始化 initListener(); //初始化偵聽事件 } private function init():void { as3w = new as3kinectWrapper(); //建構as3kinectWrapper物件 _canvas = new BitmapData(as3kinect.IMG_WIDTH, as3kinect.IMG_HEIGHT, false, 0xFF000000); //先建構一張空白的點陣圖資料好用來儲存深度影像 _bmp = new Bitmap(_canvas); addChild(_bmp); //將圖片加到場景上 }
  30. 30. private function initListener():void{ as3w.addEventListener(as3kinectWrapperEvent.ON_DEPTH, got_depth); //偵聽取得深度影像事件,只要每取得一次深度影像就會執行 got_depth函式 this.addEventListener(Event.ENTER_FRAME, onRender); //偵聽ENTER_FRAME不斷去執行}private function got_depth(e:as3kinectWrapperEvent):void{ as3w.byteArrayToBitmapData(e.data, _canvas); /* 功用是將從伺服器傳回來Kinect的深度影像的二進位資訊 * 轉成點陣圖資訊再存到_canvas */} //不斷更新private function onRender(e:Event):void{ as3w.getDepthBuffer(); //執行從伺服器抓深度資訊回來}
  31. 31. Demonstration 2 Get Skeleton
  32. 32. • 從伺服器抓回的骨架資訊• as3w.getSkeleton();• 偵聽抓回骨架資訊的事件• as3w.addEventListener(as3kinectWrapperEven t.ON_SKEL, Function);
  33. 33. Thank you !!

×