当前位置: 首页 > news >正文

OpenPose初体验

最近机器人的热度有点高,想着要做些应用技术储备,偶然的机会发现了OpenPose,就从它开始吧!OpenPose是由卡内基梅隆大学开发的开源实时多人姿态估计库。它基于深度学习算法,能精确识别图像或视频中的人体姿态,检测头部、手、肢体等关节点,还可实现 3D 姿态重建、面部表情和手势识别。其应用场景广泛,涵盖游戏、运动分析、手语翻译、安防监控、医疗康复等领域。

在一些展会上已经有这样的演示:架一台摄像机对着观众,实时识别真人动作,然后让机器人(灵巧手)同步模仿。挺有意思的吧!感觉OpenPose能够派上用场。

从Github拉取了源代码。查看官方文档,开篇就说Forget about the OpenPose code, just download the portable Windows binaries (or compile the code from source) and use the demo by following this tutorial! 呃,好吧,咱得听劝,先玩一玩它的Demo程序也好,对OpenPose的能力有个感性认识。

这里下载已经编译好的Demo程序。如果你的电脑GPU强劲,建议下载openpose-1.7.0-binaries-win64-gpu-python3.7-flir-3d_recommended.zip;否则就下载CPU版吧:openpose-1.7.0-binaries-win64-cpu-python3.7-flir-3d.zip。下载完成后,本地解压,然后在控制台窗口进入到openpose目录,再运行如下命令:

bin\OpenPoseDemo.exe --video examples/media/video.avi

不出意外的话,意外出现了:

Error:

Caffe trained model file not found: models\pose/body_25/pose_iter_584000.caffemodel.

原来,机器学习模型是要单独下载的!运行Demo程序目录下models子目录里的getBaseModels.bat,结果还是失败!要到OpenPose源代码目录,运行models子目录里的getModels.bat,再将下载下来的模型文件拷贝到Demo程序目录下对应的models子目录。

再次运行上述命令行,就可以看到效果了:

只不过,运行速度“惊人”啊つ﹏⊂大概15刷新一帧。记录一下我的电脑配置:Intel11代酷睿i5 CPU2.4GHz 8核,16GB RAMIntel集成显卡,Win10系统1809。做个对比测试:在另外一台配置较好(Intel13代酷睿i9 CPU2.2GHz 32核,16GB RAMNVIDIA GeForce RTX 4060独立显卡,Win11系统23H2)的电脑上运行CPU版,性能没有明显改善,但运行GPU加速版情况就好了很多,帧率可以达到11fps

这个Demo程序支持丰富的命令行参数,不仅能接受视频文件输入,也能直接从摄像头获取数据,甚至本地的静态图片文件也是可以的,如下:

bin\OpenPoseDemo.exe --image_dir examples/media/

还可以在命令行加参数--write_json,将检测到的关节点写入到一个JSON文件:

bin\OpenPoseDemo.exe --image_dir examples/media/ --write_json output_jsons/

COCO_val2014_000000000428.jpg这个文件为例,其对应的输出文件为COCO_val2014_000000000428_keypoints.json,查看其内容可以发现,关节点存储在pose_keypoints_2d数组中,每3个数表示一个点(x, y, c),其中c表示confidence (置信度)。JSON格式的详细说明参见官方文档

如果想输出脸部关节点,命令行加--face即可;如果想加上手掌,加--hand即可。其他的控制参数就不在此一一列举了,可以参考官方文档,挨个儿试一遍,有利于对OpenPose能力建立更加立体的认识。为后续研读OpenPose源代码打好基础 (ง _)ง

注:加上--hand参数后,CPU版本Demo无法运行,GPU版可以,但性能会急剧下降,帧率从11fps降到了0.4fps。

相关文章:

  • 标准卷积(Standard Convolution)
  • 【AI智能体报告】开源AI助手的革命:OpenManus深度使用报告
  • [Pytorch报错问题解决]AttributeError: ‘nn.Sequential‘ object has no attribute ‘append‘
  • CSS 入门指南(一):基本概念 选择器 常用元素属性
  • C#中的【Obsolete】属性Attribute
  • 淘立方电商前端网站(HTML开发)源代码
  • 【 深入解析VGG网络:理论、调优与ResNet对比】
  • ⭐LeetCode(数学分类) 2. 两数相加——暴力与优化⭐
  • CSS-基础选择器,字体属性,文本属性介绍
  • CEH与OSCP:网络安全认证对比分析
  • 可复用的 Vue 轮播图组件
  • AutoDL平台租借GPU,创建transformers环境,使用VSCode SSH登录
  • 5. 前后端实现文件上传与解析
  • linux 命令 cat
  • 【社交+陪玩服务】全场景陪玩系统源码 小程序+H5双端 社群互动+即时点单+搭建教程
  • 2025年四川烟草工业计算机岗位备考详细内容
  • 1.1 双指针专题:移动零(easy)
  • 深入解析 Linux 的 traceroute 命令
  • 解决asp.net mvc发布到iis下安全问题
  • 27. Harmonyos Next仿uv-ui 组件NumberBox 步进器组件禁用状态
  • 泰山、华海、中路等山东险企综合成本率均超100%,承保业务均亏损
  • 人民日报民生观:转人工客服,怎么这么难?
  • 上海虹桥国际咖啡文化节周五开幕,来看Coffeewalk通关攻略
  • 多个侵华日军细菌战部队留守名簿文件首次公布
  • 上海145家博物馆、73家美术馆将减免费开放
  • 宝通科技:与宇树合作已签约,四足机器人在工业场景落地是重点商业化项目