視頻實時自然美顏, 無懼素顏上鏡

来源:https://www.cnblogs.com/hmscore/archive/2023/01/10/17039405.html
-Advertisement-
Play Games

華為HMS Core 視頻編輯服務依托自身AI技術的核心優勢,在最新版本HMS Core 6.8.0中上線了全新的視頻美顏功能,能對指定圖片或視頻中的人臉實現磨皮、美白、大眼、瘦臉的美顏效果,適用於直播、相機、視頻剪輯、圖片處理等場景中,打造獨特自然的美顏效果。 HMS Core視頻美顏功能在技術上 ...


華為HMS Core 視頻編輯服務依托自身AI技術的核心優勢,在最新版本HMS Core 6.8.0中上線了全新的視頻美顏功能,能對指定圖片或視頻中的人臉實現磨皮、美白、大眼、瘦臉的美顏效果,適用於直播、相機、視頻剪輯、圖片處理等場景中,打造獨特自然的美顏效果。

HMS Core視頻美顏功能在技術上使用CPU+NPU+GPU異構並行框架,支持實時美顏處理,演算法跑得更快但系統功耗降低,50fps+端到端高效處理,能在10ms內完成視頻中最多2個人臉(面積占比較大的2個人)的處理(數據源於華為內部測試)。使用855點稠密五官定位,精準識別人臉,避免人臉移動過快或角度過大時,美顏效果變形。針對美顏效果,採用面部精細分區,結合中性灰自然磨皮,更加自然真實。

另外,為滿足用戶的更多個性化需求,華為開放磨皮、美白、大眼、瘦臉美顏效果的多級調節功能,用戶可根據需求自行調節效果,助力開發者以較低成本開發優秀的視頻美顏效果。

美顏效果

下麵我們就一起來實操一下如何接入華為視頻編輯服務,實現視頻美顏功能。

開發步驟

1. 開發準備

詳細準備步驟可參考華為開發者聯盟官網

2. 集成準備

設置應用的鑒權信息。可以通過api_key或者Access Token來設置應用鑒權信息。

(推薦)通過setAccessToken方法設置Access Token,在應用啟動時初始化設置一次即可,無需多次設置。

HVEAIApplication.getInstance().setAccessToken("your access token");

獲取Access Token可參見基於OAuth 2.0開放鑒權客戶端模式。

通過setApiKey方法設置api_key,在應用啟動時初始化設置一次即可,無需多次設置。

HVEAIApplication.getInstance().setApiKey("your ApiKey");

當您在AppGallery Connect上註冊您的應用時,會給您的應用分配api_key,可參見添加當前應用的AppGallery Connect配置文件

註意:請勿將api_key硬編碼在代碼中,同時不要將api_key存儲在應用的配置文件中。建議您將api_key存儲在雲側,運行時獲取。

3. 美顏功能集成

// 創建美顏演算法類實例
HVEAIBeauty hveaiBeauty = new HVEAIBeauty();
 
// 初始化美顏AI演算法引擎
hveaiBeauty.initEngine(new HVEAIInitialCallback() {
    @Override
    public void onProgress(int progress) {
        // 初始化美顏AI演算法引擎進度
    }
    @Override
    public void onSuccess() {
        // 初始化美顏AI演算法引擎成功
    }
    @Override
    public void onError(int errorCode, String errorMessage) {
        // 初始化美顏AI演算法引擎失敗
    }
});
 
// 初始化美顏演算法opengl運行環境,需在opengl渲染線程里調用
hveaiBeauty.prepare();
 
// 設置需美顏處理的紋理的寬高(textureWidth:紋理的寬;textureHeight:紋理的高),初始化或紋理有變化後調用,需在opengl渲染線程里調用
// resize參數為需要處理的紋理寬高,取值需要大於0
hveaiBeauty.resize(textureWidth, textureHeight);
 
// 美顏參數配置,磨皮,美白,瘦臉,大眼,亮眼, 美顏程度範圍:[0, 1]
HVEAIBeautyOptions options = new HVEAIBeautyOptions.Builder().setBigEye(1)
    .setBlurDegree(1)
    .setBrightEye(1)
    .setThinFace(1)
    .setWhiteDegree(1)
    .build();
 
// 更新美顏參數,初始化或有修改後更新
hveaiBeauty.updateOptions(options);
 
// 進行美顏處理,在opengl渲染線程里每幀調用,(inputTextureId:輸入的紋理ID;outputTextureId:輸出的紋理ID)
// 請確保輸入正向朝上的人臉的紋理。
int outputTextureId = hveaiBeauty.process(inputTextureId);
 
// 釋放美顏AI演算法引擎
hveaiBeauty.releaseEngine();

HMS Core視頻編輯服務除了支持視頻美顏,還提供基礎視頻編輯、專屬濾鏡、一鍵染髮、人物追蹤、AI著色、動態照片、精彩片段、一鍵動效、人臉遮擋、一鍵微笑、目標分割等視頻創作能力,開發者可依據應用場景,在App中輕鬆完成視頻功能的集成。

瞭解更多詳情>>

訪問華為開發者聯盟官網
獲取開髮指導文檔
華為移動服務開源倉庫地址:GitHubGitee

關註我們,第一時間瞭解 HMS Core 最新技術資訊~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 病情描述 打開Ubuntu準備工作,結果黑屏,等了一會(幾分鐘),通過ssh連上,使用df -h查看磁碟占用,發現/var目錄空間被占滿了,上圖: 病情分析 先top查看資源占用,如下圖所示: 這不,病竈找到了,cupsd乾的好事,cpu直接拉滿!問題來了,cupsd是個什麼玩意?百度百科描述如下: ...
  • 大家好,我是哪吒。 三分鐘你將學會: MongoDB連接池的使用方式與常用參數 查詢五步走,能活九十九? MongoDB索引與MySQL索引有何異同? MongoDB事務與ACID 什麼是聚合框架? 在最開始接觸MongoDB的時候,是通過 MongoDatabase database = new ...
  • Mybatis IDEA創建一個空項目,然後添加Maven模塊 maven項目路徑如下所示 --項目名 --/src --/main #存放主程式java代碼和資源 --/java #java代碼 --/resources #配置文件和資源等,放到這裡的文件等同於放到了根目錄下 --/test #測 ...
  • 測試的覆蓋通常是指需求範圍的執行程度,如需求、測試用例、缺陷的正向與逆向的雙向追溯。便於對其相關屬性的度量,即使用了覆蓋率。 ...
  • 定義: 相同文檔結構(Mapping)文檔的結合 由唯一索引名稱標定 一個集群中有多個索引 不同的索引代表不同的業務類型數據 註意事項: 索引名稱不支持大寫 索引名稱最大支持255個字元長度 欄位的名稱,支持大寫,不過建議全部統一小寫 ...
  • 檢索數據 SELECT語句 SELECT語句用途是從一個或多個表中檢索信息。為了使用SELECT檢索表數據,必須至少給出兩條信息——想選擇什麼,以及從什麼地方選擇。 檢索單個列 利用SELECT語句從products表中檢索一個名為prod_name的列: SELECT prod_name FROM ...
  • 摘要:增量備份是重要的常規備份策略,正確快速識別增量變化文件的相關信息對增量備份至關重要。 本文分享自華為雲社區《其疾如風,GaussDB(DWS)增量備份核心設計》,作者: 我的橘子呢 。 1、認識增量備份 GaussDB(DWS)數倉的備份恢復工具Roach支持集群級增量備份。全量備份會將源數據 ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 作者: 楊延昭 文章來源:GreatSQL社區投稿 在資料庫中,除傳統的計算資源(CPU、RAM、IO)的爭用以外,數據也是一種供許多用戶共用的資源。如 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...