本文主要是介绍Openpose实操,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://blog.csdn.net/qq_43258953/article/details/104503803
一,OpenPose项目Github链接:https://github.com/CMU-Perceptual-Computing-Lab/openpose
二,windows源码下载地址:
源码下载
下载第一个推荐版。
三,下载训练好的caffe模型文件
百度云盘上供大家下载使用:
链接:https://pan.baidu.com/s/1qNB-AZFRL0JeTAmAL_xPSA 密码:t9uu
四,模型测试:
OpenPose 提供了基于Body,Hand,Facial 等关键点估计的模型,及相应的在 Videos,Wecam,Images 等测试数据的 Demo。
Image
bin\OpenPoseDemo.exe --net_resolution "64x64" --image_dir examples\media\ --face --hand
video
bin\OpenPoseDemo.exe --video examples/media/video.avi
# With face and hands
bin\OpenPoseDemo.exe --video examples/media/video.avi --face --hand
1
2
Webcam
bin\OpenPoseDemo.exe
# With face and hands
bin\OpenPoseDemo.exe --face --hand
1
2
3
4
五,最大精度配置
# Body
bin\OpenPoseDemo.exe --net_resolution "1312x736"
--scale_number 4
--scale_gap 0.25
# Body + Hand + Face
bin\OpenPoseDemo.exe --net_resolution "1312x736"
--scale_number 4
--scale_gap 0.25
--hand
--hand_scale_number 6
--hand_scale_range 0.4
--face
1
2
3
4
5
6
7
8
9
10
11
注[1] - 增加 --net_resolution 尺寸,虽然精度增加,但会导致帧速率(frame rate) 明显减少,延迟性增加. 然而,这种增加精度的方法不是对于所有场景都是一定可行的,需要特定场景特定分析. 如,对于图像中非常小的人体,其比较有效,但对于图像中人体所占比例比较大的场景,其效果一般较差. 因此,OpenPose 推荐采用以上命令行来获得在大部分场景获得最大精度,同时包括大的人体和小的人体的场景.
注[2] - 不要在 MPII 模型使用该命令行配置. 其精度会因多尺度(multi-scale) 设置而降低. 该配置仅适用于 COCO 和COCO-extended(如默认的 BODY_25) 模型.
六,人体追踪Tracking
[1] - 牺牲精度,最大实时运行速度:
# Using OpenPose 1 frame, tracking the following e.g., 5 frames
bin\OpenPoseDemo.exe --tracking 5 --number_people_max 1
1
[2] - 保持较高精度,实时运行速度:
# Using OpenPose 1 frame and tracking another frame
bin\OpenPoseDemo.exe --tracking 1 --number_people_max 1
1
[3] - 视觉平滑 Visual Smoothness:
# Running both OpenPose and tracking on each frame.
# Note: There is no speed up/slow down
bin\OpenPoseDemo.exe --tracking 0 --number_people_max 1
1
2
七,可视化某个 Body 部分
如果需要可视化某个 Body 部分,或 PAF(Part Affinity Field) Heatmap,可以采用 --part_to_show 参数
https://blog.csdn.net/qq_43258953/article/details/104503803
一,openpose相关模型的介绍
BODY25:25个身体关键点的识别,运算时间与检测出的人数无关。
COCO:18个身体关键点的识别,运算时间与检测出的人数无关。
MPI:15个身体关键点的识别,运算时间与检测出的人数无关。
Face:70个面部关键点的识别。目前,运算时间取决于检测出的人数。
Hand:221个手部关键点识别。目前,运算时间取决于检测出的人数。
二,
输入:
图片、视频、网络摄像头的视频流、Flir或Point Grey和IP摄像机。项目提供了C++语言的代码样本,用户可以自定义输入。
输出:
原有图片+关键点展示(PNG、JPG、AVI等格式),关键点数据存储文件((JSON, XML, YML等格式)。
操作系统: Ubuntu (14, 16), Windows (8, 10), Mac OSX, Nvidia TX2.
三,效果图
body+face+hand
四,保存推测结果 --write_images
bin\OpenPoseDemo.exe --video examples/media/video.avi --face --hand --write_video examples\res_images/video.avi
1
五,常用关键参数的介绍:
–face: 开启 Face 关键点检测.
–hand: 开启 Hand 关键点检测
–video input.mp4: 读取 Video.
–camera 3: 读取 webcam number 3.
–image_dir path_to_images/: 运行图像路径内的图片.
–ip_camera http://iris.not.iac.es/axis-cgi/mjpg/video.cgi?resolution=320x240?x.mjpeg: 在 streamed IP camera 上运行. 参考public IP cameras 例子.
–write_video path.avi: 将处理后的图片保存为 Video.
–write_images folder_path: 将处理后的图片保存到指定路径.
–write_keypoint path/: 在指定路径输出包含人体姿态数据的 JSON, XML 或 YML 文件.
–process_real_time: 对于视频,可能在实时运行时,跳过某些视频帧.
–disable_blending: 如果 --disable_blending=True,则在很色背景上渲染估计结果(如 keypoints skeletons 和 heatmaps),而不显示原始图像. Related: part_to_show, alpha_pose, and alpha_pose.-
-part_to_show: 可视化的预测通道(Prediction channel).
–display 0: 不打开可视化显示窗口. 对于服务器部署和 OpenPose 加速很帮助.
–num_gpu 2 --num_gpu_start 1: 多 GPUs 时,设置开始的 GPU id. 默认使用所有可用的 GPUs.
–model_pose MPI: 采用的模型Model,影响 Keypoints 的数量、运行速度和精度.
–logging_level 3: Logging messages threshold, range [0,255]: 0 - 输出所有信息e & 255 - 不输出任何信息. Current messages in the range [1-4], 1 for low priority messages and 4 for important ones.
https://blog.csdn.net/qq_43258953/article/details/104507123
这篇关于Openpose实操的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!