התקנה

התקנה על Debian ו-Ubuntu

  1. מתקינים את Bazelisk.

    כדי להתקין את Bazelisk, קראו את מסמכי התיעוד של Bazelisk באופן רשמי.

  2. מאגר MediaPipe של Google Checkout.

    $ cd $HOME
    $ git clone --depth 1 https://github.com/google/mediapipe.git
    
    # Change directory into MediaPipe root directory
    $ cd mediapipe
    
  3. התקן את OpenCV ו-FFmpeg.

    אפשרות 1. להשתמש בכלי מנהל החבילות כדי להתקין את ספריות OpenCV שעברו הידור מראש. FFmpeg יותקן דרך libopencv-video-dev.

    מערכת ההפעלה OpenCV
    Debian 9 (המשך) 2.4
    Debian 10 (המשפה) 3.2
    Debian 11 (bullseye) 4.5
    Ubuntu 16.04 LTS 2.4
    Ubuntu 18.04 LTS 3.2
    Ubuntu 20.04 LTS 4.2
    Ubuntu 20.04 LTS 4.2
    Ubuntu 21.04 4.5
    $ sudo apt-get install -y \
        libopencv-core-dev \
        libopencv-highgui-dev \
        libopencv-calib3d-dev \
        libopencv-features2d-dev \
        libopencv-imgproc-dev \
        libopencv-video-dev
    

    הערה. ב-Debian 11 או Ubuntu 21.04 כאשר OpenCV 4.5 מותקן עם libopencv-video-dev, יש להתקין גם את libopencv-contrib-dev.

    $ sudo apt-get install -y libopencv-contrib-dev
    

    opencv_linux.BUILD ו-WORKSPACE של MediaPipe כבר מוגדרים ל-OpenCV 2/3 ואמורים לפעול כראוי בכל ארכיטקטורה:

    # WORKSPACE
    new_local_repository(
      name = "linux_opencv",
      build_file = "@//third_party:opencv_linux.BUILD",
      path = "/usr",
    )
    
    # opencv_linux.BUILD for OpenCV 2/3 installed from Debian package
    cc_library(
      name = "opencv",
      linkopts = [
        "-l:libopencv_core.so",
        "-l:libopencv_calib3d.so",
        "-l:libopencv_features2d.so",
        "-l:libopencv_highgui.so",
        "-l:libopencv_imgcodecs.so",
        "-l:libopencv_imgproc.so",
        "-l:libopencv_video.so",
        "-l:libopencv_videoio.so",
      ],
    )
    

    עבור OpenCV 4 צריך לשנות את opencv_linux.BUILD בהתאם לארכיטקטורה הנוכחית:

    # WORKSPACE
    new_local_repository(
      name = "linux_opencv",
      build_file = "@//third_party:opencv_linux.BUILD",
      path = "/usr",
    )
    
    # opencv_linux.BUILD for OpenCV 4 installed from Debian package
    cc_library(
      name = "opencv",
      hdrs = glob([
        # Uncomment according to your multiarch value (gcc -print-multiarch):
        #  "include/aarch64-linux-gnu/opencv4/opencv2/cvconfig.h",
        #  "include/arm-linux-gnueabihf/opencv4/opencv2/cvconfig.h",
        #  "include/x86_64-linux-gnu/opencv4/opencv2/cvconfig.h",
        "include/opencv4/opencv2/**/*.h*",
      ]),
      includes = [
        # Uncomment according to your multiarch value (gcc -print-multiarch):
        #  "include/aarch64-linux-gnu/opencv4/",
        #  "include/arm-linux-gnueabihf/opencv4/",
        #  "include/x86_64-linux-gnu/opencv4/",
        "include/opencv4/",
      ],
      linkopts = [
        "-l:libopencv_core.so",
        "-l:libopencv_calib3d.so",
        "-l:libopencv_features2d.so",
        "-l:libopencv_highgui.so",
        "-l:libopencv_imgcodecs.so",
        "-l:libopencv_imgproc.so",
        "-l:libopencv_video.so",
        "-l:libopencv_videoio.so",
      ],
    )
    

    אפשרות 2. מריצים את הפקודה setup_opencv.sh כדי ליצור באופן אוטומטי את OpenCV מהמקור ולשנות את הגדרות OpenCV של MediaPipe. אפשרות זו תבצע באופן אוטומטי את כל השלבים שהוגדרו באפשרות 3.

    אפשרות 3. פועלים לפי המסמכי התיעוד של OpenCV כדי לפתח ידנית את OpenCV מקוד המקור.

    יכול להיות שתצטרכו לשנות את WORKSPACE ואת opencv_linux.BUILD כדי להפנות את MediaPipe לספריות OpenCV שלכם. נניח ש-OpenCV יותקן ב-/usr/local/, שמומלץ כברירת מחדל.

    הגדרת OpenCV 2/3:

    # WORKSPACE
    new_local_repository(
      name = "linux_opencv",
      build_file = "@//third_party:opencv_linux.BUILD",
      path = "/usr/local",
    )
    
    # opencv_linux.BUILD for OpenCV 2/3 installed to /usr/local
    cc_library(
      name = "opencv",
      linkopts = [
        "-L/usr/local/lib",
        "-l:libopencv_core.so",
        "-l:libopencv_calib3d.so",
        "-l:libopencv_features2d.so",
        "-l:libopencv_highgui.so",
        "-l:libopencv_imgcodecs.so",
        "-l:libopencv_imgproc.so",
        "-l:libopencv_video.so",
        "-l:libopencv_videoio.so",
      ],
    )
    

    הגדרת OpenCV 4:

    # WORKSPACE
    new_local_repository(
      name = "linux_opencv",
      build_file = "@//third_party:opencv_linux.BUILD",
      path = "/usr/local",
    )
    
    # opencv_linux.BUILD for OpenCV 4 installed to /usr/local
    cc_library(
      name = "opencv",
      hdrs = glob([
        "include/opencv4/opencv2/**/*.h*",
      ]),
      includes = [
        "include/opencv4/",
      ],
      linkopts = [
        "-L/usr/local/lib",
        "-l:libopencv_core.so",
        "-l:libopencv_calib3d.so",
        "-l:libopencv_features2d.so",
        "-l:libopencv_highgui.so",
        "-l:libopencv_imgcodecs.so",
        "-l:libopencv_imgproc.so",
        "-l:libopencv_video.so",
        "-l:libopencv_videoio.so",
      ],
    )
    

    ההגדרה הנוכחית של FFmpeg מוגדרת ב-ffmpeg_linux.BUILD ואמורה לפעול בכל ארכיטקטורה:

    # WORKSPACE
    new_local_repository(
      name = "linux_ffmpeg",
      build_file = "@//third_party:ffmpeg_linux.BUILD",
      path = "/usr"
    )
    
    # ffmpeg_linux.BUILD for FFmpeg installed from Debian package
    cc_library(
      name = "libffmpeg",
      linkopts = [
        "-l:libavcodec.so",
        "-l:libavformat.so",
        "-l:libavutil.so",
      ],
    )
    
  4. להרצת דוגמאות למחשבים ב-Linux בלבד (לא ב-OS X) עם האצה של GPU.

    # Requires a GPU with EGL driver support.
    # Can use mesa GPU libraries for desktop, (or Nvidia/AMD equivalent).
    sudo apt-get install mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev
    
    # To compile with GPU support, replace
    --define MEDIAPIPE_DISABLE_GPU=1
    # with
    --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11
    # when building GPU examples.
    
  5. הפעילו את Hello World! in C++ לדוגמה.

    $ export GLOG_logtostderr=1
    
    # if you are running on Linux desktop with CPU only
    $ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \
        mediapipe/examples/desktop/hello_world:hello_world
    
    # If you are running on Linux desktop with GPU support enabled (via mesa drivers)
    $ bazel run --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 \
        mediapipe/examples/desktop/hello_world:hello_world
    
    # Should print:
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    

נתקלתם בשגיאת build? קראו את המאמר פתרון בעיות כדי למצוא פתרונות לכמה בעיות נפוצות ב-build.

התקנה ב-CentOS

כתב ויתור: הפעלת MediaPipe ב-CenOS היא ניסיונית.

  1. מתקינים את Bazelisk.

    כדי להתקין את Bazelisk, קראו את מסמכי התיעוד של Bazelisk באופן רשמי.

  2. מאגר MediaPipe של Google Checkout.

    $ git clone --depth 1 https://github.com/google/mediapipe.git
    
    # Change directory into MediaPipe root directory
    $ cd mediapipe
    
  3. מתקינים את OpenCV.

    דרך 1. השתמש בכלי מנהל החבילות כדי להתקין את הגרסה שעברה הידור מראש.

    $ sudo yum install opencv-devel
    

    דרך 2. בניית OpenCV מקוד מקור.

    new_local_repository(
        name = "linux_opencv",
        build_file = "@//third_party:opencv_linux.BUILD",
        path = "/usr/local",
    )
    
    new_local_repository(
        name = "linux_ffmpeg",
        build_file = "@//third_party:ffmpeg_linux.BUILD",
        path = "/usr/local",
    )
    
    cc_library(
        name = "opencv",
        srcs = glob(
            [
                "lib/libopencv_core.so",
                "lib/libopencv_highgui.so",
                "lib/libopencv_imgcodecs.so",
                "lib/libopencv_imgproc.so",
                "lib/libopencv_video.so",
                "lib/libopencv_videoio.so",
            ],
        ),
        hdrs = glob([
            # For OpenCV 3.x
            "include/opencv2/**/*.h*",
            # For OpenCV 4.x
            # "include/opencv4/opencv2/**/*.h*",
        ]),
        includes = [
            # For OpenCV 3.x
            "include/",
            # For OpenCV 4.x
            # "include/opencv4/",
        ],
        linkstatic = 1,
        visibility = ["//visibility:public"],
    )
    
    cc_library(
        name = "libffmpeg",
        srcs = glob(
            [
                "lib/libav*.so",
            ],
        ),
        hdrs = glob(["include/libav*/*.h"]),
        includes = ["include"],
        linkopts = [
            "-lavcodec",
            "-lavformat",
            "-lavutil",
        ],
        linkstatic = 1,
        visibility = ["//visibility:public"],
    )
    
  4. הפעילו את Hello World! in C++ לדוגמה.

    $ export GLOG_logtostderr=1
    # Need bazel flag 'MEDIAPIPE_DISABLE_GPU=1' if you are running on Linux desktop with CPU only
    $ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \
        mediapipe/examples/desktop/hello_world:hello_world
    
    # Should print:
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    

נתקלתם בשגיאת build? קראו את המאמר פתרון בעיות כדי למצוא פתרונות לכמה בעיות נפוצות ב-build.

התקנה ב-macOS

  1. עבודת קדם:

    • מתקינים את Homebrew.
    • התקן את Xcode ואת כלי שורת הפקודה שלו על ידי xcode-select --install.
  2. מתקינים את Bazelisk.

    כדי להתקין את Bazelisk, קראו את מסמכי התיעוד של Bazelisk באופן רשמי.

  3. מאגר MediaPipe של Google Checkout.

    $ git clone --depth 1 https://github.com/google/mediapipe.git
    
    $ cd mediapipe
    
  4. התקן את OpenCV ו-FFmpeg.

    דרך 1. משתמשים בכלי מנהל החבילות של HomeBrew כדי להתקין את ספריות OpenCV 3 שעברו הידור מראש. FFmpeg יותקן דרך OpenCV.

    $ brew install opencv@3
    
    # There is a known issue caused by the glog dependency. Uninstall glog.
    $ brew uninstall --ignore-dependencies glog
    

    דרך 2. השתמש בכלי מנהל החבילות MacPorts כדי להתקין את ספריות OpenCV.

    $ port install opencv
    
    new_local_repository(
        name = "macos_opencv",
        build_file = "@//third_party:opencv_macos.BUILD",
        path = "/opt",
    )
    
    new_local_repository(
        name = "macos_ffmpeg",
        build_file = "@//third_party:ffmpeg_macos.BUILD",
        path = "/opt",
    )
    
    cc_library(
        name = "opencv",
        srcs = glob(
            [
                "local/lib/libopencv_core.dylib",
                "local/lib/libopencv_highgui.dylib",
                "local/lib/libopencv_imgcodecs.dylib",
                "local/lib/libopencv_imgproc.dylib",
                "local/lib/libopencv_video.dylib",
                "local/lib/libopencv_videoio.dylib",
            ],
        ),
        hdrs = glob(["local/include/opencv2/**/*.h*"]),
        includes = ["local/include/"],
        linkstatic = 1,
        visibility = ["//visibility:public"],
    )
    
    cc_library(
        name = "libffmpeg",
        srcs = glob(
            [
                "local/lib/libav*.dylib",
            ],
        ),
        hdrs = glob(["local/include/libav*/*.h"]),
        includes = ["local/include/"],
        linkopts = [
            "-lavcodec",
            "-lavformat",
            "-lavutil",
        ],
        linkstatic = 1,
        visibility = ["//visibility:public"],
    )
    
  5. מוודאים ש-Python 3 וספריית Python "six" מותקנות.

    $ brew install python
    $ sudo ln -s -f /usr/local/bin/python3.7 /usr/local/bin/python
    $ python --version
    Python 3.7.4
    $ pip3 install --user six
    
  6. הפעילו את Hello World! in C++ לדוגמה.

    $ export GLOG_logtostderr=1
    # Need bazel flag 'MEDIAPIPE_DISABLE_GPU=1' as desktop GPU is currently not supported
    $ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \
        mediapipe/examples/desktop/hello_world:hello_world
    
    # Should print:
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    

נתקלתם בשגיאת build? קראו את המאמר פתרון בעיות כדי למצוא פתרונות לכמה בעיות נפוצות ב-build.

התקנה ב-Windows

כתב ויתור: הפעלת MediaPipe ב-Windows היא ניסיונית.

  1. מתקינים את MSYS2 ועורכים את משתנה הסביבה %PATH%.

    אם MSYS2 מותקן ב-C:\msys64, מוסיפים את C:\msys64\usr\bin למשתנה הסביבה %PATH%.

  2. מתקינים את החבילות הנדרשות.

    C:\> pacman -S git patch unzip
    
  3. מתקינים את Python ומאפשרים לקובץ ההפעלה לערוך את משתנה הסביבה %PATH%.

    מורידים את קובץ ההפעלה של Python ל-Windows מ-https://www.python.org/downloads ומתקינים אותו.

  4. התקנה של Visual C++ Build Tools 2019 ו-WinSDK

    נכנסים לאתר VisualStudio, מורידים כלי build ומתקינים את Microsoft Visual C++ 2019 Redistributable ו-Microsoft Build Tools 2019.

    מורידים את WinSDK מהאתר הרשמי של MicroSoft ומתקינים אותו.

  5. מתקינים את Bazel או את Bazelisk ומוסיפים את המיקום של קובץ ההפעלה של Bazel למשתנה הסביבה %PATH%.

    דרך 1. כדי להתקין את Bazel מגרסה 6.1.1 ואילך, פועלים לפי מסמכי התיעוד הרשמיים של Bazel.

    דרך 2. כדי להתקין את Bazelisk, קראו את מסמכי התיעוד של Bazelisk באופן רשמי.

  6. מגדירים משתנים של Bazel. מידע נוסף על Build ב-Windows זמין בתיעוד הרשמי של Bazel.

    # Please find the exact paths and version numbers from your local version.
    C:\> set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
    C:\> set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC
    C:\> set BAZEL_VC_FULL_VERSION=<Your local VC version>
    C:\> set BAZEL_WINSDK_FULL_VERSION=<Your local WinSDK version>
    
  7. מאגר MediaPipe של Google Checkout.

    C:\Users\Username\mediapipe_repo> git clone --depth 1 https://github.com/google/mediapipe.git
    
    # Change directory into MediaPipe root directory
    C:\Users\Username\mediapipe_repo> cd mediapipe
    
  8. מתקינים את OpenCV.

    מורידים את קובץ ההפעלה של Windows מהכתובת https://opencv.org/releases/ ומתקינים אותו. ב-MediaPipe 0.10.x יש תמיכה ב-OpenCV 3.4.10. אל תשכחו לערוך את הקובץ WORKSPACE אם OpenCV לא מותקן ב-C:\opencv.

    new_local_repository(
        name = "windows_opencv",
        build_file = "@//third_party:opencv_windows.BUILD",
        path = "C:\\<path to opencv>\\build",
    )
    
  9. הפעילו את Hello World! in C++ לדוגמה.

    C:\Users\Username\mediapipe_repo>bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="C://python_36//python.exe" mediapipe/examples/desktop/hello_world
    
    C:\Users\Username\mediapipe_repo>set GLOG_logtostderr=1
    
    C:\Users\Username\mediapipe_repo>bazel-bin\mediapipe\examples\desktop\hello_world\hello_world.exe
    
    # should print:
    # I20200514 20:43:12.277598  1200 hello_world.cc:56] Hello World!
    # I20200514 20:43:12.278597  1200 hello_world.cc:56] Hello World!
    # I20200514 20:43:12.279618  1200 hello_world.cc:56] Hello World!
    # I20200514 20:43:12.279618  1200 hello_world.cc:56] Hello World!
    # I20200514 20:43:12.279618  1200 hello_world.cc:56] Hello World!
    # I20200514 20:43:12.279618  1200 hello_world.cc:56] Hello World!
    # I20200514 20:43:12.279618  1200 hello_world.cc:56] Hello World!
    # I20200514 20:43:12.279618  1200 hello_world.cc:56] Hello World!
    # I20200514 20:43:12.279618  1200 hello_world.cc:56] Hello World!
    # I20200514 20:43:12.280613  1200 hello_world.cc:56] Hello World!
    

נתקלתם בשגיאת build? קראו את המאמר פתרון בעיות כדי למצוא פתרונות לכמה בעיות נפוצות ב-build.

התקנה על ידי מערכת המשנה של Windows ל-Linux (WSL)

  1. פועלים לפי ההוראות כדי להתקין את מערכת המשנה של Windows ל-Linux (Ubuntu).

  2. מתקינים את Windows ADB ומפעילים את שרת ADB ב-Windows.

  3. הפעלת WSL.

  4. מתקינים את החבילות הנדרשות.

    username@DESKTOP-TMVLBJ1:~$ sudo apt-get update && sudo apt-get install -y build-essential git python zip adb openjdk-8-jdk
    
  5. מתקינים את Bazelisk.

    כדי להתקין את Bazelisk, קראו את מסמכי התיעוד של Bazelisk באופן רשמי.

  6. מאגר MediaPipe של Google Checkout.

    username@DESKTOP-TMVLBJ1:~$ git clone --depth 1 https://github.com/google/mediapipe.git
    
    username@DESKTOP-TMVLBJ1:~$ cd mediapipe
    
  7. התקן את OpenCV ו-FFmpeg.

    דרך 1. להשתמש בכלי מנהל החבילות כדי להתקין את ספריות OpenCV שעברו הידור מראש. FFmpeg יותקן דרך libopencv-video-dev.

    username@DESKTOP-TMVLBJ1:~/mediapipe$ sudo apt-get install libopencv-core-dev libopencv-highgui-dev \
                           libopencv-calib3d-dev libopencv-features2d-dev \
                           libopencv-imgproc-dev libopencv-video-dev
    

    דרך 2. מריצים את setup_opencv.sh כדי ליצור באופן אוטומטי את OpenCV מהמקור ולשנות את תצורת OpenCV של MediaPipe.

    אפשרות 3. פועלים לפי המסמכי התיעוד של OpenCV כדי לפתח ידנית את OpenCV מקוד המקור.

    new_local_repository(
        name = "linux_opencv",
        build_file = "@//third_party:opencv_linux.BUILD",
        path = "/usr/local",
    )
    
    cc_library(
        name = "opencv",
        srcs = glob(
            [
                "lib/libopencv_core.so",
                "lib/libopencv_highgui.so",
                "lib/libopencv_imgcodecs.so",
                "lib/libopencv_imgproc.so",
                "lib/libopencv_video.so",
                "lib/libopencv_videoio.so",
            ],
        ),
        hdrs = glob(["include/opencv4/**/*.h*"]),
        includes = ["include/opencv4/"],
        linkstatic = 1,
        visibility = ["//visibility:public"],
    )
    
  8. הפעילו את Hello World! in C++ לדוגמה.

    username@DESKTOP-TMVLBJ1:~/mediapipe$ export GLOG_logtostderr=1
    
    # Need bazel flag 'MEDIAPIPE_DISABLE_GPU=1' as desktop GPU is currently not supported
    username@DESKTOP-TMVLBJ1:~/mediapipe$ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \
        mediapipe/examples/desktop/hello_world:hello_world
    
    # Should print:
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    

נתקלתם בשגיאת build, במאמר פתרון בעיות תוכלו למצוא פתרונות לכמה בעיות נפוצות ב-build.

התקנה באמצעות Docker

הפעולה הזו תשתמש בתמונת Docker שתבודד את התקנת Mediapipe משאר המערכת.

  1. מתקינים את Docker במערכת המארחת.

  2. יצירת קובץ אימג' ל-Docker עם התג "mediapipe".

    $ git clone --depth 1 https://github.com/google/mediapipe.git
    $ cd mediapipe
    $ docker build --tag=mediapipe .
    
    # Should print:
    # Sending build context to Docker daemon  147.8MB
    # Step 1/9 : FROM ubuntu:latest
    # latest: Pulling from library/ubuntu
    # 6abc03819f3e: Pull complete
    # 05731e63f211: Pull complete
    # ........
    # See http://bazel.build/docs/getting-started.html to start a new project!
    # Removing intermediate container 82901b5e79fa
    # ---> f5d5f402071b
    # Step 9/9 : COPY . /edge/mediapipe/
    # ---> a95c212089c5
    # Successfully built a95c212089c5
    # Successfully tagged mediapipe:latest
    
  3. הפעילו את Hello World! in C++ לדוגמה.

    $ docker run -it --name mediapipe mediapipe:latest
    
    root@bca08b91ff63:/mediapipe# GLOG_logtostderr=1 bazel run --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hello_world
    
    # Should print:
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    

נתקלתם בשגיאת build, במאמר פתרון בעיות תוכלו למצוא פתרונות לכמה בעיות נפוצות ב-build.

  1. יצירת דוגמה ל-Android של MediaPipe.

    $ docker run -it --name mediapipe mediapipe:latest
    
    root@bca08b91ff63:/mediapipe# bash ./setup_android_sdk_and_ndk.sh
    
    # Should print:
    # Android NDK is now installed. Consider setting $ANDROID_NDK_HOME environment variable to be /root/Android/Sdk/ndk-bundle/android-ndk-r19c
    # Set android_ndk_repository and android_sdk_repository in WORKSPACE
    # Done
    
    root@bca08b91ff63:/mediapipe# bazel build -c opt --config=android_arm64 mediapipe/examples/android/src/java/com/google/mediapipe/apps/objectdetectiongpu:objectdetectiongpu
    
    # Should print:
    # Target //mediapipe/examples/android/src/java/com/google/mediapipe/apps/objectdetectiongpu:objectdetectiongpu up-to-date:
    # bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/objectdetectiongpu/objectdetectiongpu_deploy.jar
    # bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/objectdetectiongpu/objectdetectiongpu_unsigned.apk
    # bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/objectdetectiongpu/objectdetectiongpu.apk
    # INFO: Elapsed time: 144.462s, Critical Path: 79.47s
    # INFO: 1958 processes: 1 local, 1863 processwrapper-sandbox, 94 worker.
    # INFO: Build completed successfully, 2028 total actions