OpenPose 提供了基于Body,Hand,Facial 等关键点估计的模型,及相应的在 Videos,Wecam,Images 等测试数据的 Demos.
1. 模型下载
- BODY_25 - pose_iter_584000.caffemodel
- COCO - pose_iter_440000.caffemodel
- MPI - pose_iter_160000.caffemodel
- Face - pose_iter_116000.caffemodel
- Hand - pose_iter_102000.caffemodel
2. Demos
[1] - Video
# Ubuntu
./build/examples/openpose/openpose.bin --video examples/media/video.avi
# With face and hands
./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand
[2] - Wecam
# Ubuntu
./build/examples/openpose/openpose.bin
# With face and hands
./build/examples/openpose/openpose.bin --face --hand
[3] - Images
# Ubuntu
./build/examples/openpose/openpose.bin --image_dir examples/media/
# With face and hands
./build/examples/openpose/openpose.bin --image_dir examples/media/ --face --hand
3. 最大精度配置
# Ubuntu: Body
./build/examples/openpose/openpose.bin --net_resolution "1312x736"
--scale_number 4
--scale_gap 0.25
# Ubuntu: Body + Hand + Face
./build/examples/openpose/openpose.bin --net_resolution "1312x736"
--scale_number 4
--scale_gap 0.25
--hand
--hand_scale_number 6
--hand_scale_range 0.4
--face
以上命令行运行结果能够得到 Body,Hand,Face 关键点估计的最高精度.
但,其需要大约 10.5 GB GPU 显存(COCO 模型需要 6.7 GB),对于 Body-Foot 模型,Titan X 能够在大约 2 FPS 运行(COCO 模型大约为 1 FPS).
注[1] - 增加 --net_resolution
尺寸,虽然精度增加,但会导致帧速率(frame rate) 明显减少,延迟性增加. 然而,这种增加精度的方法不是对于所有场景都是一定可行的,需要特定场景特定分析. 如,对于图像中非常小的人体,其比较有效,但对于图像中人体所占比例比较大的场景,其效果一般较差. 因此,OpenPose 推荐采用以上命令行来获得在大部分场景获得最大精度,同时包括大的人体和小的人体的场景.
注[2] - 不要在 MPII 模型使用该命令行配置. 其精度会因多尺度(multi-scale) 设置而降低. 该配置仅适用于 COCO 和COCO-extended(如默认的 BODY_25
) 模型.
4. 人体追踪Tracking
[1] - 牺牲精度,最大实时运行速度:
# Using OpenPose 1 frame, tracking the following e.g., 5 frames
./build/examples/openpose/openpose.bin --tracking 5 --number_people_max 1
[2] - 保持较高精度,实时运行速度:
# Using OpenPose 1 frame and tracking another frame
./build/examples/openpose/openpose.bin --tracking 1 --number_people_max 1
[3] - 视觉平滑 Visual Smoothness:
# Running both OpenPose and tracking on each frame.
# Note: There is no speed up/slow down
./build/examples/openpose/openpose.bin --tracking 0 --number_people_max 1
5. 可视化结果
如果需要可视化某个 Body 部分,或 PAF(Part Affinity Field) Heatmap,可以采用 --part_to_show
参数,得到如下结果: