映客直播中 人臉特效是基於人臉識別還是AR?有什麼可以使用的SDK么?

在直播中可以添加這樣的特效,可以準確的識別人臉器官的位置,即使頭部扭動也可有相應的角度上的自適應,這個有什麼來源的sdk可以研究接入么,這個屬於人臉識別還是AR呢?


人臉識別,OpenCV


我我我

您可以通過以下方式聯繫開為科技:
QQ:2590718645
郵箱:contact@kiwiar.com
手機:13851749125

官方網站:http://kiwiar.com
SDK免費試用Demo鏈接:http://www.kiwiar.com/demo


人臉識別和AR是不同概念的兩件事情,AR是結果,人臉識別是手段

嚴格來說映客這種應該叫「使用人臉識別進行註冊的AR」

不知道在你的概念里AR是什麼,反正我覺得你好像對AR有誤解


本人來說說該這是如何實現的吧。關鍵字:人臉檢測+圖片 + opengles。

我來說說Android上面是如何實現的吧。通過Camera介面獲取預覽數據,然後將圖像所在的Surface綁定到opengles 的EGLSurface中,opengles通過從Surface中讀取EXTERNAL_OES類型的紋理Texture到幀緩衝區Framebuffer中(即將相機的圖像幀讀入FBO中),然後就是通過opengles將png 或者其他格式的圖片貼紙讀入生成相應的紋理Texture。有了貼紙的Texture,接下來就是將貼紙繪製到幀緩衝區Framebuffer中。繪製完成,通過eglSwapBuffers將EGLSurface中渲染完成的幀交換顯示到前台,這就是問題中所貼出來的預覽界面。

上面流程幾乎所有有貼紙特效的相機、直播推流端等應用都基本走的流程,不管是不是用ffmpeg做推流,特效這塊,基本上都需要接入opengles來做渲染,一方面是減少CPU使用,降低能耗,降低發熱量,另一方面是渲染速度,gpu專門做渲染這一塊的,在實時渲染方面,CPU軟實時渲染的效率是完全不夠的。這個過程需要什麼支撐?那就是人臉檢測技術,我將貼紙紋理渲染到預覽幀中,需要拿到準確的人臉關鍵點,這個是必須的。人臉檢測基本上都是用opencv來檢測的,也有第三方的SDK可以接入,比如Face++,美顏相機等存在貼紙特效的應用幾乎都在用這個,可以免費試用,自己從頭開發的話,準確率和檢測時間是個大問題,人臉關鍵字檢測的演算法比較成熟了,但傳統的演算法跑在手機上還是做一些調整的,尤其是這種實時渲染的,得至少控制在一幀(16ms)內,因為除了檢測,我們還需要做其他的渲染,比如美顏、美白、磨皮、瘦臉等,哪怕是用opengles來做,也是勉強夠用而已。舉個例子,美顏相機的貼紙相機,在1080P解析度的手機上,默認Texture 的大小也僅僅是480 x 864(存在虛擬鍵)、540 x 960(不存在虛擬鍵),也就是說,預覽幀的解析度是這麼大的,而不是屏幕的1080P(目前市面上的美顏類相機,預覽幀(Camera PreviewSize)幾乎沒有達到1080P的,都是渲染完成後在放大的。除了美顏相機, Camera360的預覽texture是764 x 1024, 全屏是720 x 1280,但顯示則是1080 x 1440、1080 x 1920,各家的相機流程差不多,渲染方案的話有單FBO 和多FBO兩種,Camera360 就是單一FBO渲染的,美顏相機則是多FBO渲染的)。渲染完成後再放大顯示到屏幕上的,因為美顏相機處理做貼紙,還做了實時美顏、磨皮、美白、瘦臉、瘦下巴、放大眼睛等操作,這些操作都是非常耗時的,哪怕是這樣,美顏相機在紅米Note2 上渲染出來的實時預覽幀率也只面前到20幀,Nexus 5X 實時預覽幀率大約23幀左右。大部分手機的預覽幀率最大支持值在30fps左右,能夠拿來做渲染的時間還是非常不足的。

那麼有沒有相關的開源項目呢?有的,比如比較出名的相機項目MagicCamera就是其中一個,github地址: wuhaoyu1990/MagicCamera 你可以參考下。貼紙跟濾鏡的渲染過程是一樣的,其中多了個人臉關鍵點檢測,也就是說,在用opengles繪製貼紙之前,需要做相關的定位、貼紙的三維位置調整,比如人臉朝向,貼紙要跟著人臉朝向繪製,否則方向是不對的。人臉朝向的話,也有專門的演算法,但是如果要做到實時渲染,那麼在人臉檢測之後再做人臉朝向的話,效率就太低了,這裡面可以用檢測的關鍵點簡單結算得到朝向的,比如簡單地用人的眼睛位置,通過Math.atan2(distX, distY),通過眼睛中心點的距離(distX, distY)算方位角,雖然準確率不夠,而且考慮的因素也不全,但在實時渲染預覽情況下也沒有更好的辦法,因為你首先得保證預覽的幀率。得到人臉朝向的方位角後,我們就可以拿著這個方位角對貼紙的位置繞Y軸旋轉,通過對投影矩陣旋轉得到三維物體在二維平面上的坐標位置,再對貼紙進行渲染。這樣就能夠做到立體感的貼紙了。

基本上做完上面的一些處理,


非廣告貼,個人觀點,AR是個很廣的領域,人臉識別也是個很廣的領域,直播用的貼紙特效,只是這兩者結合在一起,不能說屬於誰。往往AR其實就是識別演算法加上渲染來實現的。


人臉檢測+人臉特徵點定位+貼紙渲染,俗稱動態貼紙,人臉對齊SDM - huneng1991的專欄 - 博客頻道 - CSDN.NET,渲染基本上都有一套框架,要熟悉遊戲引擎開發


基於人臉檢測和人臉追蹤,進行人臉關鍵點的捕捉和追蹤。這個人臉追蹤器返回值中具不僅具有特徵點追蹤,也可對人臉三個偏轉角做出返回,因此貼紙渲染時頭部扭轉一定角度也會自適應。談不上是AR,其實只是人臉追蹤和渲染的結合。


我司有專門針對直播平台而做的一系列的解決方案,其中就包括人臉特效,運用人臉識別技術,對面部眼睛、眉毛、嘴角等關鍵位置128個特徵點進行精準檢測,實現磨皮、美白、瘦臉、濾鏡及人臉貼紙特效。實現這些功能只需將SDK接入手機APP或者pc端。可以參考此鏈接文章直播流量紅利已消失,AI技術布局下半場才是王道,同時想要了解更多信息 可登陸我司官網,搜索極限元即可,也可以打網站上的諮詢電話進行詳細的了解。


當然是基於人臉識別啦。藉助人臉識別,讓貼紙隨臉而動~

塗圖直播SDK就是專門提供這類解決方案的,除了動態貼紙,還支持美顏、實時濾鏡等功能,除此之外,還有實時鑒黃,推流、轉碼、CDN等,有興趣的話可以了解一下,官網:tusdk.com


實現此類創意的基礎,就是「人臉(面部)識別技術」。這是一種以人臉(面部)為標識信息的識別方式,主要包括人臉檢測、人臉追蹤,AR特效追蹤匹配與渲染;通過檢測四十九個關鍵點,精準的定位面部區域,包括眉毛、眼睛、鼻子、嘴巴以及面部輪廓等,同時支持一定程度的遮擋和多角度人臉。

人臉識別技術一度廣泛應用於金融認證和智能服務行業,支付寶在去年年末上線的刷臉功能就是其中的典型應用;而人臉識別和增強現實技術的結合,又產生了更為神奇的化學反應——2014 年歐萊雅發布了第一款以虛擬試妝為主題的應用程序「千妝魔鏡」,打開了面部實時互動的新大門:從妝容到眼鏡、再到繁雜的效果面具,虛擬試戴正在逐漸走進我們的生活。

讓人臉識別更有商業意義的是表情(分析)識別技術:這種基於人臉五官的細微及精準的位移分析,能提供更穩定的識別特性,幫助企業實現更多更好的創意,更重要的是可以滿足企業的高精度需求,讓試妝試戴具有更精確的識別;相比」拍完照片後、給照片上的人臉進行眼鏡或者妝容的疊加」的方式,表情識別讓用戶體驗更流暢、實時交互更方便。


人臉檢測+關鍵點檢測,要求速度要快,模型要小,至於動畫,可以渲染+濾波

並沒有AR

當然 回顧知名遊戲精靈寶可夢 可以說 很像了


我們公司做的呀!哈哈。基於人臉識別做的貼紙動畫!opengl弄的


基於人臉識別。


推薦閱讀:

開源人臉識別軟體有哪些?
鎚子新機堅果 pro2 的人臉識別跟 iPhone X 的有什麼區別?
使用caffe來做人臉識別?
談到人臉識別技術,有哪些常見的誤區?
目前的人工智慧可以打「顏值」分嗎?

TAG:iOS開發 | Android開發 | 人臉識別 | 增強現實AR |