iOS 上的 MediaPipe 框架

请按照以下说明使用 MediaPipe 框架构建 iOS 示例应用。如需详细了解这些示例应用,请从 iOS 版 Hello World! 开始。

构建 iOS 示例应用

前提条件

  1. 按照这些instructions安装 Mediapipe 框架。

  2. 安装 Xcode,然后使用以下命令安装命令行工具:

    xcode-select --install
    
  3. 安装 Bazelisk

    我们建议使用 Homebro 获取最新版本。

    brew install bazelisk
    
  4. 将 Python 3.7 设置为默认 Python 版本并安装 Python“six”库。这是 TensorFlow 的必要条件。

    pip3 install --user six
    
  5. 克隆 MediaPipe 代码库。

    git clone https://github.com/google/mediapipe.git
    

设置软件包 ID 前缀

所有 iOS 应用都必须具有软件包 ID,并且您必须拥有一个预配配置文件,以便将具有该 ID 的应用安装到您的手机上。为避免不同 MediaPipe 用户之间发生冲突,您需要为我们的 iOS 演示版应用的软件包 ID 配置唯一的前缀。

如果您有自定义预配配置文件,请参阅下面的自定义配置

否则,请运行以下命令以生成唯一的前缀:

python3 mediapipe/examples/ios/link_local_profiles.py

创建 Xcode 项目

这使您可以在 Xcode 中修改和调试一个示例应用。您也可以使用自动预配功能(请参阅下一部分)。

  1. 我们将使用一款名为 Tulsi 的工具,根据 Bazel 构建配置生成 Xcode 项目。

    # cd out of the mediapipe directory, then:
    git clone https://github.com/bazelbuild/tulsi.git
    cd tulsi
    # remove Xcode version from Tulsi's .bazelrc (see http://github.com/bazelbuild/tulsi#building-and-installing):
    sed -i .orig '/xcode_version/d' .bazelrc
    # build and run Tulsi:
    sh build_and_run.sh
    

    这会在您的主目录的 Applications 目录内安装 Tulsi.app

  2. 使用 Tulsi 应用打开 mediapipe/Mediapipe.tulsiproj

  3. 在“Configs”标签页中选择 MediaPipe 配置,然后按下方的“Generate”(生成)按钮。系统会要求您提供用于保存 Xcode 项目的位置。项目生成后,将在 Xcode 中打开。

    如果您收到有关软件包 ID 的错误消息,请参阅上一部分

设置配置

要在 iOS 设备上安装应用,您需要配置配置文件。共有两个选项可供选择:

  1. 自动配置。这样,您就可以构建应用并将其安装到个人设备上。预配配置文件由 Xcode 管理,必须经常更新(有效期约一周)。

  2. 自定义配置。此 API 使用与 Apple 开发者帐号关联的预配配置文件。这些配置文件的有效期较长,可以针对多台设备,但您需要有 Apple 付费开发者账号才能获取此类配置文件。

自动配置

  1. 上文所述,为 MediaPipe 创建 Xcode 项目

  2. 在左侧边栏的项目导航器中,选择“Mediapipe”项目。

  3. 选择一个应用目标,例如 HandTrackingGpuApp。

  4. 选择“Signing & Capabilities”(签名和功能)标签页。

  5. 选中“自动管理签名”并确认对话框。

  6. 在“团队”对话框菜单中选择“Your Name (个人团队)”。

  7. 您需要对要安装的每个应用进行一次此设置。根据需要重复第 3-6 步。

这会为您选择的每个应用生成预配配置文件。现在,您需要告知 Bazel 使用它们。为简化操作,我们提供了一个脚本。

  1. 在终端中,转到克隆代码库的 mediapipe 目录。

  2. 运行以下命令:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

这将查找并关联您已在 Xcode 中为其启用自动配置的所有应用的预配配置文件。

自定义配置

  1. 从 Apple 获取配置文件。
  1. 将您的预配配置文件符号链接或复制到 mediapipe/mediapipe/provisioning_profile.mobileprovision

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
  1. 打开 mediapipe/examples/ios/bundle_id.bzl,然后将 BUNDLE_ID_PREFIX 更改为与您的预配配置文件关联的前缀。

使用 Xcode 构建并运行应用

  1. 创建 Xcode 项目,并确保已设置自动或自定义预配。

  2. 现在,您可以在目标菜单中选择任何 Mediapipe 框架演示,并照常构建并运行这些演示。

使用命令行构建应用

  1. 确保您已设置自动或自定义配置。

  2. 例如,使用 MediaPipe Hands,运行以下命令:

    bazel build -c opt --config=ios_arm64 mediapipe/examples/ios/handtrackinggpu:HandTrackingGpuApp
    

    您可能会看到来自 codesign 的权限请求,以便为您的应用签名。

  3. 在 Xcode 中,打开 Devices and Simulators 窗口 (command-shift-2)。

  4. 确保您的设备已连接。您将看到已安装应用的列表。 按列表下方的“+”按钮,然后选择 Bazel 构建的 .ipa 文件。

  5. 现在,您可以在设备上运行该应用。