MediaPipe Framework trên iOS

Hãy làm theo hướng dẫn bên dưới để tạo ứng dụng mẫu dành cho iOS bằng MediaPipe Framework. Để tìm hiểu thêm về các ứng dụng mẫu này, hãy bắt đầu từ Hello World! trên iOS.

Xây dựng ứng dụng mẫu iOS

Điều kiện tiên quyết

  1. Cài đặt Mediapipe Framework theo instructions này.

  2. Cài đặt Xcode rồi cài đặt Công cụ dòng lệnh bằng cách sử dụng:

    xcode-select --install
    
  3. Cài đặt Bazelisk.

    Bạn nên sử dụng Homebrew để tải các phiên bản mới nhất.

    brew install bazelisk
    
  4. Hãy đặt Python 3.7 làm phiên bản Python mặc định và cài đặt thư viện Python "six". Điều này rất cần thiết cho TensorFlow.

    pip3 install --user six
    
  5. Sao chép kho lưu trữ MediaPipe.

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

Thiết lập tiền tố mã nhận dạng gói

Tất cả ứng dụng iOS đều phải có mã nhận dạng gói và bạn phải có hồ sơ cấp phép để có thể cài đặt ứng dụng có mã nhận dạng đó trên điện thoại. Để tránh xung đột giữa những người dùng MediaPipe khác nhau, bạn cần định cấu hình một tiền tố duy nhất cho mã nhận dạng gói của các ứng dụng minh hoạ iOS của chúng tôi.

Nếu bạn có hồ sơ cấp phép tuỳ chỉnh, hãy xem phần Cấp phép tuỳ chỉnh bên dưới.

Nếu không, hãy chạy lệnh này để tạo một tiền tố duy nhất:

python3 mediapipe/examples/ios/link_local_profiles.py

Tạo dự án Xcode

Điều này cho phép bạn chỉnh sửa và gỡ lỗi một trong các ứng dụng mẫu trong Xcode. Thư viện này cũng cho phép bạn sử dụng tính năng cấp phép tự động (xem phần sau).

  1. Chúng ta sẽ sử dụng công cụ có tên Tulsi để tạo các dự án mã QR từ cấu hình bản dựng 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
    

    Thao tác này sẽ cài đặt Tulsi.app bên trong thư mục Applications trong thư mục gốc.

  2. Mở mediapipe/Mediapipe.tulsiproj bằng ứng dụng Tulsi.

  3. Chọn cấu hình MediaPipe trong thẻ Configs (Cấu hình), sau đó nhấn vào nút Generate (Tạo) bên dưới. Bạn sẽ được yêu cầu cung cấp một vị trí để lưu dự án Xcode. Sau khi tạo xong, dự án sẽ được mở trong Xcode.

    Nếu bạn gặp lỗi về mã nhận dạng gói, hãy xem phần trước.

Thiết lập cấp phép

Để cài đặt ứng dụng trên thiết bị iOS, bạn cần có hồ sơ cấp phép. Bạn có hai lựa chọn:

  1. Cấp phép tự động. Điều này cho phép bạn tạo và cài đặt ứng dụng cho thiết bị cá nhân. Hồ sơ cấp phép do Xcode quản lý và phải được cập nhật thường xuyên (có hiệu lực trong khoảng một tuần).

  2. Cấp phép tuỳ chỉnh. Thao tác này sử dụng một hồ sơ cấp phép liên kết với một tài khoản nhà phát triển của Apple. Các hồ sơ này có thời gian hiệu lực dài hơn và có thể nhắm đến nhiều thiết bị, nhưng bạn cần có tài khoản nhà phát triển có tính phí với Apple để có được một tài khoản nhà phát triển có tính phí.

Cấp phép tự động

  1. Tạo một dự án Xcode cho MediaPipe, như đã thảo luận trước đó

  2. Trong trình điều hướng của dự án ở thanh bên trái, hãy chọn dự án "Mediapipe".

  3. Chọn một trong các mục tiêu ứng dụng, ví dụ: HandTrackingGpuApp.

  4. Chọn thẻ "Ký và chức năng".

  5. Đánh dấu vào mục "Tự động quản lý việc ký" rồi xác nhận hộp thoại.

  6. Hãy chọn "Tên của bạn (Nhóm cá nhân)" trong trình đơn hộp thoại Nhóm.

  7. Bạn cần thực hiện thiết lập này một lần cho mỗi ứng dụng bạn muốn cài đặt. Lặp lại các bước từ 3 đến 6 nếu cần.

Thao tác này sẽ tạo hồ sơ cấp phép cho từng ứng dụng bạn đã chọn. Bây giờ, bạn cần yêu cầu Bazel sử dụng chúng. Chúng tôi đã cung cấp một tập lệnh để giúp bạn thực hiện việc này dễ dàng hơn.

  1. Trong dòng lệnh, hãy chuyển đến thư mục mediapipe mà bạn đã sao chép kho lưu trữ.

  2. Chạy lệnh này:

    python3 mediapipe/examples/ios/link_local_profiles.py
    

Thao tác này sẽ tìm và liên kết hồ sơ cấp phép cho tất cả ứng dụng mà bạn đã bật tính năng tự động cấp phép trong Xcode.

Cấp phép tuỳ chỉnh

  1. Nhận hồ sơ cấp phép từ Apple.
  1. Liên kết ký hiệu hoặc sao chép hồ sơ cấp phép của bạn vào mediapipe/mediapipe/provisioning_profile.mobileprovision.

    cd mediapipe
    ln -s ~/Downloads/MyProvisioningProfile.mobileprovision mediapipe/provisioning_profile.mobileprovision
    
  1. Mở mediapipe/examples/ios/bundle_id.bzl và thay đổi BUNDLE_ID_PREFIX thành một tiền tố liên kết với hồ sơ cấp phép của bạn.

Tạo và chạy ứng dụng bằng Xcode

  1. Hãy tạo dự án Xcode và đảm bảo bạn đã thiết lập tính năng cấp phép tự động hoặc tuỳ chỉnh.

  2. Lúc này, bạn có thể chọn bất kỳ bản minh hoạ nào của Khung Mediapipe trong trình đơn mục tiêu, đồng thời tạo và chạy các bản minh hoạ đó như bình thường.

Tạo ứng dụng bằng dòng lệnh

  1. Đảm bảo rằng bạn đã thiết lập tính năng cấp phép tự động hoặc tuỳ chỉnh.

  2. Ví dụ: bằng cách sử dụng MediaPipe vòng tay:

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

    Bạn có thể thấy codesign yêu cầu cấp quyền để ký ứng dụng.

  3. Trong Xcode, hãy mở cửa sổ Devices and Simulators (command-shift-2).

  4. Hãy đảm bảo rằng thiết bị của bạn đã kết nối. Bạn sẽ thấy danh sách các ứng dụng đã cài đặt. Nhấn vào nút "+" trong danh sách rồi chọn tệp .ipa do Bazel tạo.

  5. Bây giờ, bạn có thể chạy ứng dụng trên thiết bị của mình.