OpenPose Demo 命令行实战指南:从图像、视频到 3D 重建的完整上手指南
2026/9/19 22:02:02 网站建设 项目流程

OpenPose Demo 命令行实战指南:从图像、视频到 3D 重建的完整上手指南

【免费下载链接】openposeOpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation项目地址: https://gitcode.com/gh_mirrors/op/openpose

OpenPose 是面向人体、人脸、手部与脚部关键点检测的实时多人姿态估计库。本文以仓库 doc/01_demo.md 为骨架,完整讲解如何直接运行官方 Demo(无需改动任何源码):覆盖图像目录、视频、摄像头、IP 摄像头等多输入源的切换,JSON/图片/视频/界面多种输出方式,多 GPU 并行、最高精度配置、3D 重建与帧间跟踪,以及内存不足等常见问题的排查方案。读完本文,你将能够独立使用openpose.bin(Windows 下为OpenPoseDemo.exe)跑通任意输入源,并依据业务场景自由组合参数。

准备工作:可执行程序与示例素材

官方 Demo 的启动方式有三种,任选其一即可:

  • Windows 便携版:直接使用bin\OpenPoseDemo.exe,详见 doc/installation/0_index.md 中的 Windows Portable Demo 小节,无需编译;
  • 源码编译产物:在项目根目录执行 CMake 构建后,使用build/examples/openpose/openpose.bin(Windows 下为build\x64\Release\OpenPoseDemo.exe);
  • Visual Studio 调试运行:若使用 Visual Studio 构建,需要先把bin/*.dll拷贝到最终的 DLL 输出目录(见 doc/installation/0_index.md 的 Windows 小节),或直接修改 include/openpose/flags.hpp 中的默认 flag 值。

运行任何命令时,请务必确认当前处于项目根目录(即 OpenPose 文件夹本身,而不是build/windows/bin/)。仓库自带的示例素材已就绪:examples/media/video.avi(示例视频)与examples/media/(约 20 张示例图片),因此无需修改任何代码即可直接体验。

从源码层面看,Demo 的程序入口在 examples/openpose/openpose.cpp:main()首先调用gflags::ParseCommandLineFlags解析命令行 flag,随后进入openPoseDemo(),由 configureWrapper 把全部 flag 依次映射到WrapperStructPoseWrapperStructFaceWrapperStructHandWrapperStructExtraWrapperStructInputWrapperStructOutputWrapperStructGui等配置结构体,最终通过opWrapper.exec()启动线程流水线。

快速开始:跑通第一个 Demo

在项目根目录执行以下命令,预期可视化结果与 doc/02_output.md 的 UI and Visual Output 小节展示的效果一致:

# Ubuntu 和 Mac ./build/examples/openpose/openpose.bin --video examples/media/video.avi
:: Windows - Portable Demo bin\OpenPoseDemo.exe --video examples/media/video.avi

如果你使用 Visual Studio 构建并已正确拷贝 DLL,则可以这样运行:

:: Windows - Library - 前提:已按 doc/installation/0_index.md#windows 小节拷贝 DLL build\x64\Release\OpenPoseDemo.exe --video examples/media/video.avi

如果运行失败,按以下顺序排查:

  1. 报错为内存不足(out of memory)时,参见后文「改善内存与速度(牺牲精度)」小节;
  2. 使用 Mac 时,先确认「Mac OSX 附加步骤」小节;
  3. 其余错误先查阅 doc/05_faq.md 中的 FAQ。

切换输入源:图像目录、视频与摄像头

OpenPose 支持三种最常见的输入源,对应三个互斥的输入 flag。

图像目录--image_dir {目录路径}):

# Ubuntu 和 Mac ./build/examples/openpose/openpose.bin --image_dir examples/media/
:: Windows - Portable Demo bin\OpenPoseDemo.exe --image_dir examples/media/

视频文件--video {视频路径}):

# Ubuntu 和 Mac ./build/examples/openpose/openpose.bin --video examples/media/video.avi
:: Windows - Portable Demo bin\OpenPoseDemo.exe --video examples/media/video.avi

摄像头(默认输入源):不指定--image_dir--video时默认使用摄像头;机器上有多台摄像头时用--camera {编号}指定:

# Ubuntu 和 Mac ./build/examples/openpose/openpose.bin ./build/examples/openpose/openpose.bin --camera 0 ./build/examples/openpose/openpose.bin --camera 1
:: Windows - Portable Demo bin\OpenPoseDemo.exe bin\OpenPoseDemo.exe --camera 0 bin\OpenPoseDemo.exe --camera 1

此外,include/openpose/flags.hpp 中还有--ip_camera用于读取支持 RTSP / HTTP 协议的流媒体摄像头。输入源的选择逻辑集中在 examples/openpose/openpose.cpp:flagsToProducer会依据--image_dir--video--ip_camera--camera--flir_camera的组合决定最终的ProducerType。摄像头分辨率由--camera_resolution控制,默认-1x-1即使用 OpenCV 的默认 1280x720。

一键开启人脸与手部关键点检测

在任意命令后追加--face和/或--hand即可:

# Ubuntu 和 Mac ./build/examples/openpose/openpose.bin --image_dir examples/media/ --face --hand ./build/examples/openpose/openpose.bin --video examples/media/video.avi --face --hand ./build/examples/openpose/openpose.bin --face --hand
:: Windows - Portable Demo bin\OpenPoseDemo.exe --image_dir examples/media/ --face --hand bin\OpenPoseDemo.exe --video examples/media/video.avi --face --hand bin\OpenPoseDemo.exe --face --hand

源码层面的对应关系:--face--hand分别控制 examples/openpose/openpose.cpp 中的WrapperStructFaceWrapperStructHand。开启后人脸与手部网络会共享--model_folder指定的模型目录(对应仓库中的models/face/pose_deploy.prototxtmodels/hand/pose_deploy.prototxt)。需要留意的是:

  • 开启后人脸/手部检测速度与图中人数强相关,人数越多越慢;
  • 手部网络的分辨率由--hand_net_resolution(默认368x368,需为 16 的倍数且为正方形)控制;官方实测--hand_scale_number 6 --hand_scale_range 0.4组合精度最佳;
  • 人脸网络分辨率由--face_net_resolution(默认368x368)控制,多人脸场景下320x320通常可在几乎不掉精度的前提下显著提速。

输出配置:JSON、图片、视频与界面可以自由组合

OpenPose 的各类输出相互独立、互补叠加:是否在界面显示骨架与是否把结果写入磁盘互不影响。

保存 JSON 关键点数据--write_json {输出目录}),JSON 格式说明见 doc/02_output.md:

# Ubuntu 和 Mac(Windows 下 flag 相同) ./build/examples/openpose/openpose.bin --image_dir examples/media/ --write_json output_jsons/ ./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_json output_jsons/ ./build/examples/openpose/openpose.bin --write_json output_jsons/

每个 JSON 文件对应一帧画面,包含people数组,每人包含pose_keypoints_2dface_keypoints_2dhand_left_keypoints_2dhand_right_keypoints_2d,以及开启--3d后的*_keypoints_3d(格式为x,y,z,c),还可在开启--part_candidates时额外输出组装为人体之前的部位候选。具体字段样例见 doc/02_output.md 的 JSON Output Format 小节。坐标的归一化范围由--keypoint_scale决定(0=原始输入分辨率,1=网络输出分辨率,2=最终输出分辨率,3=[0,1],4=[-1,1])。

把带骨架的渲染结果保存为视频或图片--write_video {视频路径}/--write_images {输出目录}):

# Ubuntu 和 Mac(Windows 下 flag 相同) ./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_video output/result.avi ./build/examples/openpose/openpose.bin --image_dir examples/media/ --write_video output/result.avi ./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_images output_images/ ./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_images output_images/ --write_images_format jpg ./build/examples/openpose/openpose.bin --image_dir examples/media/ --write_images output_images/ ./build/examples/openpose/openpose.bin --image_dir examples/media/ --write_images output_images/ --write_images_format jpg

--write_images_format默认png,可改为jpgbmp等 OpenCVcv::imwrite支持的扩展名;--write_video内部使用cv::VideoWriter,输出路径必须以.avi结尾(motion JPEG 编码)。

关闭 GUI 窗口--display 0):适合服务器环境或轻微提速。但注意:关闭显示后必须指定至少一种磁盘输出--write_json--write_video--write_images三选一),否则程序无输出可写:

# Ubuntu 和 Mac(Windows 下 flag 相同) ./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_images output_images/ --display 0

进一步提速--display 0且不使用--write_video/--write_images时,可追加--render_pose 0跳过骨架叠加渲染,节省渲染开销:

# Ubuntu 和 Mac(Windows 下 flag 相同) ./build/examples/openpose/openpose.bin --video examples/media/video.avi --write_json output_jsons/ --display 0 --render_pose 0

另外提醒:--write_keypoint已被官方标记为废弃(源码 include/openpose/flags.hpp 中注明 "Deprecated, usewrite_json"),examples/openpose/openpose.cpp 在检测到该 flag 时也会打印弃用警告,新项目请一律使用--write_json

纯骨架渲染:去掉背景图像

追加--disable_blending后,渲染结果(骨架或热力图)将绘制在纯黑背景上,而不是叠加到原始图像:

# Ubuntu 和 Mac(Windows 下 flag 相同) # 仅人体骨架 ./build/examples/openpose/openpose.bin --video examples/media/video.avi --disable_blending

该 flag 的定义见 include/openpose/flags.hpp,与--part_to_show--alpha_pose--alpha_heatmap相互关联:--part_to_show选择可视化通道(0=全部部位,1=背景热力图,2=热力图叠加,3=PAF 叠加,之后依次为各部位热力图与各部位对 PAF),--alpha_pose--alpha_heatmap控制 GPU 渲染下的混合透明度。

多 GPU 并行:控制使用哪些显卡

默认情况下 OpenPose 会使用机器上所有可用 GPU--num_gpu指定使用的 GPU 总数,--num_gpu_start指定起始 GPU 编号。例如--num_gpu 2 --num_gpu_start 1表示使用 GPU ID 1 和 2、跳过 GPU ID 0(需机器至少有 3 块 GPU):

:: Windows - Portable Demo(Ubuntu 和 Mac 下 flag 相同) bin\OpenPoseDemo.exe --video examples/media/video.avi --num_gpu 2 --num_gpu_start 1

对应源码 include/openpose/flags.hpp:--num_gpu为负数时自动使用全部 GPU;--num_gpu_start默认 0。

最高精度配置

以下命令是目前官方在人体、手部、人脸关键点检测上能达到的最高精度配置:

# Ubuntu 和 Mac:仅人体 ./build/examples/openpose/openpose.bin --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25 # Ubuntu 和 Mac:人体 + 手 + 人脸 ./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
:: Windows - Portable Demo:仅人体 bin\OpenPoseDemo.exe --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25 :: Windows - Portable Demo:人体 + 手 + 人脸 bin\OpenPoseDemo.exe --net_resolution "1312x736" --scale_number 4 --scale_gap 0.25 --hand --hand_scale_number 6 --hand_scale_range 0.4 --face

硬件与模型硬性要求:

  • 必须使用BODY_25(默认模型,定义于 include/openpose/flags.hpp);COCO精度略低但仍可用;MPI不支持该配置(精度与速度都会下降);
  • 需要至少 16 GB 显存的 Nvidia GPU,具体分档如下:
    • BODY_25(人体 + 脚,默认模型):约 10.5 GB,如 Titan X(P)、部分 Quadro、P100、V100;
    • BODY_25+ 人脸 + 手:约 16 GB,如 V100;
    • COCO人体 + 人脸 + 手:约 6.7 GB,如 2070、2080;
  • CPU / OpenCL 模式无法运行该配置,唯一替代方案是手动裁剪每个人、缩放后喂入默认 OpenPose。

补充信息:

  • 官方文档记载:该配置在 Titan X 上约 2 FPS(BODY_25),COCO约 1 FPS;
  • 盲目增大--net_resolution会大幅降低速度,且不保证精度提升,因此官方建议只使用这里给出的确切 flag 与取值;
  • --maximize_positives(不推荐,风险自负)会降低人体候选的接受阈值,牺牲视觉/定性精度以换取 COCO 挑战的数值精度。其底层实现在 src/openpose/pose/poseParameters.cpp:开启后 NMS 阈值由 0.05 降至 0.02、连接筛选阈值由 0.95 降至 0.75、部位连接阈值由 0.05 降至 0.01、最小子集数量由 3 降至 2、最小子集得分由 0.4 降至 0.05,直观表现是同时增加假阳性与真阳性(最大化平均召回率、可能损害平均精度),视觉上明显变差但挑战数值提升;
  • Ubuntu 用户可查看官方用于精度测试的实验脚本(非官方支持,可能随时变动):scripts/tests/pose_accuracy_coco_test_dev.shscripts/tests/pose_accuracy_coco_val.sh

附加模型:更高精度(BODY_25B)

官方论文中的精度数字与默认模型并不一致——论文发布时释放的是当时的最佳模型,之后又找到了更好的模型。如需更高精度的BODY_25B预训练模型,可从 OpenPose 训练仓库下载「Option 1(最大精度、较慢)」版本。该模型精度更高,但更慢、占用更多显存,且必须使用 Nvidia GPU 版本。

附加模型:更少假阳性(BODY_25B)

若需要假阳性更少、但运行性能与显存要求不变的模型,可从 OpenPose 训练仓库下载BODY_25B预训练模型的「Option 2(推荐)」版本。同样必须使用 Nvidia GPU 版本。

3D 重建:多视角立体视觉实战

3D 重建依赖多相机系统(如 FLIR/Point-Grey 立体相机),并把同一人体的关键点在多个视角间三角化。以下按官方文档的五个步骤展开。

1. 实时 3D Demo

# Ubuntu 和 Mac ./build/examples/openpose/openpose.bin --flir_camera --3d --number_people_max 1 # 带人脸与手部 ./build/examples/openpose/openpose.bin --flir_camera --3d --number_people_max 1 --face --hand
:: Windows - Portable Demo bin\OpenPoseDemo.exe --flir_camera --3d --number_people_max 1 :: 带人脸与手部 bin\OpenPoseDemo.exe --flir_camera --3d --number_people_max 1 --face --hand

注意:--3d模式只显示 1 个人,画面中存在多人时会失败,因此必须搭配--number_people_max 1。该模式对应 examples/openpose/openpose.cpp 中WrapperStructExtra--3d--3d_min_views配置。

2. 保存 3D 关键点与视频

# Ubuntu 和 Mac(Windows 下 flag 相同) ./build/examples/openpose/openpose.bin --flir_camera --3d --number_people_max 1 --write_json output_folder_path/ --write_video_3d output_folder_path/video_3d.avi

--write_json会把 3D 关键点以x,y,z,c形式写入 JSON(c为 1 或 0 表示 3D 重建是否成功);--write_video_3d保存 3D 可视化结果视频(对应 flag 定义见 include/openpose/flags.hpp)。

3. 快速保存立体相机原始图像(不做关键点检测),供后续离线处理:

# Ubuntu 和 Mac(Windows 下 flag 相同) # 保存视频(注意:保存 PNG 相比 JPG 画质更好,但会降低 FPS,具体取决于硬盘写入速度与相机数量) ./build/examples/openpose/openpose.bin --flir_camera --num_gpu 0 --write_video output_folder_path/video.avi --write_video_fps 5 # 保存图片(注意:保存 PNG 相比 JPG 画质更好,但会降低 FPS,具体取决于硬盘写入速度与相机数量) ./build/examples/openpose/openpose.bin --flir_camera --num_gpu 0 --write_images output_folder_path/ --write_images_format jpg

这里--num_gpu 0表示完全跳过关键点检测网络,仅做采集与存储。

4. 读取并处理之前保存的立体相机图像

# Ubuntu 和 Mac(Windows 下 flag 相同) # 可选追加 --face 和/或 --hand 以包含人脸与手部 # 假设有 3 台相机 # 注意:强烈建议降低 --output_resolution。例如 3 台相机以 1920x1080 录制时,拼接后图像为 (3x1920)x1080,建议设为如 640x360(缩小 3 倍) # 视频 ./build/examples/openpose/openpose.bin --video output_folder_path/video.avi --3d_views 3 --3d --number_people_max 1 --output_resolution {desired_output_resolution} # 图片 ./build/examples/openpose/openpose.bin --image_dir output_folder_path/ --3d_views 3 --3d --number_people_max 1 --output_resolution {desired_output_resolution}

--3d_views--image_dir/--video的补充选项:每轮读取多张图像用于立体处理(如--3d)。使用时必须设置--camera_parameter_path(默认models/cameraParameters/flir/,仓库示例见models/cameraParameters/flir/17012332.xml.example),且该目录下必须恰好存在与视角数相同的 XML 相机参数文件。

5. 关键点在至少 x 个视角可见时才进行重建

# Ubuntu 和 Mac(Windows 下 flag 相同) # 关键点至少在 2 个视角可见时重建(假设 n >= 2) ./build/examples/openpose/openpose.bin --flir_camera --3d --number_people_max 1 --3d_min_views 2 --output_resolution {desired_output_resolution} # 关键点至少在 max(2, min(4, n-1)) 个视角可见时重建(默认规则) ./build/examples/openpose/openpose.bin --flir_camera --3d --number_people_max 1 --output_resolution {desired_output_resolution}

--3d_min_views默认-1,等价于max(2, min(4, #cameras-1))(见 include/openpose/flags.hpp)。

帧间跟踪(Tracking,实验性)

--tracking用于在帧间跟踪人体,官方标注为实验性功能。取值含义:-1(默认)禁用;正整数表示每隔 N 帧运行一次 OpenPose 关键点检测、其余帧用跟踪结果填补;0表示每帧同时运行检测与跟踪(无提速/减速,但平滑性更好)。以下三种用法覆盖不同诉求:

:: Windows - Portable Demo(Ubuntu 和 Mac 下 flag 相同) :: 1. 大幅提速(牺牲精度):OpenPose 每 1 帧检测,后续约 5 帧用跟踪结果 bin\OpenPoseDemo.exe --tracking 5 --number_people_max 1 :: 2. 提速同时保留大部分精度:OpenPose 每 1 帧检测,另 1 帧跟踪 bin\OpenPoseDemo.exe --tracking 1 --number_people_max 1 :: 3. 视觉平滑:每帧同时运行 OpenPose 与跟踪,无提速/减速 bin\OpenPoseDemo.exe --tracking 0 --number_people_max 1

--number_people_max默认-1(保留全部检测到的人);设定正整数后,OpenPose 会按「人体面积、部位得分、部位间连接得分」保留得分最高的前 N 人,可用于剔除假阳性(前提是场景中的人都被检出),但也可能把过小或严重遮挡的人当作假阴性删掉。

将 Kinect 2.0 用作 Windows 10 摄像头

自 Windows 10 Anniversary 更新起,Kinect 2.0 可被当作普通网络摄像头读取。步骤:打开「设备管理器」,展开kinect sensor devices选项卡,右键WDF kinectSensor Interface并更新驱动程序。若已有其他摄像头,请先断开它,或使用--camera 2指定 Kinect 的设备编号。

常用 Flags 一览

以下是官方文档列出的最常用 flag(完整列表与全部说明见 doc/advanced/demo_advanced.md):

Flag作用
--face开启人脸关键点检测
--hand开启手部关键点检测
--video input.mp4读取视频文件input.mp4
--camera 3读取 3 号摄像头
--image_dir path_with_images/处理目录path_with_images/下的图像
--ip_camera <URL>处理流媒体 IP 摄像头,URL 支持 RTSP 与 HTTP 协议
--write_video path.avi把处理后的图像保存为视频
--write_images folder_path把处理后的图像保存到文件夹
--write_keypoint path/输出包含人体姿态数据的 JSON / XML / YML 文件(已废弃,请改用--write_json
--process_real_time视频处理时可能跳帧以保持实时播放
--disable_blending在黑色背景上渲染结果(骨架或热力图),不显示原图。相关 flag:part_to_showalpha_posealpha_pose
--part_to_show选择要可视化的预测通道
--display 0不打开显示窗口,适合服务器场景或轻微提速
--num_gpu 2 --num_gpu_start 1从指定设备 ID 开始并行使用指定数量的 GPU;默认使用全部可用 GPU
--model_pose MPI选择模型,影响关键点数量、速度与精度
--logging_level 3日志输出阈值,取值范围 [0,255]:0 输出所有消息,255 全部不输出;当前消息位于 [1,4],1 为低优先级、4 为高优先级

其中--logging_level--model_pose的取值在 examples/openpose/openpose.cpp 中有运行时校验:logging_level超出 [0,255] 会直接报错;--model_pose支持BODY_25COCOMPIMPI_4_layers以及BODY_19BODY_25B等,字符串到枚举的映射见 src/openpose/utilities/flagsToOpenPose.cpp。--model_pose对应的模型定义文件位于仓库 models/pose 下:body_25/pose_deploy.prototxtcoco/pose_deploy_linevec.prototxtmpi/pose_deploy_linevec.prototxtmpi/pose_deploy_linevec_faster_4_stages.prototxt;预训练权重可通过 models/getModels.sh(Windows 为models/getModels.bat)下载。

进阶快速开始

更多进阶 flag(如--output_resolution--keypoint_scale--heatmaps_add_parts--write_heatmaps--part_candidates--disable_multi_thread--body--face_detector--hand_detector等)请阅读 doc/advanced/demo_advanced.md。也可以随时运行--help查看全部可用 flag——只需关注输出中Flags from examples/openpose/openpose.cpp:一节的条目即可:

# Ubuntu 和 Mac ./build/examples/openpose/openpose.bin --help
:: Windows - Portable Demo bin\OpenPoseDemo.exe --help

Bug 排查:内存不足、速度过慢与平台差异

改善内存占用与速度(代价是精度下降)

如果你的 Nvidia GPU 运行时不报内存不足,请直接跳过本小节!

--net_resolution需要谨慎使用:当 GPU 显存不足或没有 Nvidia GPU 时,可以降低该值以提升速度并减少显存占用,但精度也会明显下降——分辨率越低,速度越快、显存越省,精度越低:

# Ubuntu 和 Mac ./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution -1x320 ./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution -1x256 ./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution -1x196 ./build/examples/openpose/openpose.bin --video examples/media/video.avi --net_resolution -1x128
:: Windows - Portable Demo bin\OpenPoseDemo.exe --video examples/media/video.avi --net_resolution -1x320 bin\OpenPoseDemo.exe --video examples/media/video.avi --net_resolution -1x256 bin\OpenPoseDemo.exe --video examples/media/video.avi --net_resolution -1x196 bin\OpenPoseDemo.exe --video examples/media/video.avi --net_resolution -1x128

补充要点(均与 include/openpose/flags.hpp 中的定义一致):

  • 默认网络分辨率为-1x368,任何更小的分辨率都能提升速度;
  • -1表示该维度自动适配以保持输入源的宽高比。例如-1x368656x-1656x368对 720p 和 1080p 输入会得到完全相同的结果分辨率;
  • 处理视频时推荐使用-1,让 OpenPose 自动选择理想分辨率;处理不同尺寸混合的图像目录时,若不用-1且图像宽高比差异极大,可能触发内存不足。例如目录里有100x1104010000x368两张图,默认-1x368会分别得到网络输出分辨率3x36810000x368,后者显然会内存溢出;
  • 进阶辅助:--net_resolution_dynamic(仅对图像/自定义输入生效,默认 1)可在使用-1时把网络宽度裁剪到「该值 × 默认 16:9 宽度(368 高对应 656 宽)」以内,小显存 GPU 建议设 1,大显存 GPU 建议设 0 以追求最大精度与速度。

Mac OSX 附加步骤(仅 OPENCL 模式)

如果你不用 Mac,或使用的是CPU_only的 Mac,可以跳过本节。

若你的 Mac 启用了OPENCL支持且带有 AMD 独立显卡,机器上会存在两块不兼容的 GPU(AMD 与 Intel)。此时需要手动选择其中一块(AMD 通常更强)。先用clinfo查看设备编号——AMD 设备大概率是设备 2:

clinfo

随后在任意 OpenPose 命令中追加以下两个 flag,指定使用 AMD 显卡加速(num_gpu_start填上面查到的设备 ID):

./build/examples/openpose/openpose.bin --num_gpu 1 --num_gpu_start 2

如果只有 Intel 核显,则它大概率是设备 1,请始终追加:

./build/examples/openpose/openpose.bin --num_gpu 1 --num_gpu_start 1

FAQ

其余错误、问题与顾虑请查阅 doc/05_faq.md。

小结

OpenPose Demo 的价值在于「零改动即可体验完整的多人姿态估计流水线」:通过 examples/openpose/openpose.cpp 这一薄封装,--image_dir/--video/ 摄像头 / IP 摄像头 / FLIR 立体相机等多输入源、--write_json/--write_video/--write_images等输出通道、--net_resolution/--scale_number/--num_gpu等精度与性能旋钮全部以命令行 flag 形式开放。建议的组合思路是:先按本文「快速开始」跑通默认流程,再按输入源需求挑选对应 flag,最后在「最高精度」与「降低--net_resolution」两个方向之间根据 GPU 显存与帧率要求做权衡,并借助--help与 doc/advanced/demo_advanced.md 探索更多高级参数。

【免费下载链接】openposeOpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation项目地址: https://gitcode.com/gh_mirrors/op/openpose

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询