代码拉取完成,页面将自动刷新
将Google Mediapipe中的手部追踪与识别功能封装成动态链接库,通过调用该库可以在桌面应用程序中进行手势识别以及得到手部关节坐标点。
参考Mediapipe – 将Mediapipe handtracking封装成动态链接库dll/so,实现在桌面应用中嵌入手势识别功能的文档实现。
将hand_tracking封装成库的代码参见github。
Windows下的编译请参考上面的文档,本文档仅介绍如何在MacOS下编译和运行hand tracking。
git clone https://gitee.com/xuanyishenzhen/mediapipe_hand_tracking.git
2.下载mediapipe源码
git clone https://github.com/google/mediapipe.git
一、编译动态库
mediapipe_hand_tracking
目录中的mediapipe_hand_tracking
拷贝到mediapipe/mediapipe/example/desktop/
目录中cp -r mediapipe_hand_tracking/mediapipe_hand_tracking mediapipe/mediapipe/example/desktop/
cd mediapipe
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/mediapipe_hand_tracking:MediapipeHandTracking --verbose_failures
注意:编译过程中如果报头文件找不到的错误,说明依赖有误,需要先查找相应头文件在哪个包中,然后编辑BUILD文件,在deps中增加相应的包即可。
二、编译测试程序
libMediapipeHandTracking.so
(在bazel-bin/mediapipe/examples/desktop/mediapipe_hand_tracking
目录)复制到此项目的lib
目录中cp bazel-bin/mediapipe/examples/desktop/mediapipe_hand_tracking/libMediapipeHandTracking.so ../mediapipe_hand_tracking/lib
编译测试程序
cd mediapipe_hand_tracking/build
cmake ..
make
创建动态库目录
mkdir -p bazel-out/darwin-opt/bin/mediapipe/examples/desktop/mediapipe_hand_tracking
将动态库libMediapipeHandTracking.so
复制到该目录
cp ../lib/libMediapipeHandTracking.so bazel-out/darwin-opt/bin/mediapipe/examples/desktop/mediapipe_hand_tracking/
三、运行
将hand_tracking_desktop_live.pbtxt
复制到可执行文件所在的目录(build
)。
创建保存模型文件的目录
mkdir -p mediapipe/modules
从mediapipe项目中将hand_landmark
和palm_detection
两个目录复制到mediapipe/modules
目录中
运行
./MediapipeHandTracking
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。