iOS の設定ガイド

このページでは、iOS アプリで MediaPipe Tasks を使用するための開発環境を設定する方法について説明します。

サポートされているデバイスとプラットフォーム

MediaPipe Tasks を使用して iOS アプリを作成するには、開発環境に以下が必要です。

  • macOS Mojave 10.14.3 以降。

  • Xcode 10.3 以降。

  • iOS デバイス(iOS 12.0 以降)また、iOS シミュレータでは、デバイスのカメラを必要としないアプリを処理できます。

開発環境の設定

iOS アプリで MediaPipe タスクを実行する前に、既存の Xcode プロジェクトを用意するか、ローカルマシンで新しい Xcode プロジェクトを作成する必要があります。

MediaPipe Tasks は、CocoaPods を使用してのみインストールできます。始める前に、CocoaPods 1.12.1 以降をインストールする必要があります。macOS に CocoaPods をインストールする手順については、CocoaPods インストール ガイドをご覧ください。

コードのセットアップ例

MediaPipe サンプル リポジトリには、MediaPipe タスク用の iOS アプリのサンプルが含まれています。

サンプルコードからプロジェクトを作成し、プロジェクトをビルドして、タスクを実行できます。次の手順では、テキスト分類タスクを作成します。

サンプルコード プロジェクトをインポートしてビルドするには:

  1. ターミナルを開いて MediaPipeExamples リポジトリのクローンを作成し、TextClassifier.xcodeprojPodfile を含むディレクトリに移動します。

    git clone https://github.com/google-ai-edge/mediapipe-samples
    cd mediapipe/examples/text_classification/ios
    
  2. CocoaPods を使用して MediaPipe Tasks をインストールします。

    pod install
    

    このコマンドにより、サンプル プロジェクト ディレクトリに TextClassifier.xcworkspace ファイルが作成されます。

  3. TextClassifier.xcworkspace ファイルをダブルクリックして Xcode でプロジェクトを開きます。TextClassifier.xcodeproj ファイルがすでに開いている場合は、TextClassifier.xcworkspace ファイルを開く前に閉じます。

  4. TextClassifier スキームを選択し、プロジェクト ウィンドウのツールバーから物理 iOS デバイスまたはシミュレータを選択します。物理 iOS デバイスを使用する場合は、Mac に接続していることを確認します。

  5. プロジェクトのツールバーの Run ボタンをクリックします。

Xcode でアプリを実行する手順については、アプリをビルドして実行するをご覧ください。

MediaPipe タスクの依存関係

MediaPipe Tasks には、ビジョン用とテキスト用の 2 つのビルド済みライブラリが用意されています。.tflite モデルファイルは、モデルを使用する iOS アプリのバンドルに配置する必要があります。MediaPipe Tas に応じて、CocoaPods Podfile 内の Pod のリストにビジョン ライブラリまたはテキスト ライブラリのいずれかを追加します。アプリに必要な Pod で Podfile を作成する手順については、CocoaPods の使用をご覧ください。

生成 AI のタスク

MediaPipe Tasks の生成 AI ライブラリには、画像またはテキストの生成を処理するタスクが含まれています。MediaPipe Tasks の生成 AI ライブラリをインストールするには、MediaPipeTasksGenAI Pod と MediaPipeTasksGenAIC Pod を Podfile 内のアプリのターゲットに追加します。

LLM 推論 API

MediaPipe LLM 推論タスクは、MediaPipeTasksGenAI Pod と MediaPipeTasksGenAIC Pod に含まれています。

target 'MyLlmInferenceApp' do
  use_frameworks!
  pod 'MediaPipeTasksGenAI'
  pod 'MediaPipeTasksGenAIC'
end

視覚タスク

MediaPipe Tasks ビジョン ライブラリには、画像や動画の入力を処理するタスクが含まれています。MediaPipe Tasks ビジョン ライブラリをインストールするには、Podfile 内のアプリのターゲットに MediaPipeTasksVision Pod を追加します。

target 'MyAppWithMediaPipeTasksVision' do
  use_frameworks!
  pod 'MediaPipeTasksVision'
end

テキストタスク

MediaPipe Tasks テキスト ライブラリには、言語データをテキスト形式で処理するタスクが含まれています。MediaPipe Tasks テキスト ライブラリをインストールするには、Podfile でアプリのターゲットに MediaPipeTasksText Pod を追加します。

target 'MyAppWithMediaPipeTasksText' do
  use_frameworks!
  pod 'MediaPipeTasksText'
end

テスト ターゲットを構成する

アプリにテスト ターゲットがある場合は、MediaPipe タスク ライブラリの使用時に望ましくない動作が発生しないように、Podfile が次のいずれかの実装に準拠していることを確認してください。

最も簡単な実装は、MediaPipe タスク Pod を追加するメインアプリ ターゲット内にテスト ターゲットをネストしないことです。

target 'MyAppWithMediaPipeTasks' do
  pod 'MediaPipeTasksVision'
end

target 'MyAppWithMediaPipeTasksTests' do

end

テスト ターゲットをメインアプリ ターゲット内にネストする必要がある場合、Podfile は次の実装に準拠している必要があります。

target 'MyAppWithMediaPipeTasks' do
  pod 'MediaPipeTasksVision'

    target 'MyAppWithMediaPipeTasksTests' do
      inherit! :none

    end
end

BaseOptions 構成

BaseOptions を使用すると、MediaPipe Task API の一般的な構成が可能になります。

オプション名 説明 指定可能な値
modelAssetPath iOS アプリケーション バンドル内のモデルファイルへのモデルパス。 文字列としてのパス。

ハードウェア アクセラレーション

iOS では、MediaPipe Tasks は標準の CPU プロセッサ上でのモデルの実行のみをサポートします。

トラブルシューティング

MediaPipe に関する技術的な質問については、ディスカッション グループまたは Stack Overflow にアクセスして、コミュニティからサポートを受けてください。バグの報告や機能リクエストを行うには、GitHub で問題を報告してください。

iOS 開発環境の設定については、Apple Developer ドキュメントをご覧ください。