Bootstrap

视频生成动画数据OpenPose+OpenCV

我们只是使用OpenPose,不包括深度学习和代码的部分,会用就OK。

1.打开OpenPose的官网,直接进入安装页面,地址如下:

OpenPose: OpenPose Doc - Installation

2.安装的说明,大家要好好看,我们就是按照这里步骤来安装的。

这里我们要注意,1是操作系统、2是必须要安装的软件、3是依赖的软件。

这次测试的硬件配置为操作系统win10专业版,显卡NVIDIA GeForce GTX 1060 6GB。

3.安装显卡驱动

在Nvidia官网上官方驱动 | NVIDIA,找到自己显卡的驱动并下载官方驱动 | NVIDIA,安装的时候先是解压缩,解压到哪里都可以,然后是安装,我选的是安全安装,安装到C盘默认路径下。

4.安装CUDA和cuDNN

打开cuDNN的下载页面https://developer.nvidia.com/rdp/cudnn-download

注意先下载CUDA11,下面是下载地址,然后在下载cuDNN。CUDA Toolkit 11.0 Download | NVIDIA DeveloperSelect Target Platform Click on the green buttons that describe your target platform. Only supported platforms will be shown. By downloading and using the software, you agree to fully comply with the terms and conditions of the CUDA EULA. Operating System Architecture Compilation Distribution Version Installer Type Do you want to cross-compile? Yes No Select Host Platformhttps://developer.nvidia.com/cuda-11.0-download-archive先安装CUDA,还是先解压缩,然后安装,安装的时候选择自定义(高级)、所有组件勾选、安装位置默认不变。

再安装cuDNN,地址Installation Guide :: NVIDIA Deep Learning cuDNN Documentation,主要看下面这里,先解压缩,然后复制文件,然后设置环境变量。

 

 C:\Program Files\NVIDIA并没有NVIDIA文件夹,自动手动新建,还有下一级的CUDNN和v8.7文件夹。然后将下载解压缩后的cudnn-windows-x86_64-8.7.0.84_cuda11-archive下的文件复制到下面的路径下。

设置环境变量Path

5.安装Zlib

ZLIB DLL需要使用鼠标右键另存为,保存到本地,解压缩然后设置环境变量。

6.安装cmake,我的是cmake-3.25.1-windows-x86_64版本,官网Download | CMake

 安装的时候,选择将cmake添加到环境变量中。安装的位置为默认。

6.安装OpenCV,我选择的opencv-3.4.3-vc14_vc15这个版本,官网地址Releases - OpenCV

设置OpenCV环境变量OpenCV: Installation in Windows

打开cmd以管理员身份,执行setx OpenCV_DIR D:\OpenCV\build\x64\vc14,然后设置环境变量

7.下载OpenPose并安装,官网https://github.com/CMU-Perceptual-Computing-Lab/openpose/releases有cpu和gpu两个版本,我使用是GPU版本。下载后解压缩到C:\Program Files下面。打开Instructions文件

使用models/getBaseModels.bat来下载模型,下载成功后会出现caffe的模型文件。

 8.运行demo,打开cmd,切换openpose路径下,执行命令

命令参数示例在如下地址https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/v1.7.0/doc/quick_start.md

 --face --hand 这两个参数是脸和手的,显卡内存太小无法测试。

脸是有70个点,两个手有2x21个点,身体和脚有25个点。

 直接运行bin\OpenPoseDemo.exe是可以打开摄像头,实时展现身体的25个点。

9.生成25个点数据的命令,同时可以将mp4转换为avi,每一帧都生成一个json文件。--video为原视频位置,--write_video为目标视频位置,--write_json为生成的数据位置。

C:\Program Files\openpose>bin\OpenPoseDemo.exe --video F:\OpenPoseTest\VID_20221002_150321.mp4 --write_video F:\OpenPoseTest\VID_20221002_150321.avi --write_json F:\OpenPoseTest\output

 3个数字对应一个点的坐标位置,一共25组。

{"version":1.3,"people":[{"person_id":[-1],"pose_keypoints_2d":[1163.07,277.127,0.915932,1171.98,386.075,0.879473,1095.49,388.958,0.878129,1068.83,503.839,0.829449,1136.54,480.08,0.860057,1257.18,383.126,0.830236,1274.89,503.799,0.774826,1260.13,600.887,0.868312,1169,630.337,0.661546,1121.86,627.461,0.646421,1121.94,821.685,0.785871,1121.86,1001.11,0.836382,1216.12,627.476,0.660973,1213.28,830.526,0.820711,1207.15,992.411,0.797135,1142.64,265.357,0.909702,1183.59,265.379,0.889037,1133.58,271.426,0.494038,1210.09,271.31,0.884302,1189.48,1030.68,0.778246,1213.15,1027.69,0.780975,1198.39,1001.28,0.626914,1127.77,1033.62,0.662476,1101.25,1027.73,0.694847,1136.51,1015.92,0.649535],"face_keypoints_2d":[],"hand_left_keypoints_2d":[],"hand_right_keypoints_2d":[],"pose_keypoints_3d":[],"face_keypoints_3d":[],"hand_left_keypoints_3d":[],"hand_right_keypoints_3d":[]}]}

;