计算机视觉教程7-3:Openpose配置与实践

简介: 计算机视觉教程7-3:Openpose配置与实践

目录

1 什么是Openpose?

2 Windows下配置Openpose

2.1 下载openpose

2.2 配置第三方库与模型

2.3 编译Openpose

2.4 生成项目与测试

3 Python调用Openpose

4 附录: Ubuntu下配置Openpose

4.1 下载Openpose并配置第三方

4.2 编译openpose

4.3 测试

1 什么是Openpose?

OpenPose是在单图像上联合检测人体、手、面部和脚关键点(总共135个关键点)的实时多人系统。


image.png

抖音“尬舞”机就应用了人体关键点检测技术:


就像玩真实的跳舞机一样,屏幕里伴随着音乐会不断出现不同动作图形,用户需要及时摆出对应的动作才能得分,随着动作的进程系统会发出perfect 、good以及连击音效。


应用openpose检测出人体关键点,再和预设舞蹈的关键点作比较,就可以判定得分,实现上述功能。

2 Windows下配置Openpose

2.1 下载openpose

新建空白目录,使用git bash运行

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git

可以到openpose仓库直接下载开源压缩包到本地。

2.2 配置第三方库与模型

下载openpose完毕后进入openpose\3rdparty\windows依次点击下面的.bat文件安装第三方库。


image.png

安装完毕如下所示:


image.png

进入openpose\model点击getModels.bat下载模型,下载完成后如下


image.png

2.3 编译Openpose

在openpose根目录下新建文件夹build,打开CMake GUI,源文件选择openpose根目录,编译文件选择build文件夹,如下


image.png

Build中勾选下面的选项:

image.png

其中BUILD_CAFFE用于编译caffe库,BUILD_PYTHON用于编译Python接口,后面想使用Python调用Openpose务必要勾选(有的教程怕出错不勾选)。


CUDA方面之前配置过会自动链接并显示版本号的,没有GPU的同学可以勾选CPU_ONLY用CPU来跑这个模型,但是运行不流畅。没有安装CUDA的同学先行安装CUDA以及对应版本的Cudnn。


image.png

之后点击Configure按钮,在Windows下请选择对应Visual Studio版本号和PC位数;在Ubuntu下请选择Unix MakeFile

Configure完成后如下:


image.png

因为勾选了BUILD_PYTHON,所以CMake为链接到本机上的Python编译器。

最后点击Generate即可。

2.4 生成项目与测试

点击CMake中的Open Project进入VS,右键项目重新生成解决方案。


image.png

经过一段时间的编译后,会在build/x64/Release下生成可执行文件。


image.png

build\bin中的*.dll以及根目录下的model复制到build/x64/Release中,即可测试实例。


image.png

3 Python调用Openpose

再新建一个文件夹用于测试Python API。


将openpose\build\bin、openpose\models、openpose\build\x64\Release目录复制进来,把Openpose\build\python\openpose的三个文件复制进来,否则会报错。


image.png

新建一个test.py文件用于测试接口,下面的例程需要插入一个USB摄像机,没有设备的话可以把cv2.imread()替换成自己的图片。

import sys
import cv2
import os
from sys import platform
# Import Openpose (Windows/Ubuntu/OSX)
dir_path = os.path.dirname(os.path.realpath(__file__))
try:
    # Windows Import
    if platform == "win32":
        os.environ['PATH']  = os.environ['PATH'] + ';' + dir_path + './Release;' +  dir_path + './bin;'
        import pyopenpose as op
    else:
        # Change these variables to point to the correct folder (Release/x64 etc.)
        sys.path.append('../../python');
        from openpose import pyopenpose as op
except ImportError as e:
    print('Error: OpenPose library could not be found. Did you enable `BUILD_PYTHON` in CMake and have this Python script in the right folder?')
    raise e
if __name__ == "__main__":
    # 设置Openpose模型并初始化
    params = dict()
    params["model_folder"] = "./models/"
    opWrapper, datum = op.WrapperPython(), op.Datum()
    opWrapper.configure(params)
    opWrapper.start()
    # 启动摄像头
    capture= cv2.VideoCapture(0)
    while(1):
        ref,frame = capture.read()
        # 载入当前帧到Openpose
        datum.cvInputData = frame           
        opWrapper.emplaceAndPop(op.VectorDatum([datum]))
        # 模型输出图像
        process = datum.cvOutputData
        # 显示
        cv2.imshow("test", process)
        if not ref:
            break
        key = cv2.waitKey(1) & 0xFF
        if key == 27: 
            print("Escape hit, closing...")
            break

显示效果如下:


image.png

在这个基础上可以进一步二次开发。

4 附录: Ubuntu下配置Openpose

4.1 下载Openpose并配置第三方

下载openpose

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
cd openpose/
git submodule update --init --recursive --remote

配置opencv、caffe以及一些依赖

sudo apt-get install libopencv-dev
cd openpose
sudo bash ./scripts/ubuntu/install_deps.sh

4.2 编译openpose

打开CMake-GUI

cd {OpenPose_folder}
mkdir build/
cd build/
cmake-gui ..

其余部分同Windows过程

4.3 测试

# 视频
./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution '160x80'
# 图片
./build/examples/openpose/openpose.bin --image_dir examples/media/ --net_resolution '160x80'

🚀 计算机视觉基础教程说明


章号                                    内容

 0                              色彩空间与数字成像

 1                              计算机几何基础

 2                              图像增强、滤波、金字塔

 3                              图像特征提取

 4                              图像特征描述

 5                              图像特征匹配

 6                              立体视觉

 7                              项目实战


🔥 更多精彩专栏:


《机器人原理与技术》

《计算机视觉教程》

《机器学习》

《嵌入式系统》

《数值优化方法》


目录
相关文章
|
2月前
|
机器学习/深度学习 算法 PyTorch
【机器学习】大模型环境下的应用:计算机视觉的探索与实践
【机器学习】大模型环境下的应用:计算机视觉的探索与实践
74 1
|
3月前
|
机器学习/深度学习 人工智能 测试技术
AI计算机视觉笔记二十五:ResNet50训练部署教程
该项目旨在训练ResNet50模型并将其部署到RK3568开发板上。首先介绍了ResNet50网络,该网络由何恺明等人于2015年提出,解决了传统卷积神经网络中的退化问题。项目使用车辆分类数据集进行训练,并提供了数据集下载链接。环境搭建部分详细描述了虚拟环境的创建和所需库的安装。训练过程中,通过`train.py`脚本进行了15轮训练,并可视化了训练和测试结果。最后,项目提供了将模型转换为ONNX和PT格式的方法,以便在RK3568上部署。
|
4月前
|
监控 算法 自动驾驶
计算机视觉的实践与挑战:技术深度剖析
【8月更文挑战第21天】计算机视觉技术作为人工智能的璀璨明珠,正逐步深入到我们生活的各个方面,带来前所未有的便利和变革。然而,随着技术的不断发展,我们也面临着诸多挑战和问题。未来,我们需要不断推动技术创新和跨学科合作,加强数据安全和隐私保护,提升算法的鲁棒性和可解释性,以应对这些挑战并推动计算机视觉技术的持续发展。让我们共同努力,探索计算机视觉技术的广阔天地,为创造一个更加智能、安全和美好的世界而不懈努力。
|
7月前
|
定位技术 计算机视觉 C++
C++计算机视觉库OpenCV在Visual Studio 2022的配置方法
C++计算机视觉库OpenCV在Visual Studio 2022的配置方法
261 1
|
传感器 Web App开发 机器学习/深度学习
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
719 0
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
|
人工智能 并行计算 数据可视化
【计算机视觉】手把手教你配置stable-diffusion-webui进行AI绘图(保姆级教程)
如果说,会用各大在线的AI绘图平台来生成图像的话,算是AI绘画的小学生级别。那么,如果会使用本地化部署来运行AI绘画的话,那就已经算得上是高中毕业,进入成年啦。等你能够使用AI绘图指哪打哪,想怎么画怎么画,那就已经是大学毕业,学成归来的牛逼人物啦。
1059 1
|
并行计算 API 计算机视觉
【CUDA学习笔记】第十篇:基本计算机视觉操作【下】(附实践源码下载)(二)
【CUDA学习笔记】第十篇:基本计算机视觉操作【下】(附实践源码下载)(二)
132 0
|
并行计算 算法 计算机视觉
【CUDA学习笔记】第十篇:基本计算机视觉操作【下】(附实践源码下载)(一)
【CUDA学习笔记】第十篇:基本计算机视觉操作【下】(附实践源码下载)(一)
145 0
|
存储 并行计算 计算机视觉
【CUDA学习笔记】第九篇:基本计算机视觉操作【上】(附实践源码下载)(二)
【CUDA学习笔记】第九篇:基本计算机视觉操作【上】(附实践源码下载)(二)
123 0
|
存储 并行计算 API
【CUDA学习笔记】第九篇:基本计算机视觉操作【上】(附实践源码下载)(一)
【CUDA学习笔记】第九篇:基本计算机视觉操作【上】(附实践源码下载)(一)
140 0

热门文章

最新文章

下一篇
DataWorks