日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【VR】详解 Facebook Oculus团队的手势追踪系统——MegaTrack

發布時間:2024/1/8 windows 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【VR】详解 Facebook Oculus团队的手势追踪系统——MegaTrack 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 一、前言
  • 二、論文分析
    • 1、這篇論文講的啥?
    • 2、MegaTrack和谷歌同類產品的對比:
    • 3、實現過程(共3部分)
      • 3.1、DetNet——檢測手部圖像
      • 3.2、KeyNet——生成手部關鍵點(2.5D)
      • 3.3、Hand Kinematic Model——手部運動模型
    • 4、MegaTrack實際運行流程
    • 5、本論文中,MegaTrack的缺點
  • 遺留的問題

一、前言

  • 本博客是對Facebook Oculus發布的一篇VR方向(手勢追蹤)論文的解讀;
  • Oculus是一家做VR的公司,2014年被FaceBook收購了,本次參考的論文就是FaceBook Oculus團隊的最新論文;
  • 論文2020年7月發表于SIGGRAPH。
  • SIGGRAPH是什么?

    • Special Interest Group for Computer GRAPHICS,計算機圖形圖像特別興趣小組,成立于1967年,可以看作一個論壇或者是會議,內容主打電腦繪圖和動畫制作。

    • 絕大部分圖像相關廠商和游戲制作者都會每年在這個會議上發布自己的作品和科研成果。因此,SIGGRAPH在圖形圖像技術,計算機軟硬件以及CG等方面都有著相當的影響力。

      論文地址:https://research.fb.com/publications/megatrack-monochrome-egocentric-articulated-hand-tracking-for-virtual-reality/

    二、論文分析

    1、這篇論文講的啥?

    現在市面上的VR游戲機,都需要手柄一類的操作桿來獲取玩家手部動作和實時坐標,如下圖:


    而本篇論文中所提到的手勢追蹤,則不要手柄操縱桿之類的外設:


    他這篇論文講的就是——手勢追蹤。而他這個手勢追蹤系統的名稱,叫做MegaTrack。

    2、MegaTrack和谷歌同類產品的對比:

    谷歌也有一個類似的手勢追蹤系統——MediaPipe Hand。

    • MediaPipe Hand采用的是一個攝像頭(非3D攝像頭/深度攝像頭),雖然一個攝像頭無法展示場景的深度,但是谷歌采用了2.5D技術去近似模擬3D。
    • 2.5D是啥什么?在攝像頭輸入圖像中,在大部分的情況下將手腕處或是手掌中心會被設為相對深度的基準點,也就是這個位置的深度視為零。這種表示相對深度的方法被統稱為2.5D表示法。
    • 當然,只有一個固定的攝像頭是肯定無法提取深度信息的,所以團隊使用神經網絡來進行訓練,他們是用深度相機為每一幀圖像打標簽(深度信息),之后測試集使用的是普通相機。

    有了深度的基準點,接下來的問題變成2.5D表示法要怎么近似真實3D位置?,F在我們有:

  • 各個點在影像上的2D位置;
  • 各個關鍵點的相對深度。
  • 這時候只要再假設手骨長度,將2D的預測與相對深度以幾何投影方式投到3D空間,并放置在手骨長度恰好等于假設值的3D位置上,這樣就完成了3D手姿態的近似。
  • 2.5D 映射為 3D 過程如下圖:

    再說本文的主角MegaTrack:

    • MegaTrack采用了四個攝像頭用來感知手部姿態:
    • 使用者的手至少會落在兩顆相機的視野中:

    由于MegaTrack使用了4個攝像頭,所以相比于谷歌的解決方案,具有以下優勢:

  • 能夠更好的解決“遮蓋問題”(手被物品遮蔽或自我遮蔽 ,比如說背面拳頭事實上,遮蔽是所有基于視覺方法的難題,這點如果不考慮非視覺的輸入,就只有增加更多不同視角的相機輸入了)
  • 在大多數時候他們會使用 多相機算法 來抓取手的位置,只有在極少的位置使用單一相機算法。(比如手的位置特別的遠離身體,以至于只有一個攝像頭能捕捉到手的姿勢…)
  • 3、實現過程(共3部分)

    MegaTrack的實現步驟,可以分為三大步:

  • Detection (DetNet)——手部探測網絡
  • Keypoint Network (KeyNet)——手勢關鍵點生成網絡
  • Hand Kinematic Model(手勢估計)——建立手部運動模型
  • 系統的實現思路:

    • 使用普通攝像頭+神經網絡來達到深度攝像頭的效果,獲取三維坐標,再進行手部建模。

    3.1、DetNet——檢測手部圖像

    • 團隊使用了260萬張照片來訓練DetNet時別取手部圖像,學習率為0.001。

    DetNet層的輸入:

    • 四個相機的原始視頻圖像;
    • 之后,在原始視頻中識別出手和附近的圖像,之后將圖像裁剪成正方形(方便網絡計算);

    最終DetNet層輸出:

    • 只包含手的正方形視頻。

    3.2、KeyNet——生成手部關鍵點(2.5D)

    KeyNet使用了200萬張圖片來訓練網絡,學習率為0.025,來預測手部關鍵點的2.5D坐標。

    • 注意,他之所以只生成2.5D坐標,是因為普通魚眼相機只能生成2D坐標,即使團隊使用神經網絡為每個像素點附加該點的深度信息(增加了一維熱圖)并最終能做到手部模型的最終生成,但是這種方式并沒有真正獲取像素點的3D坐標,而這種2D坐標+相對深度坐標的方法,叫做2.5D近似法。
    • 換句話說,如果現在深度相機和普通相機一樣又便宜又耐用有靈巧,那么,也就沒有KeyNet的存在意義了。

    KeyNet層的輸入:

    • 輸入:1、經過初步處理的手部影像;2、21個用于參考的3D手勢點;
    • 注意:這21個點來源自上一輪的第三步驟——Hand Kinematic Model,使用上一輪生成的手部模型,來輔助下一輪的輸入。

    KeyNet層的輸出:

    • 輸出21個我們剛剛預測出來的2.5D 手部關鍵點坐標,具體表現形式為1、2D熱圖和2、對應的一維深度熱圖:

    補充,21個參考點的輸入是KeyNet一大特色:

    • MegaTrack KeyNet輸入的這組21個3D 點最大的效果在于穩定模型的預測,主要解決以下擾動:
      • 當手在重疊的相機視圖之間移動時,預測的質量會降低;
      • 手指交叉咬合時;
      • 在手部或者VR眼鏡出現強烈抖動;
    • 個人理解,把我上一輪生成的關鍵點用來輔助下一輪關鍵點的預測。畢竟有上一輪的參考點,就可以重點觀察新關鍵點的特點和分布。
    • 對于KeyNet來說,他最終輸出的21個點,其中90%其實還是來自于上一步輸入的3D點,只有剩下的10%的關鍵點的預測才是由KeyNet新生成的,系通過這種方法來優化計算速度,不至于每幀都產生大量的計算。

    3.3、Hand Kinematic Model——手部運動模型

    Hand Kinematic Model的輸入:

    • Hand Kinematic Model使用前兩幀KeyNet輸出的21個2.5D 的手部關鍵點,來生成本幀的手部3D模型;
    • 對于輸入的兩幀數據,將計算兩幀之間的殘差,來優化第三幀的生成。

    具體優化了三個殘差項:

    1、將前兩幀的21個3D點的前2D數據投影回相機空間,與這一幀KeyNet預測的2D 位置坐標越接近越好;

    2、計算前兩幀21個3D點的相對深度,與這一幀KeyNet預測的depth distance越接近越好;

    3、預測這一幀與上一幀的點越接近越好,即smooth term。(注意,這里可不是這一幀和前兩幀做對比了,而是只和上一幀做對比)

    Hand Kinematic Model的輸出:

    • 最終生成由26個自由度組成的3D的手部模型(這一層最終成像);
    • 并且保存這個手模的scale,保存使用者的信息。

    另外,每當一個新的使用者使用該設備,整個系統會先進入kinematic model scale模塊,在預存的手模庫里查看是否是該設備的老用戶,并進行手部姿態的校正。

    4、MegaTrack實際運行流程

    以下流程是根據論文中提到的內容和我自己的理解結合而來:

  • 首先,在不同camera上跑DetNet,直到找到使用者的手。
  • 將camera的影像通過KeyNet和Hand Kinematic Model得到第一個3D pose手部模型。
  • 隨后,利用這個3D pose投影到其他camera中找到別的camera中的手。這個方法減少了多次跑DetNet所需的運算資源(相當于告訴DetNet一個手的大致位置,從而不需要讓DetNet進行全圖搜索)。
  • 接下來進入手部追蹤模式,每次進行KeyNet的時候,插入上一幀的Hand kinematic model,以推測下一幀中手可能會出現的位置,更進一步的減少運行DetNet的運算需求。
  • 運行100幀之后,這個手的scale會被儲存下來,直到VR眼鏡被放下才會清除。
  • 大多數的情況下,三大層中只有KeyNet會持續地運行,DetNet只有在丟失手部追蹤(比如手突然抽走,再突然出現在另一個位置)的情況下才會被重新啟動
  • 另外,為了壓低運算量,即使同一支手存在于超過兩??個camera的視角內,MegaTrack還是只會跑其中兩只camera。
  • 5、本論文中,MegaTrack的缺點

  • 在雙手有復雜交叉的時候,識別會失效
  • 當收的方向并不是以自己的方向為中心時,識別會失敗
  • 手和現實物體發生交互式,識別會失敗
  • 遺留的問題

    1、至于為什么不直接用VR眼鏡上的四個攝像頭生成3D坐標?

    具體原因論文里沒說,我也沒查到。個人猜測是這樣生成的3D坐標效果不好?所以最終還是要考先模擬出2.5D坐標,之后再往3D上面靠。

    3、什么非要使用魚眼攝像頭?因為更精確么?

    因為魚眼攝像頭的視野足夠大,如果不用魚眼手很容易超出視野范圍

    8、如何完成的手部追蹤???

    總結

    以上是生活随笔為你收集整理的【VR】详解 Facebook Oculus团队的手势追踪系统——MegaTrack的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。