MediaPipe Framework no iOS

Siga as instruções abaixo para criar aplicativos de exemplo para iOS com o MediaPipe de machine learning. Para saber mais sobre esses apps de exemplo, comece com Olá Mundo! no iOS.

Como criar apps de exemplo para iOS

Pré-requisito

  1. Instale o framework do Mediapipe seguindo estas instruções.

  2. Instale o Xcode e, em seguida, instale Ferramentas de linha de comando usando:

    xcode-select --install
    
  3. Instale o Bazelisk.

    Recomendamos usar o Homebrew (link em inglês) para fazer o download das versões mais recentes.

    brew install bazelisk
    
  4. Defina o Python 3.7 como a versão padrão e instale o Python "six" biblioteca. Isso é necessário para o TensorFlow.

    pip3 install --user six
    
  5. Clone o repositório do MediaPipe.

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

Configurar um prefixo de ID do pacote

Todos os aplicativos iOS devem ter um ID de pacote, e você deve ter um perfil de provisionamento que permite instalar um app com esse ID no smartphone. Para evitar conflitos entre diferentes usuários do MediaPipe, é preciso configurar um prefixo exclusivo para o IDs de pacotes dos apps de demonstração do iOS.

Se você tiver um perfil de provisionamento personalizado, consulte Provisionamento personalizado abaixo.

Caso contrário, execute este comando para gerar um prefixo exclusivo:

python3 mediapipe/examples/ios/link_local_profiles.py

Criar um projeto do Xcode

Isso permite que você edite e depure um dos apps de exemplo no Xcode. Ela também permite que você use o provisionamento automático (consulte a seção posterior).

  1. Vamos usar uma ferramenta chamada Tulsi para gerar Projetos do Xcode das configurações de build do 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
    

    Isso instalará Tulsi.app dentro do diretório Applications no seu diretório inicial.

  2. Abra mediapipe/Mediapipe.tulsiproj usando o app Tulsi.

  3. Selecione a configuração do MediaPipe na guia "Configurações" e pressione o botão "Gerar" botão abaixo. Você precisará fornecer um local para salvar o projeto Xcode. Depois que o projeto for gerado, ele será aberto no Xcode.

    Se você receber um erro sobre IDs de pacotes, consulte seção anterior.

Configurar o provisionamento

Para instalar aplicativos em um dispositivo iOS, você precisa de um perfil de provisionamento. existem duas opções:

  1. Provisionamento automático. Isso permite que você crie e instale um app no seu dispositivo pessoal. O perfil de provisionamento é gerenciado pelo Xcode e precisa ser são atualizadas com frequência (válido por cerca de uma semana).

  2. Provisionamento personalizado. Ele usa um perfil de provisionamento associado a um conta de desenvolvedor da Apple. Esses perfis têm um período de validade maior e pode segmentar vários dispositivos, mas é preciso ter uma conta de desenvolvedor paga com Apple para receber um.

Provisionamento automático

  1. Crie um projeto Xcode para o MediaPipe, conforme discutido mais cedo

  2. No navegador do projeto, na barra lateral esquerda, selecione "Mediapipe". em um projeto de IA.

  3. Selecione um dos aplicativos de destino, por exemplo, HandtrackingGpuApp.

  4. Marque a caixa de seleção "Assinar Recursos" .

  5. Marque "Gerenciar a assinatura automaticamente" e confirme a caixa de diálogo.

  6. Selecione Seu nome (equipe pessoal)" no menu da caixa de diálogo "Equipe".

  7. Essa configuração precisa ser feita uma vez para cada aplicativo que você quer instalar. Repita as etapas 3 a 6 conforme necessário.

Isso gera perfis de provisionamento para cada app selecionado. Agora você precisa dizer ao Bazel para usá-los. Nós fornecemos um script para tornar isso mais fácil.

  1. No terminal, para o diretório mediapipe em que você clonou o repositório de dados.

  2. Execute este comando:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

Essa ação encontra e vincula o perfil de provisionamento de todos os aplicativos para os quais você ativou o provisionamento automático no Xcode.

Provisionamento personalizado

  1. Receber um perfil de provisionamento da Apple.
.
  1. Gerar link simbólico ou copiar seu perfil de provisionamento para mediapipe/mediapipe/provisioning_profile.mobileprovision:

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
.
  1. Abra mediapipe/examples/ios/bundle_id.bzl e altere o BUNDLE_ID_PREFIX como um prefixo associado ao perfil de provisionamento.

Criar e executar um app usando o Xcode

  1. Crie o projeto Xcode e verifique se você configurou um projeto automático ou com provisionamento personalizado.

  2. Agora você pode selecionar qualquer uma das demonstrações do framework do Mediapipe no menu de destino, e crie e execute normalmente.

.

Criar um app usando a linha de comando

  1. Verifique se você configurou o provisionamento automático ou personalizado.

  2. Usando o MediaPipe Hands, por exemplo, execute:

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

    Talvez você receba uma solicitação de permissão de codesign para assinar o app.

  3. No Xcode, abra a janela Devices and Simulators (command-shift-2).

  4. Confira se o dispositivo está conectado. Uma lista dos apps instalados vai aparecer. Pressione o botão "+" abaixo da lista, e selecione o arquivo .ipa criado pelo o Bazel

  5. Agora você pode executar o app no seu dispositivo.

.