美顏SDK架構技術分析

秋2305998853發表於2022-05-24

美顏 SDK發展至今,功能早已不同於往日,相較於開始最基礎的美白、磨皮,發展到現在的濾鏡、3D面具等各種不同的功能。在這些新興功能的背後,離不開強大的 渲染能力 以及 美顏演算法。那麼,一款優質的美顏 SDK應該如何搭建自己的底層框架呢?下文小編將分享一下相關經驗。

美顏SDK架構技術分析


技術架構

1、 AI計算層

主要用於人臉檢測、肢體追蹤、手勢識別等需要人工智慧輔助的功能,從這個層面完全自研難度確實非常大。比如美型功能,完全就是依賴於人臉檢測和追蹤技術進行大眼瘦臉操作的,一般除了非常專業的美顏 SDK 提供商,這些 AI層面技術還是向具備AI能力企業採購。

2、 渲染層

這是 最核心的一層了,渲染首先離不開 OpenGL,利用OpenGL圖形渲染技術打造一個引擎式的渲染管線。將原影片資料 傳送至 引擎, 然後 經過各個功能的 Filter,向 終點傳輸 相應資料格式的資料即可。 要知道 這裡每層 Filter,又會有OpenGL渲染管線,分為一條小流水線進行座標轉換和著色器運算。座標轉換在CPU中進行計算,送入定點著色器,再送入片元著色器從而利用演算法在GPU中實現我們需要的渲染效果。這一層做好流水線上各個filter的排序尤為重要。

3、 封裝層

封裝層比較好 理解, 既然 SDK ,就要有 API介面讓實現業務邏輯的 並行 呼叫。這一層上,安卓是 Java,iOS是OC或者Swift,Win是C/C++,Unity是C#,並不統一,所以要依據不同平臺進行介面封裝。這一層要做好OpenGL上下文、執行緒的處理,否則呼叫時很容易出現白屏,閃屏等現象。

美顏SDK架構技術分析


其次, 美顏 SDK 要具備一些特點 這樣 才能 適配 於目前大多數直播、影片社交平臺日常需求。

1、多端共用

現如今直播已經大多數都是基於安卓和 iOS的移動端直播,也有部分遊戲主播或者專業的帶貨主播使用PC直播,那麼跨平臺就成為了衡量美顏 SDK 的標準之一。同樣的渲染 Pipeline和著色器,要能夠多端共用, 如果所有分端都要單獨開發的話,那將徒增巨大的工作量。

2、 低能耗

目前直播、影片等 社交 應用 基於的推拉流音影片 SDK非常耗能,因為它負責高併發和資料分發。所以,美顏渲染應儘可能的減少消耗,否則畫面將非常卡頓。

3、 易擴充套件

如今 使用者對於 美顏功能需求 日新月異 來形容也不為過,所以一款優質的美顏 SDK必須易擴充套件,這樣才可以應對後期不斷更替的市場需求。

 

以上,就是從技術層面對 美顏 SDK 的架構分析, 如果您想了解更多美顏知識,請關注我。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69951589/viewspace-2896804/,如需轉載,請註明出處,否則將追究法律責任。

相關文章