iOS の MediaPipe フレームワーク

MediaPipe フレームワークを使用して iOS サンプルアプリをビルドする手順は次のとおりです。これらのサンプルアプリについて詳しくは、iOS の Hello World から始めてください。

iOS サンプルアプリの作成

前提条件

  1. こちらの手順に沿って Mediapipe Framework をインストールします。

  2. Xcode をインストールしてから、次のコマンドを使用してコマンドライン ツールをインストールします。

    xcode-select --install
    
  3. Bazelisk をインストールします。

    最新バージョンを入手するには、Homebrew を使用することをおすすめします。

    brew install bazelisk
    
  4. 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. Bazel ビルド構成から Xcode プロジェクトを生成するには、Tulsi というツールを使用します。

    # 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 デバイスにアプリをインストールするには、プロビジョニング プロファイルが必要です。次の 2 つの方法があります。

  1. 自動プロビジョニング。これにより、アプリをビルドして個人のデバイスにインストールできます。プロビジョニング プロファイルは Xcode によって管理され、頻繁に更新する必要があります(有効期間は約 1 週間です)。

  2. カスタム プロビジョニング。これには、Apple デベロッパー アカウントに関連付けられたプロビジョニング プロファイルが使用されます。これらのプロファイルは有効期間が長く、複数のデバイスをターゲットに設定できますが、取得するには Apple の有料デベロッパー アカウントが必要です。

自動プロビジョニング

  1. 前述のように、MediaPipe の Xcode プロジェクトを作成します。

  2. 左側のサイドバーのプロジェクト ナビゲータで、[Mediapipe] プロジェクトを選択します。

  3. アプリケーション ターゲットのいずれか(HandTrackingGpuApp など)を選択します。

  4. [署名と機能] タブを選択します。

  5. [署名を自動的に管理する] をオンにして、ダイアログを確定します。

  6. [チーム] ダイアログ メニューで [自分の名前(個人チーム)] を選択します。

  7. この設定は、インストールするアプリケーションごとに 1 回行う必要があります。必要に応じて手順 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 Framework のデモを選択し、通常どおりビルドして実行できるようになりました。

コマンドラインを使用してアプリをビルドする

  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. これで、デバイスでアプリを実行できるようになります。