Mediapipe Examples Build

·

2 min read

개발 환경

초기 준비 사항

GitClone Mdeiapipe

클론, v0.10.1 버전으로 체크아웃.

git clone https://github.com/google/mediapipe.git
git checkout v0.10.1

Bazel 빌드

빌드가 되지 않아 bazel을 수정해서 사용(https://github.com/google/mediapipe/issues/4296#issuecomment-1570491146).

  1. bazel 클론, 6.1.1 체크 아웃

     git clone https://github.com/bazelbuild/bazel.git
     cd bazel
     git checkout 6.1.1
    
  2. ExecutionTransitionFactory.java 129행 편집

     coreOptions.isHost = true;
    
  3. bazel 빌드

     bazelisk build //src:bazel-dev
    

    빌드된 bazel(bazel-bin/src/bazel-dev)을 사용하여 mediapipe 0.10.0을 빌드.

Android Build

Android Setting

setup_android_sdk_and_ndk.sh를 실행하여 sdk 경로와 ndk 경로를 지정해준다.

sh setup_android_sdk_and_ndk.sh [sdk 경로] [ndk 경로] r21

Mediapipe 빌드

selfiesegmentationgpu 빌드.

bazel-bin/src/bazel-dev build -c opt --config=android_arm64 mediapipe/examples/android/src/java/com/google/mediapipe/apps/selfiesegmentationgpu:selfiesegmentationgpu

IOS 빌드

Set up a bundle ID prefix

python3 mediapipe/examples/ios/link_local_profiles.py

Create an Xcode project

Bazel 빌드 구성에서 Xcode 프로젝트를 생성하기 위해 Tulsi라는 도구를 사용함.

  1. 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 -x [Xcode 버전]
    
  2. mediapipe/Mediapipe.tulsiproj 을 연다.

  3. Config 탭으로 이동 후, Generate 클릭

    General failure: Failed to resolve labels: 발생 시
    MediaPipe.tulsiproj/Configs/MediaPipe.tulsigen 수정. 모든 buildTargets 경로 앞에 @를 입력.

앱 빌드

  1. 구성을 아래와 같이 수정.

  2. 커맨드 라인을 이용해서 빌드. bazel은 위에서 빌드한 버전을 사용한다.

     bazel-bin/src/bazel-dev build -c opt --config=ios_arm64 
     mediapipe/examples/ios/selfiesegmentationgpu:SelfieSegmentationGpuApp
    
  3. Xcode에서 Devices and Simulators 창을 연다(command + shift + 2).

  4. 목록 아래의 "+" 버튼을 누르고 Bazel에서 빌드한 .ipa 파일을 선택한다.

  5. 기기에서 앱을 실행할 수 있다.