MediaPipe Framework trên iOS

Làm theo hướng dẫn bên dưới để tạo ứng dụng mẫu iOS bằng Khung MediaPipe. Để 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 Khung Mediapipe theo hướng dẫn này.

  2. Cài đặt Xcode, sau đó 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. Cài đặt thư viện "six" của Python. Điều này là 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ã 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 cho phép cài đặt ứng dụng có mã nhận dạng đó trên điện thoại. Để tránh xung đột giữa các người dùng MediaPipe, bạn cần định cấu hình một tiền tố duy nhất cho mã gói của các ứng dụng minh hoạ iOS.

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 sau để tạo một tiền tố duy nhất:

python3 mediapipe/examples/ios/link_local_profiles.py

Tạo dự án Xcode

Thao tác 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. Tính năng 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 một công cụ có tên Tulsi để tạo dự án Xcode 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 nút Generate (Tạo) bên dưới. Bạn sẽ được yêu cầu cung cấp vị trí để lưu dự án Xcode. Sau khi tạo, dự án sẽ được mở trong Xcode.

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

Thiết lập tính năng 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 trên 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. Cung cấp tuỳ chỉnh. Phương thức này sử dụng hồ sơ cấp phép được liên kết với tài khoản nhà phát triển của Apple. Các hồ sơ này có thời hạn 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 trả phí với Apple để có được hồ sơ.

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 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ẻ "Signing & Capabilities" (Ký và chức năng).

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

  6. 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 thiết lập một lần cho mỗi ứng dụng mà bạn muốn cài đặt. Lặp lại các bước 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 mà bạn đã chọn. Bây giờ, bạn cần yêu cầu Bazel sử dụng các tệp này. 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 nơi bạn đã nhân bản 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 cấp phép tự động trong Xcode.

Cung cấp tuỳ chỉnh

  1. Nhận hồ sơ cấp phép từ Apple.
  1. Tạo đường liên kết tượng trưng hoặc sao chép hồ sơ cấp phép 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. 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. Giờ đâ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, và tạo cũng như 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 bạn đã thiết lập tính năng cấp phép tự động hoặc tuỳ chỉnh.

  2. Ví dụ: sử dụng MediaPipe Hands, hãy chạy:

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

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

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

  4. Đảm bảo 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 nút "+" trong danh sách rồi chọn tệp .ipa do Bazel tạo.

  5. Giờ đây, bạn có thể chạy ứng dụng trên thiết bị.