接上篇 macos系统编译MediaPipe并打包单个算法为ios的framework–以PoseTracking为例(1)
上篇已经配置好了Mediapip运行环境,这篇讲解如何使用Tulsi.app把Mediapipe转成Xcode项目
使用Tulsi转换Mediapipe为Xcode项目
一、使用Tulsi.app打开MediaPipe.tulsiproj
- 点击Tulsi.app的Open existing project
二、查看并解决报错
1、错误1:bazel版本错误
- 已知homebrew已下载了bazelisk和bazel,其中bazelisk更新了版本为6.2.1,bazel版本为5.3.2
- 先bazel --version查看本机bazel版本,已知是bazel 6.2.1(这里是bazelisk更新的bazel可执行版本)
- 而Tulsi.app显示bazel还是使用的是以前的5.3.2版本,这是由于之前还是link了旧的bazel版本
- 查看mediapipe文件夹下的.bazelversion文件,版本最低要求6.1.1 (查看~./mediapipe-0.10.14/.bazelversion),此时bazelisk管理的6.2.1已经满足bazel版本了,所以可以直接用。
- 把Tulsi.app使用的bazel5.3.2改为至少6.1.1及以上版本,即bazelisk管理的版本
- 我们直接选择bazelisk的可执行文件,选择后自动编译,编译成功,无报错。
~ % bazel --version
bazel 6.2.1
错误2:bazel编译成功,但是点击Generate后项目生成失败: Failed to create Xcode project.![请添加图片描述](https://img-blog.csdnimg.cn/direct/7697bf0b699e40378facc3057bbed56e.jpeg)
- 这里说项目生成失败,我们仔细看报错信息,是由于项目环境没有配置好。
- 报错信息里有一句话: /Users/用户名/mediapipe-0.10.14/mediapipe/examples/ios/bundle_id.bzl 这个环境配置文件有错误
- 我们打开这个文件,修改框出来的地方:BUNDLE_ID_PREFIX = “com.mediapipe.examples”,重新点击“Generate”,这个报错就解决了。
- 此类 Failed to create Xcode project的报错,都可以通过查看错误信息提示来解决。类似错误详情报错 No module named ‘numpy’,则需要homebrew安装numby库等。
错误3:无法解析标签
- 刚才的问题解决后,重新点击Generate按钮,报错这个弹窗
解决办法:
- 找到 mediapipe文件夹下的MediaPipe.tulsiproj ,右击显示包内容,找到 Configs/MediaPipe.tulsigen,使用文本编辑打开MediaPipe.tulsigen。
在每个 buildTargets 路径之前输入 @。
"buildTargets" : [
"@//mediapipe/examples/ios/facedetectioncpu:FaceDetectionCpuApp",
"@//mediapipe/examples/ios/facedetectiongpu:FaceDetectionGpuApp",
"@//mediapipe/examples/ios/faceeffect:FaceEffectApp",
“@//mediapipe/examples/ios/facemeshgpu:FaceMeshGpuApp”,
“@//mediapipe/examples/ios/handdetectiongpu:HandDetectionGpuApp”,
“@//mediapipe/examples/ios/handtrackinggpu:HandTrackingGpuApp”,
“@//mediapipe /examples/ios/helloworld:HelloWorldApp",
"@//mediapipe/examples/ios/holistictrackinggpu:HolisticTrackingGpuApp", "
@//mediapipe/examples/ios/iristrackinggpu:IrisTrackingGpuApp",
"@//mediapipe/examples/ios/物体检测CPU:对象检测CpuApp",
“@//mediapipe/examples/ios/objectdetectiongpu:ObjectDetectionGpuApp”,
“@//mediapipe/examples/ios/objectdetectiontrackinggpu:ObjectDetectionTrackingGpuApp”,
“@//mediapipe/examples/ios/posetrackinggpu:PoseTrackingGpuApp”,
“@
- 重新点击Generate按钮,Xcode项目生成成功。
错误4(补充):Generate按钮灰色不能点击
- 这是由于前面没有使用终端执行helloworld程序导致的(具体看前一篇)
- cd到mediapipe文件夹,重新执行bazel run --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hello_world:hello_world,执行成功即环境配置成功,Generate按钮即变蓝可点击。
- 其实就是执行成功后,会在电脑上生成一个路径:/private/var/tmp/_bazel_用户名,里面会有一些配置项,如果你删除了_bazel_用户名这个文件夹,再重新执行上条语句则会重新下载配置环境并生成这个文件夹。
结束语
- 至此,Mediapipe的Xcode项目已生成成功。