Kinect for Windows v2 C++ 程式開發


本文是整理中的 Kinect for Windows v2 的 C++ 程式開發的索引頁。之後有更新會把新的文章也加進來。

Kinect Fusion

Visual Gesture Builder 工具

其他:

對「Kinect for Windows v2 C++ 程式開發」的想法

  1. 你好~我現在目前在用vgb寫指定動作的遊戲,請問該如何增強他的動作辨識的準確性?謝謝

  2. 這裡有幾個問題想請教
    1.pDepthFrame->CopyFrameDataToArray(uDepthPointNum, pDepthPoints);pDepthPoints他的矩陣值是0正常嗎?
    2.如果說問題1正常if (pCoordinateMapper->MapDepthFrameToCameraSpace(uDepthPointNum, pDepthPoints, uDepthPointNum, pDSPoints) == S_OK)這個有成功編譯過而且取到X,Y,Z的值但是if (pCoordinateMapper->MapColorFrameToDepthSpace(uDepthPointNum, pDepthPoints, uColorPointNum, pPointArray) == S_OK)這個卻失敗,而失敗原因是讀取存取違規this->pDepthFrameReader-> 為 0x41D80000。

    Liked by 1 person

    • 1. 你是指他全部的值都是 0?還是某些點是 0?是每一張都是 0?還是只有第一張全是 0?
      個人建議你先把這些問題確認一下。

      2. 單就這樣的問題無法進行判斷。

      3. 建議請根據你是以哪個範例程式撰寫/改寫的,直接回應在該文,這樣比較容易知道你到底在試圖做什麼。

      • 我是根據2 3 5章所改寫,首先我將KInect包成class後利用多執行續取深度影像與彩色影像,當我需要某些點時我會呼叫pCoordinateMapper->MapColorFrameToDepthSpace(uDepthPointNum, pDepthPoints, uColorPointNum, pPointArray) == S_OK然後經行取點的動作

        • 老實說,不知道你怎麼改的,無法判斷問題到底在哪。
          這邊只能建議你自己下去檢查出問題的地方,附近有用到的變數、物件狀態是否都符合預期了。

          以「存取違規」這個錯誤來說,通常就是你寫/讀到不該碰的地方,比如說試圖去存取陣列範圍外的資料、或是已經被釋放的資料。

  3. 請教一下,Kinect都是用CPU處理嗎?可以改用GPU之類的嗎?(我指的是深度影像與彩色影像)

    • 如果是 Kinect for Windows SDK 提供的現成功能,那基本上就是看微軟怎麼實作的;實際上,他的部分功能,已經有使用 GPU 來計算了。

      而如果自己的後續處理,那就看自己要怎麼寫了。

      Liked by 1 person

      • 從Kinect拿資料很耗CPU,請問有方法改善嗎?
        可以請教如何將深度影像變成彩色的漸層?

        • 1. 你要先釐清到底耗在哪,如果是沒有處理過的 busy waiting 的話,那看起來 CPU 使用率會很高;不過如果有你只寫單一執行序的話,其實影響不大。
          而要解決的話,基本上就是改成事件導向、或是用 timer 來控制。

          2. 自己逐點去計算,看你要怎麼把深度值對應到彩色。

  4. Heresy你好
    當手指與臉部重疊時
    手指的辨識出現問題,
    手指辨識有兩部分,一是膚色辨識,二是深度

    但是有些動作是手指貼在臉上的動作(可能與臉部重疊)
    這樣一來手與臉部的深度跟膚色也一樣了
    想問問看Heresy有沒有什麼意見呢

  5. 所以用V1就不能用您的教學來做喽?請問您有做V1的教學嗎??還是有相關網址?謝謝您

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料