Android MediaPipe人臉特徵偵測

前言

前一偏博文「MediaPipe基本介紹」,MediaPipe提供了多種預訓練的模型和工具,可以用於實現人臉偵測、手勢辨識、姿勢估計等應用。本文將介紹如何使用 MediaPipe在 Android Studio 中開發一個 face_landmarker 的範例,即利用 MediaPipe的人臉模型在相機畫面中標記出人臉的特徵點。

 

人臉特徵範例

MediaPipe face landmarker 是一個用於偵測人臉特徵點的工具,它可以在實時或靜態圖像中識別出 468 個人臉特徵點,並提供三維座標訊息進行圖像標註。

Android最低支援版本SDK 24也就是Android7.0以上,所以版本過低的裝置無法使用,在Build.gradle的部分需要增加implementation 'com.google.mediapipe:tasks-vision:0.10.0',然後點選右上出現的Sync按鈕進行同步,這樣就可以使用MediaPipe SDK的指令。

在官方提供的MediaPipe Github 有提供不少範例可以參考,本篇博文使用face_landmarker範例,在終端機上輸入指令git clone或Github網頁上下載zip到電腦上,開啟Example 點選 face_landmarker 檔案夾,點進去後可以看到android、js及python,點開Android資料夾,使用Android Studio開起資料夾,開啟後Android Studio會自動下載檔案模型,等待資料下載即可執行APP。

 
內部可以配置參數:

num_faces:最多檢測的人臉數
min_face_detection_confidence:人臉檢測最小可信度
min_face_presence_confidence:人臉顯示最小可信度
min_tracking_confidence:人臉追踪最小可信度
outout_face_blendshapes:是否輸出混合形狀(用於30人臉模型)
outout_facial_transformation_matrixes:是否輸出變換矩陣
result_callback:異步回調結果

 


CameraFragment:取得相機的圖片資料並顯示在螢幕上。
FaceLandmarkerHelper:透過FaceLandmarker將臉部特徵點取出,程式內提供圖片及串流推論方式,將臉譜座標取出後,使用OverlayView進行圖像標註,如下圖所示。





透過人臉特徵就可以獲取正確的人臉,也可以替換其他種圖示,例如卡通頭套等等,也可以新增其他濾鏡達到不一樣的效果。整體上使用MediaPipe Face Landmarker執行速度滿快,在小米11手機晶片為QUALCOMM Snapdragon 888執行速度約在20~40 ms的推論速度,已經非常方便使用。

小結

本文介紹了如何使用 MediaPipe在 Android Studio 中使用一個 face_landmarker 的範例,在相機畫面中標記出人臉的特徵點,希望MediaPipe可以幫助到你。期待下一篇博文吧!

參考資料

MediaPipe GitHub

 

► Q&A

問:mediapipe face_landmarker 適用於哪些平台?
答:mediapipe face_landmarker 支持 Android、iOS、Web 和桌面平台,並提供了相應的 SDK 和 API。

問:Mediapipe face_landmarker 如何處理多人臉場景?
答:可以同時處理多個人臉,但需要先使用 Mediapipe face_detection 模塊來檢測出每個人臉的位置和大小,然後將每個人臉的裁剪區域作為輸入傳遞給 Mediapipe face_landmarker。

問:Mediapipe face_landmarker 的輸出格式是什麼?
答:輸出格式是一個包含 468 個 landmarks 的列表,每個 landmark 是一個包含 x、y、z 和 visibility 四個字段的對象。x、y、z 分別表示 landmark 在圖像坐標系中的水平、垂直和深度位置,取值範圍為 -0.5 到 0.5。visibility 表示 landmark 的可見性,取值範圍為 0 到 1。

問:Mediapipe face_landmarker 如何處理遮擋和表情變化?
答:使用了一種基於深度學習的方法,它可以根據訓練數據集中的人臉形狀和姿勢變化來推測出遮擋或表情變化下的 landmark 位置。但是,如果遮擋程度過高或表情變化過於劇烈,則可能導致 landmark 的精度下降或不可見。

問:Mediapipe face_landmarker 有哪些應用場景?
答:可以用於各種需要人臉特徵點信息的應用場景,例如人臉美化、人臉動畫、人臉追蹤、人臉識別、人臉表情分析等。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論