Framework MediaPipe sur iOS

Suivez les instructions ci-dessous pour créer des exemples d'applications iOS avec le framework MediaPipe. Pour en savoir plus sur ces exemples d'applications, commencez par lire la page Hello World! sur iOS.

Créer des exemples d'applications iOS

Prérequis

  1. Installez Mediapipe Framework en suivant instructions.

  2. Installez Xcode, puis installez les outils de ligne de commande à l'aide de la commande suivante:

    xcode-select --install
    
  3. Installez Bazelisk.

    Nous vous recommandons d'utiliser Homebrew pour obtenir les dernières versions.

    brew install bazelisk
    
  4. Définissez Python 3.7 comme version Python par défaut et installez la bibliothèque Python "six". Cette opération est nécessaire pour TensorFlow.

    pip3 install --user six
    
  5. Clonez le dépôt MediaPipe.

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

Configurer un préfixe d'ID de bundle

Toutes les applications iOS doivent avoir un ID de bundle et vous devez disposer d'un profil de provisionnement qui vous permet d'installer une application avec cet ID sur votre téléphone. Pour éviter les conflits entre différents utilisateurs de MediaPipe, vous devez configurer un préfixe unique pour les ID de bundle de nos applications de démonstration iOS.

Si vous disposez d'un profil de provisionnement personnalisé, consultez la section Provisionnement personnalisé ci-dessous.

Sinon, exécutez la commande suivante pour générer un préfixe unique:

python3 mediapipe/examples/ios/link_local_profiles.py

Créer un projet Xcode

Cela vous permet de modifier et de déboguer l'un des exemples d'application dans Xcode. Il vous permet également d'utiliser le provisionnement automatique (voir la section suivante).

  1. Nous allons utiliser un outil appelé Tulsi pour générer des projets Xcode à partir de configurations de compilation Bazel.

    # 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
    

    Tulsi.app sera installé dans le répertoire Applications de votre répertoire d'accueil.

  2. Ouvrez mediapipe/Mediapipe.tulsiproj avec l'application Tulsi.

  3. Sélectionnez la configuration MediaPipe dans l'onglet "Configurations", puis cliquez sur le bouton "Générer" ci-dessous. Vous serez invité à indiquer un emplacement pour enregistrer le projet Xcode. Une fois le projet généré, il sera ouvert dans Xcode.

    Si vous obtenez une erreur concernant les ID de bundle, consultez la section précédente.

Configurer le provisionnement

Pour installer des applications sur un appareil iOS, vous avez besoin d'un profil de provisionnement. Deux options sont proposées:

  1. Provisionnement automatique Cela vous permet de créer et d'installer une application sur votre appareil personnel. Le profil de provisionnement est géré par Xcode et doit être mis à jour régulièrement (il est valable environ une semaine).

  2. Provisionnement personnalisé Un profil de provisionnement associé à un compte de développeur Apple est utilisé. Ces profils ont une période de validité plus longue et peuvent cibler plusieurs appareils, mais vous devez disposer d'un compte de développeur payant auprès d'Apple pour en obtenir un.

Provisionnement automatique

  1. Créer un projet Xcode pour MediaPipe, comme indiqué précédemment

  2. Dans la barre latérale gauche du navigateur de projets, sélectionnez le projet "Mediapipe".

  3. Sélectionnez l'une des cibles de l'application, par exemple HandTrackingGpuApp.

  4. Sélectionnez l'onglet "Signing & Capabilities" (Signature et fonctionnalités).

  5. Cochez la case "Gérer automatiquement la signature" et confirmez la boîte de dialogue.

  6. Sélectionnez Votre nom (équipe personnelle) dans le menu de la boîte de dialogue "Équipe".

  7. Cette configuration doit être effectuée une fois pour chaque application à installer. Répétez les étapes 3 à 6 si nécessaire.

Des profils de provisionnement sont ainsi générés pour chaque application sélectionnée. Vous devez maintenant demander à Bazel de les utiliser. Pour vous faciliter la tâche, nous vous fournissons un script.

  1. Dans le terminal, accédez au répertoire mediapipe dans lequel vous avez cloné le dépôt.

  2. Exécutez cette commande :

    python3 mediapipe/examples/ios/link_local_profiles.py
    

Cette opération permet de rechercher et d'associer le profil de provisionnement de toutes les applications pour lesquelles vous avez activé le provisionnement automatique dans Xcode.

Provisionnement personnalisé

  1. Obtenez un profil de provisionnement auprès d'Apple.
  1. Utilisez le lien symbolique ou copiez votre profil de provisionnement dans mediapipe/mediapipe/provisioning_profile.mobileprovision.

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
  1. Ouvrez mediapipe/examples/ios/bundle_id.bzl, puis remplacez BUNDLE_ID_PREFIX par un préfixe associé à votre profil de provisionnement.

Créer et exécuter une application à l'aide de Xcode

  1. Créez le projet Xcode et assurez-vous d'avoir configuré le provisionnement automatique ou personnalisé.

  2. Vous pouvez maintenant sélectionner l'une des démonstrations du framework Mediapipe dans le menu cible, puis les créer et les exécuter normalement.

Créer une application à l'aide de la ligne de commande

  1. Assurez-vous d'avoir configuré le provisionnement automatique ou personnalisé.

  2. À l'aide de la fonction MediaPipe Hands, par exemple, exécutez la commande suivante:

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

    Il est possible qu'une demande d'autorisation de la part de codesign s'affiche pour vous permettre de signer l'appli.

  3. Dans Xcode, ouvrez la fenêtre Devices and Simulators (Commande+Maj+2).

  4. Assurez-vous que votre appareil est connecté. La liste des applications installées s'affiche. Appuyez sur le bouton "+" sous la liste, puis sélectionnez le fichier .ipa créé par Bazel.

  5. Vous pouvez maintenant exécuter l'application sur votre appareil.