You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行MediaPipe Holistic代码报错:holistic模块无FACE_CONNECTIONS属性

报错原因

你使用的0.9及以上版本的MediaPipe已经移除了mediapipe.python.solutions.holistic模块下的FACE_CONNECTIONS属性,旧版本的示例代码无法直接在新版库中运行。

修复方法

方法一:修改代码适配新版MediaPipe(推荐)

替换原代码中对FACE_CONNECTIONS的调用即可,同时补全缺失的cv2导入:

  1. 所有mp_holistic.FACE_CONNECTIONS替换为mp.solutions.face_mesh.FACEMESH_CONTOURS
  2. 代码开头补充import cv2
    修改后的完整代码如下:
import cv2
import mediapipe as mp 

mp_drawing = mp.solutions.drawing_utils # 绘图工具
mp_holistic = mp.solutions.holistic # Mediapipe解决方案
mp_face_mesh = mp.solutions.face_mesh

cap = cv2.VideoCapture(0)

# 初始化holistic模型
with mp_holistic.Holistic(min_detection_confidence=0.5, min_tracking_confidence=0.5) as holistic:
    
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break
        
        # 重排图像通道
        image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        image.flags.writeable = False        
        
        # 执行关键点检测
        results = holistic.process(image)
        
        # 通道换回BGR用于渲染
        image.flags.writeable = True   
        image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
        
        # 1. 绘制人脸关键点
        mp_drawing.draw_landmarks(image, results.face_landmarks, mp_face_mesh.FACEMESH_CONTOURS, 
                                 mp_drawing.DrawingSpec(color=(80,110,10), thickness=1, circle_radius=1),
                                 mp_drawing.DrawingSpec(color=(80,256,121), thickness=1, circle_radius=1)
                                 )
        
        # 2. 绘制右手关键点
        mp_drawing.draw_landmarks(image, results.right_hand_landmarks, mp_holistic.HAND_CONNECTIONS, 
                                 mp_drawing.DrawingSpec(color=(80,22,10), thickness=2, circle_radius=4),
                                 mp_drawing.DrawingSpec(color=(80,44,121), thickness=2, circle_radius=2)
                                 )

        # 3. 绘制左手关键点
        mp_drawing.draw_landmarks(image, results.left_hand_landmarks, mp_holistic.HAND_CONNECTIONS, 
                                 mp_drawing.DrawingSpec(color=(121,22,76), thickness=2, circle_radius=4),
                                 mp_drawing.DrawingSpec(color=(121,44,250), thickness=2, circle_radius=2)
                                 )

        # 4. 绘制姿态关键点
        mp_drawing.draw_landmarks(image, results.pose_landmarks, mp_holistic.POSE_CONNECTIONS, 
                                 mp_drawing.DrawingSpec(color=(245,117,66), thickness=2, circle_radius=4),
                                 mp_drawing.DrawingSpec(color=(245,66,230), thickness=2, circle_radius=2)
                                 )
                        
        cv2.imshow('Raw Webcam Feed', image)

        if cv2.waitKey(10) & 0xFF == ord('q'):
            break

cap.release()
cv2.destroyAllWindows()

方法二:回退到兼容的旧版本MediaPipe

如果不想修改原有代码,可以直接安装保留了FACE_CONNECTIONS属性的旧版本:

pip install mediapipe==0.8.11

安装完成后即可正常运行原有代码。

内容的提问来源于stack exchange,提问作者ysfjoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:48:04