Python - 使用 MediaPipe Holistic 进行面部和手部识别

pythonserver side programmingprogramming更新于 2024/2/10 17:45:00

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)

输出

检测地标

我们首先利用片段初始化整体模型。我们使用 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 格式传输到整体模型。MediaPipe 支持的唯一图片格式就是这种。

image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    image_recolored = holistic.process(image)

Now, let’s start drawing the landmarks.

示例

#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 整体实现全身姿势估计的方法。使用 Python,我们能够创建一个综合模型。您可以通过尝试将该模型应用于从计算机网络摄像头获取的实时视频数据来扩展此实验。


相关文章