狠狠撸

狠狠撸Share a Scribd company logo
Kinect to Flash新手上路
        林克融
关於我
                     ? 林克融(阿邪)
                     ? 台藝大 古蹟藝術修護學系
                     ? 一個不務正業熱血的開始
                     ? 大一開始碰FLASH製作動畫
                     ? 大四為了玩多媒體互動而開
                       始研究AS3。
                     ? 雲科大 設計運算所
E-mail : sayaku_ling@hotmail.com
Web : http://blog.roodo.com/sayaku 或google sayaku or 阿邪
Kinect發音?啃奶?
? 「 Kinect 」 為 kinetics ( 動 力 學 ) 加 上
  connection(連接)兩字所自創的新詞彙,
  讀音為ki-nect(/k?n‘?kt/),並非con-nect
  (/k?n'?kt/)。




        參考資料:http://zh.wikipedia.org/wiki/Kinect
碍颈苍别肠迟是什麼?
Kinect構造




圖片出處: http://www.techbang.com.tw/posts/2936-get-to-know-how-it-works-kinect
感應器
? 彩色和深度感應鏡頭
? 陣列式麥克風
? 辅助感应倾斜驱动马达
視野角度
?   水平視野:57度
?   垂直視野:43度
?   實體傾斜範圍:± 27度
?   深度感應器範圍:1.2m – 3.5m
資料串流
? 深度感應器:320×240 16-bit 30 fps
? 彩色攝影機:640×480 32-bit 30 fps
骨架追蹤系統
? 同時辨識6人,包含2人的動作追蹤
? 每人能追蹤20個點
可以做什麼??
怎麼连接到电脑?
驅動程式
? OpenKinect的libfreenect
? OpenNI+SensorKinect
? Kinect SDK(官方正式版)
使用OpenNI Framework
什麼是OpenNI ?
OpenNI


OpenNI=Open Natural Interaction開放式自然互動




   資料來源: http://kheresy.wordpress.com/2011/01/19/openni_1st/
? OpenNI 基本上是一個跨平台的「自然互
  動」(Natural Interaction) 開放原始碼
  架構,提供了一組標準的 API 來針對不同
  的裝置、中介軟體來做操作。




 資料來源:
 http://viml.nchc.org.tw/blog/paper_info.php?CLASS_ID=1&SUB_ID=6&PAPER_I
 D=212
圖片來源: http://kheresy.wordpress.com/2011/01/19/openni_1st/
怎麼連接到FLASH ?
Socket server + AS3 library
? as3Kinect
? Jazztures
? flKinect(Mac OS only)
前置作业
下載可以執行以 Visual C++ 開發的
      應用程式


? Microsoft visual c++ 2010 redistributable
  package

? http://www.microsoft.com/downloads/zh-
  tw/details.aspx?FamilyID=A7B7A05E-6DE6-
  4D3A-A423-37BF0912DB84
? OpenNI :OpenNI Framework
  http://openni.org/

? SensorKinect : 支援OpenNI的Kinect驅動
  程式他是基於 PrimeSense 官方的版本、
  專門針對 Kinect 修改出來的;算是
  OpenNI 的一部分,要先安裝 OpenNI 後
  才可安裝。
  https://github.com/avin2/SensorKinect
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
下載as3Kinect
? as3Kinect OpenNI wrapper
  http://www.as3kinect.org/download/
as3Kinect
? OpenKinect wrapper
? OpenNI wrapper
? Codelaboratories (NUI) wrapper (不再開發)
OpenNI wrapper
? Single socket
? Depth Camera. (With user detection).
? Skeleton detection
as3Kinect OpenNI wrapper
Demonstration 1

  Get Depth
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);
     //將圖片加到場景上
  }
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();
    //執行從伺服器抓深度資訊回來
}
Demonstration 2

 Get Skeleton
Kinect for flash新手上路
? 從伺服器抓回的骨架資訊
? as3w.getSkeleton();

? 偵聽抓回骨架資訊的事件
? as3w.addEventListener(as3kinectWrapperEven
  t.ON_SKEL, Function);
Thank you !!

More Related Content

Kinect for flash新手上路