亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Augmented Faces API – 面部地標是如何生成的?

Augmented Faces API – 面部地標是如何生成的?

慕碼人8056858 2022-07-06 18:56:49
我是一名 IT 學生,想了解(了解)更多關于ARCore 中的增強面孔 API的信息。我剛剛看到了ARCore V1.7 版本和新的Augmented Faces API。我得到了這個 API 的巨大潛力。但我沒有看到任何關于這個主題的問題或文章。所以我在質疑自己,這里有一些關于這個版本的假設/問題。假設ARCore 團隊正在使用(如 Instagram 和 Snapchat)機器學習,在整個面部生成地標??赡苁荋OG人臉檢測..問題ARCore 如何在智能手機上的用戶臉上生成 468 個點?即使在源代碼中也無法找到任何回應。他們如何能夠從一個簡單的智能手機相機中獲得深度?如何拒絕人臉檢測/跟蹤,對自定義對象或身體的其他部位(如手)?因此,如果您對此主題有任何建議或意見,讓我們分享!
查看完整描述

1 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

  1. ARCore 新的Augmented Faces API用于不帶深度傳感器的前置攝像頭,提供高質量的468-point 3D 標準網格,允許用戶將動畫蒙版、眼鏡、皮膚修飾等效果附加到他們的臉上。網格提供坐標和區域特定的錨點,可以添加這些效果。

我堅信在 ARCore 1.7 的引擎蓋下借助計算機視覺算法生成面部標志檢測。同樣重要的是,您可以通過創建啟用“前置攝像頭”和增強面“網格”模式的 ARCore 會話來開始使用 Unity 或 Sceneform。請注意,使用前置攝像頭時,平面檢測等其他 AR 功能目前不可用。AugmentedFaceextends Trackable,因此可以像平面、增強圖像和其他 Trackable 一樣檢測和更新人臉

http://img1.sycdn.imooc.com//62c56a8d0001e4df06630193.jpg

如您所知,2 多年前,Google 發布Face API了執行面部檢測的功能,該功能可在圖片中定位人臉,以及他們的位置(他們在圖片中的位置)和方向(他們面對的方向,相對于相機)。人臉 API 允許您檢測地標(臉上的興趣點)并執行分類以確定眼睛是睜著還是閉著,以及臉部是否在微笑。人臉 API 還檢測和跟蹤運動圖像中的人臉,這稱為人臉跟蹤。

因此,ARCore 1.7 只是從 Face API 中借用了一些架構元素,現在它不僅可以檢測面部地標并為其生成 468 個點,還可以以 60 fps 的速度實時跟蹤它們并將 3D 面部幾何圖形粘貼到它們上。

請參閱 Google 的人臉檢測概念概述。

http://img1.sycdn.imooc.com//62c56a980001d76d06600185.jpg

計算由移動 RGB 相機拍攝的視頻中的深度通道并不是一門火箭科學。您只需將視差公式應用于跟蹤的特征。因此,如果靜態對象上特征的平移幅度非常高——被跟蹤對象更靠近相機,而如果靜態對象上特征的幅度非常低——被跟蹤對象離相機更遠。十多年來,這些計算深度通道的方法對于The Foundry NUKE和Blackmagic Fusion等合成應用程序來說非常常見。現在,在 ARCore 中可以使用相同的原理。


您不能拒絕對自定義對象或身體的其他部位(如手)進行人臉檢測/跟蹤算法。僅針對面孔開發的增強面孔 API 。


下面是激活增強面孔功能的 Java 代碼的樣子:


// Create ARCore session that supports Augmented Faces

public Session createAugmentedFacesSession(Activity activity) throws 

                                                      UnavailableException {


    // Use selfie camera

    Session session = new Session(activity, 

                                  EnumSet.of(Session.Feature.FRONT_CAMERA));


    // Enabling Augmented Faces

    Config config = session.getConfig();

    config.setAugmentedFaceMode(Config.AugmentedFaceMode.MESH3D);

    session.configure(config);

    return session;

}

然后獲取檢測到的人臉列表:


Collection<AugmentedFace> faceList = session.getAllTrackables(AugmentedFace.class);

最后渲染效果:


for (AugmentedFace face : faceList) {


    // Create a face node and add it to the scene.

    AugmentedFaceNode faceNode = new AugmentedFaceNode(face);

    faceNode.setParent(scene);


    // Overlay the 3D assets on the face

    faceNode.setFaceRegionsRenderable(faceRegionsRenderable);


    // Overlay a texture on the face

    faceNode.setFaceMeshTexture(faceMeshTexture);

    

    // .......

}


查看完整回答
反對 回復 2022-07-06
  • 1 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號