使用 MediaPipe Holistic 實現 Python 人臉和手部識別
MediaPipe 是一個跨平臺的開源機器學習框架,用於建立複雜的多模式應用機器學習管道。它可以用於建立尖端的機器學習模型,例如人臉識別、多手跟蹤、物體檢測和跟蹤等等。MediaPipe 簡單地充當管理在任何平臺上執行的系統的模型實現的中介,允許開發者專注於模型實驗而不是系統本身。本文將介紹如何使用 MediaPipe holistic 來估計全身姿態。該模型將識別我們身體的所有面部標誌點、手部和姿勢。
安裝和匯入庫
訪問模型時使用 MediaPipe,訪問相機或靜態圖片進行檢測時使用 OpenCV。
!pip install mediapipe opencv-python import mediapipe as mp import cv2
MediaPipe 設定
首先,匯入 MediaPipe 繪圖工具。它將允許我們從完整模型中提取檢測結果。然後匯入 MediaPipe 完整模型。請記住,MediaPipe 庫包含多個 ML 解決方案。您可以透過輸入 `mp.solutions` 來使用程式碼測試這些模型。當您點選新單元格時,您將能夠看到庫提供的模型。
示例
mp_drawing = mp.solutions.drawing_utils mp_holistic = mp.solutions.holistic Using OpenCV to load a picture from google.colab.patches import cv2_imshow url = 'https://images.unsplash.com/photo-1599447292180-45fd84092ef0?ixlib=rb4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop& w=1887&q=80' image = cv2.imread(url)
輸出

圖片可以在這裡找到 這裡 你也可以使用你自己的照片。
檢測標誌點
我們首先使用 `segment` 來初始化 holistic 模型。我們使用 `imread` 函式載入圖片。
with mp_holistic.Holistic( static_image_mode=True, model_complexity=2, enable_segmentation=True, refine_face_landmarks=True) as holistic: image = cv2.imread("/content/sample_data/alex-shaw-kh9XApwKtm0-unsplash.jpg")
下一步是更改圖片的顏色。為此,我們使用 `cvtColor` 函式。使用 OpenCV 時,我們以 BGR 格式接收圖片,但我們希望以 RGB 格式將圖片傳遞給 holistic 模型。這是 MediaPipe 支援的唯一圖片格式。
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) image_recolored = holistic.process(image)
現在,讓我們開始繪製標誌點。
示例
#For the facial landmarks mp_drawing.draw_landmarks(image, image_recolored.face_landmarks, mp_holistic.FACEMESH_TESSELATION) #For the pose landmarks mp_drawing.draw_landmarks(image, image_recolored.pose_landmarks, mp_holistic.POSE_CONNECTIONS) #For the left-hand landmark: mp_drawing.draw_landmarks(image, image_recolored.left_hand_landmarks, mp_holistic.HAND_CONNECTIONS) #For the right-hand landmark: mp_drawing.draw_landmarks(image, image_recolored.right_hand_landmarks, mp_holistic.HAND_CONNECTIONS) cv2_imshow(image)
輸出

結論
本教程介紹了使用 MediaPipe holistic 實現全身姿態估計。我們使用 Python 建立了一個完整的模型。您可以透過嘗試將模型應用於從計算機網路攝像頭獲取的即時影片資料來擴充套件此實驗。
廣告