Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kinect for flash新手上路

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

  • Be the first to comment

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 !!

×