项目5 骨架识别与肢体定位 本项目根据MediaPipe和Openpose具备单独提取能力和速度快的特点,进行动/静态的骨架识别与肢体定位。 5.1总体设计 本部分包括整体框架和系统流程。 5.1.1整体框架 整体框架如图51所示。 图51整体框架 5.1.2系统流程 系统流程如图52所示。 图52系统流程 5.2运行环境 本部分包括Python环境、Openpose环境和PyQt6环境。 5.2.1Python环境 在Windows环境下下载Anaconda,完成Python 3.9以上版本的环境配置,如图13所示,也可以下载虚拟机在Linux环境下运行代码。 5.2.2Openpose环境 (1) 下载开源项目,如图53所示。 图53开源项目界面 (2) 进入..\openposemaster\models目录,运行getModels.bat。 (3) 等待加载模型pose_iter_584000.caffemodel。时间较长,如果中途中断,重新双击运行getModels.bat即可,完整加载模型大小是100MB。 (4) 保存位置如下: ..\openposemaster\models\pose/mpi/pose_iter_160000.caffemodelOpenPose (5) 使用pip安装所需的包。 pip install opencv2 pip install matplotlib pip install mediapipe 5.2.3PyQt6环境 (1) 在Anaconda中如果没有PyQt6,需要使用pip进行安装,步骤如下: 打开Anaconda Prompt (Anaconda3)控制台,切换至相应的conda环境,执行如下命令: pip install sip pip install PyQt6 pip install PyQt6-tools (2) 可以在使用pip时后面加上参数i,指定pip源。 5.3模块实现 本部分包括静态识别、动态识别和模块展示,下面分别给出各模块的功能介绍及相关代码。 5.3.1静态识别 静态识别结构如图54所示。 图54静态识别结构 通过Openpose中带有pose的识别数据集,可以在同一张图像中对脸、手和骨架进行识别,还能输出对应的关键点热力图,相关代码见“代码文件51”。 5.3.2动态识别 动态识别使用mediapipe更加轻量化,在安装过程中并没有预安装数据集的过程,因此实现起来接近API的调用,相关代码见“代码文件52”。 5.3.3模块展示 界面设计包括四个按键: 选择图像、运行静态识别输出结果、开启摄像头并进行动态识别和关闭摄像头。moving.py负责动态识别、single.py负责静态识别、main.py负责对界面数据槽关系进行绑定,相关代码见“代码文件53”。 5.4系统测试 静态识别可以在输入图像、选择模型后显示识别结果和特征点,如图55所示; 动态识别通过cap输入图像流,然后可以在图像上绘出关键点,达到即时识别的结果,如图56所示; 界面识别结果如图57所示。 图55静态识别结果和热力图 图56动态识别结果 图57界面识别结果 项目6 生成古诗与歌词 本项目基于循环神经网络,构建多层RNN模型,通过数据集的训练,生成藏头诗与歌词。 6.1总体设计 本部分包括整体框架和系统流程。 6.1.1整体框架 古诗生成整体框架如图61所示,歌词生成整体框架如图62所示。 图61古诗生成整体框架 图62歌词生成整体框架 6.1.2系统流程 古诗生成系统流程如图63所示,歌词生成系统流程如图64所示。 图63古诗生成系统流程 图64歌词生成系统流程 6.2运行环境 本部分包括Python环境、TensorFlow环境和PyCharm环境。 6.2.1Python环境 在Windows环境下下载Anaconda,完成Python 3.7.3及以上版本的环境配置,如图13所示,在PyCharm环境下进行开发。 6.2.2TensorFlow环境 (1) 打开Anaconda Prompt,输入清华仓库镜像。 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config -set show_channel_urls yes (2) 创建Python 3.7环境,名称为TensorFlow,此时Python版本和后面TensorFlow的版本如有匹配问题,此步选择Python 3.x。 conda create -n tensorflow python=3.7 (3) 有需要确认的地方都输入y。 (4) 在Anaconda Prompt中激活TensorFlow环境: activate tensorflow (5) 安装CPU版本的TensorFlow: pip install -upgrade --ignore-installed tensorflow 6.2.3PyCharm环境 PyCharm版本为PyCharm 2018。 6.3模块实现 本部分包括数据准备、模型构建、模型训练及保存、生成歌词,下面分别给出各模块的功能介绍及相关代码。 6.3.1数据准备 本部分包括加载所需要的库与数据、数据处理和整理训练数据,如图65所示。 图65诗词数据集 1. 加载库与数据 相关代码如下。 import tensorflow as tf import numpy as np import glob import json from collections import Counter from tqdm import tqdm from snownlp import SnowNLP#主要实现繁体字转简体字 poets = [] paths = glob.glob('chinese-poetry/json/poet.*.json') #加载数据 训练古诗数据的具体样式如图66所示。 图66训练古诗数据样式 2. 数据处理 相关代码如下。 for path in paths: data = open(path, 'r').read()