摘要:把 D:\project 这套工程直接跑起来:安装 Python / VS Code → 一键运行 → 用 PyInstaller 打包为 EXE 分发。文末含常见问题与命令速查。
MediaPipe Pose 模型应用介绍:让 PLC 读懂人体动作:MediaPipe Pose 在工业安全监控中的应用


参考视频
一、项目目录结构(放在 D:\project)
将下载好的 project 文件夹直接放到 D 盘根目录。结构与作用如下:
build/:PyInstaller 打包时产生的临时缓存,可删。
dist/:打包后的成品目录(EXE 与依赖)。
mp_env/:项目自带的Python 虚拟环境(内含依赖与模型)。
关键文件:mp_env/pyvenv.cfg,其中home = D:\Python310,务必与实际 Python 安装位置和版本一致(3.10.11)。
TestVideo/:测试视频(无摄像头时可直接验证)。
安装/:本地安装包集合(如 Python、VS Code 安装程序)。
logo.ico:程序图标(PyInstaller 打包时使用,可替换)。
mediaPipe_pose_gui.py:主程序(界面逻辑+姿态判定+视频流/Modbus 接口)。
mediaPipe_pose_gui.spec:PyInstaller 打包配置(保证一键复现相同产物)。
project.code-workspace:VS Code 工作区文件(一键打开全项目)。
requirements.txt:依赖清单(重建虚拟环境时用)。
命令.txt:常用命令备忘(激活/运行/打包等)。

二、环境安装(仅首次在这台电脑)

1)安装 Python 3.10.11
- 运行
安装/python-3.10.11-amd64_安装到D盘根目录.exe - 勾选底部 Add python.exe to PATH → Customize installation → Next

- 将 Customize install location 改为
D:\Python310→ Install
- 运行
2)验证 Python

开始菜单搜索 cmd,输入:
python --version
看到 Python 3.10.11 即成功(D 盘出现 D:\Python310)。

3)安装 VS Code(中文)
- 运行
安装/VSCodeUserSetup-x64-1.103.0.exe,默认安装 - 打开 VS Code → 左侧“扩展”→ 搜索 Chinese → 安装 简体中文 → 按提示重启
- 运行


4)打开工作区
VS Code:文件 → 从文件打开工作区… → 选择 D:\project\project.code-workspace → 选择 是,信任。



三、运行(源码方式)
- VS Code 顶部:终端 → 新建终端(默认路径应为
D:\project)。

- 首次放开 PowerShell 脚本限制:

- VS Code 顶部:终端 → 新建终端(默认路径应为
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass
- 激活虚拟环境:

- 激活虚拟环境:
.\mp_env\Scripts\activate
看到提示符出现 (mp_env) 前缀即成功。
- 启动主程序:

- 启动主程序:
python mediaPipe_pose_gui.py

测试建议
- 在界面中选择“视频文件”,挑选
TestVideo里的样片 → 点击 开始识别。
- 在界面中选择“视频文件”,挑选
- 若能看到骨架与左上角中文状态,即运行正常。
四、打包为 EXE(部署分发)
适合非开发电脑使用:复制 EXE(及其同目录依赖)即可运行。
- 确保当前终端已激活
(mp_env)。 - 一键打包:

- 确保当前终端已激活
pyinstaller --clean mediaPipe_pose_gui.spec
等待结束,出现 Build complete!(或无错误退出)即成功。

- 到
dist/查看产物:
- 到
- 文件夹模式:
dist\mediaPipe_pose_gui\mediaPipe_pose_gui.exe
- 文件夹模式:
- 单文件模式:
dist\mediaPipe_pose_gui.exe
- 单文件模式:
程序图标来自根目录 logo.ico,可替换为自有图标。

五、常见问题(FAQ)
Q1:激活虚拟环境失败?
A:多半是 mp_env/pyvenv.cfg 的 home 与实际 Python 路径不一致。请确保 Python 安装在 D:\Python310,或重建虚拟环境并执行:
pip install -r requirements.txt
Q2:PowerShell 提示脚本被禁用?
A:若 CurrentUser 受限,可用进程级临时放开:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass六、常用命令速查
# 第一次(或策略被重置)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass
# 进入项目目录
cd D:\project
# 激活虚拟环境
.\mp_env\Scripts\activate
# 运行
python mediaPipe_pose_gui.py
# 打包为 EXE
pyinstaller --clean mediaPipe_pose_gui.spec
七、举手与跌倒算法说明
在本项目中,我们通过 MediaPipe Pose 实时检测人体姿态,并根据关键点的位置判断用户的动作状态。以下是 举手 和 跌倒 动作的算法解释,并提供如何根据需求修改判断逻辑的示例。
1. 跌倒判断算法
跌倒的判断逻辑基于 鼻子位置 和 脚踝位置 之间的垂直距离来实现。具体思路如下:
算法逻辑:
在正常情况下,鼻子和脚踝的高度差应该大于一定的阈值(例如 0.15),表示用户站立或坐着。
如果鼻子和脚踝的高度差小于这个阈值(例如 0.15),则判断为跌倒。
代码实现:
如何修改判断标准:
阈值调整:
if abs(nose_y - ankle_y) < 0.15:中的0.15为判断“跌倒”的阈值。如果你发现该值对某些情况下判断不准确,可以根据实际情况调整。更多特征:你还可以根据身体其他关节的相对位置(如肩膀、膝盖等)来进一步优化跌倒检测。例如,如果下半身的关节和上半身的距离也接近,可以更准确地判断是否为跌倒。
2. 举手判断算法
举手的判断逻辑基于手腕和肩膀之间的相对位置关系来实现。具体思路如下:
算法逻辑:
判断左手或右手是否举起:若任一手腕高于其同侧肩膀或鼻子,则认为用户“举手”。
为了增加判断的准确性,通常会判断肩膀与手腕的相对高度差。
代码实现:
如何修改判断标准:
阈值调整:
l_wrist.y < l_shoulder.y - 0.05中的0.05和nose.y - 0.1中的0.1是用于判断“举手”的高度阈值。如果你发现该值不适用于某些场景,可以调整这些值,使判断更加准确。更多判断条件:如果需要,可以添加更多的判断条件。例如,可以根据手腕和肩膀之间的横向距离来判断手是否真正“举起”,而不仅仅是比较高度。
3. 总结与修改指导
跌倒判断:根据鼻子和脚踝的高度差来判断跌倒。你可以通过调整阈值来优化判断。
举手判断:根据手腕与肩膀的相对高度关系来判断举手。可以调整阈值、增加更多的判断条件来提高准确性。
如果你希望判断其他动作(如蹲下、站立、跑步等),你可以根据身体各部位的相对位置关系,定义类似的算法。MediaPipe Pose 提供了33个关键点,你可以灵活运用这些关键点的信息来判断更复杂的动作。
提示:修改算法时,记得通过实际测试数据调整阈值,确保逻辑在不同场景下的适用性。
八、版本与维护建议
- Python:固定使用 3.10.11,避免版本漂移造成依赖冲突。
- 依赖:如需升级,先在测试机重建虚拟环境并
pip install -r requirements.txt验证;确认稳定后再更新团队包。
- 依赖:如需升级,先在测试机重建虚拟环境并
- 打包一致性:统一使用
mediaPipe_pose_gui.spec打包,确保所有人产物相同。
- 打包一致性:统一使用


































暂无评论内容