前言
本以为,上篇文档就足够说明运行官方示例了,但有小伙伴直接说,还是不行的
本篇文档简单记录一次,无法编译或运行官方示例,供有需要的小伙伴参考解决其他示例
一、查找编译运行命令
以holistic_tracking_cpu示例为例,笔者使用的编译运行命令如下:
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="D://Program//Python310//python.exe" mediapipe/examples/desktop/holistic_tracking:holistic_tracking_cpu
set GLOG_logtostderr=1
bazel-bin\mediapipe\examples\desktop\holistic_tracking\holistic_tracking_cpu --calculator_graph_config_file=mediapipe\\graphs\\holistic_tracking\\holistic_tracking_cpu.pbtxt
1.第一条命令,是编译命令,若要运行其他桌面示例,可以到{mediapipe_dir}\mediapipe\examples\desktop下,查看下示例的名字,
例如想要运行face_detection示例,使用文本编辑器,打开{mediapipe_dir}\mediapipe\examples\desktop\face_detection\BUILD文件,找到如下位置
标红的位置,就是要构建的应用程序名称,
若是要编译face_detection_cpu示例,对应编译命令如下:
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="D://Program//Python310//python.exe" mediapipe/examples/desktop/face_detection:face_detection_cpu
2.第三条命令,是运行命令,还是以face_detection示例为例
第一部分是应用程序名称,默认生成的可执行文件,在目录{mediapipe_dir}\bazel-bin\mediapipe\examples\desktop目录下,具体到face_detection示例,就是{mediapipe_dir}\bazel-bin\mediapipe\examples\desktop\face_detection\face_detection_cpu.exe
程序运行所需的动态库,一般也会放到这里
然后参数里的配置文件,默认的配置文件,在目录{mediapipe_dir}\mediapipe\graphs目录下,具体到face_detection示例,就是{mediapipe_dir}\mediapipe\graphs\face_detection目录。
这个目录下,可能有多个文件,一定要根据自己编译的实际示例选择,当前编译示例对应的文件是face_detection_desktop_live.pbtxt
若是要运行face_detection_cpu示例,对应编译命令如下:
bazel-bin\mediapipe\examples\desktop\face_detection\face_detection_cpu --calculator_graph_config_file=mediapipe\\graphs\\face_detection\\face_detection_desktop_live.pbtxt
二、复制.tflite文件
这个有点坑啊,记得上次编译mediapipe时,并不需要复制.tflite文件
现在运行时,直接提示找不到这些文件
以下是笔者查询这些文件的方法
1.存在.tflite文件
以face_detection示例为例,在BUILD文件(上一步里的BUILD文件)
可以找到生成的.tflite文件,但文件的实际位置是在{mediapipe_dir}\mediapipe\bazel-out\x64_windows-opt\bin\mediapipe\modules\目录下,
对应到face_detection_cpu示例,是{mediapipe_dir}\mediapipe\bazel-out\x64_windows-opt\bin\mediapipe\modules\face_detection\face_detection_short_range.tflite
需要复制到{mediapipe_dir}\mediapipe\modules\目录,
对应到face_detection_cpu示例,是{mediapipe_dir}\mediapipe\modules\face_detection目录
一个示例也可能需要复制多个.tflite文件,也可以根据运行提示,一个个查询并复制
2.不存在.tflite文件
有时,把BUILD文件(上一步里的BUILD文件)中,查的到的.tflite文件文件都复制了,还是缺少
以holistic_tracking_cpu为例
以上文件复制完成后,会提示缺少mediapipe\modules\face_detection\face_detection_short_range.tflite,且编译输出目录找不到对应文件,这时需要自己先手动编译下face_detection了😂,然后按上述方法,再复制一下
后记
官方文档还没看完,没想到运行个示例都这么麻烦🤪,但一想到这是个开源项目,先认了吧
以上是笔者解决问题的方法
笔者决定先看完官方文档,然后直接加载框架静态库,这样就可以在QtCreator中,直接运行示例源码了( ̄_, ̄ )