نصب و راه اندازی

نصب روی دبیان و اوبونتو

  1. Bazelisk را نصب کنید.

    برای نصب Bazelisk مستندات رسمی Bazel را دنبال کنید.

  2. مخزن MediaPipe را بررسی کنید.

    $ 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 (buster) 3.2
    Debian 11 (bullseye) 4.5
    اوبونتو 16.04 LTS 2.4
    اوبونتو 18.04 LTS 3.2
    اوبونتو 20.04 LTS 4.2
    اوبونتو 20.04 LTS 4.2
    اوبونتو 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 . برای ایجاد خودکار OpenCV از منبع و تغییر پیکربندی OpenCV MediaPipe setup_opencv.sh اجرا کنید. این گزینه تمام مراحل تعریف شده در گزینه 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. برای اجرای نمونه های دسکتاپ فقط در لینوکس (نه در 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 را اجرا کنید! در مثال 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!
    

اگر با خطای ساخت مواجه شدید، لطفاً عیب‌یابی را بخوانید تا راه‌حل‌های چندین مشکل ساخت رایج را بیابید.

نصب بر روی CentOS

سلب مسئولیت : اجرای MediaPipe در CentOS آزمایشی است.

  1. Bazelisk را نصب کنید.

    برای نصب Bazelisk مستندات رسمی Bazel را دنبال کنید.

  2. مخزن MediaPipe را بررسی کنید.

    $ 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 را اجرا کنید! در مثال 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!
    

اگر با خطای ساخت مواجه شدید، لطفاً عیب‌یابی را بخوانید تا راه‌حل‌های چندین مشکل ساخت رایج را بیابید.

نصب روی macOS

  1. پیش کار:

    • Homebrew را نصب کنید.
    • Xcode و ابزارهای خط فرمان آن را با xcode-select --install نصب کنید.
  2. Bazelisk را نصب کنید.

    برای نصب Bazelisk مستندات رسمی Bazel را دنبال کنید.

  3. مخزن MediaPipe را بررسی کنید.

    $ 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 را اجرا کنید! در مثال 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!
    

اگر با خطای ساخت مواجه شدید، لطفاً عیب‌یابی را بخوانید تا راه‌حل‌های چندین مشکل ساخت رایج را بیابید.

نصب روی ویندوز

سلب مسئولیت : اجرای MediaPipe در ویندوز آزمایشی است.

  1. MSYS2 را نصب کنید و متغیر محیطی %PATH% را ویرایش کنید.

    اگر MSYS2 در C:\msys64 نصب شده است، C:\msys64\usr\bin را به متغیر محیطی %PATH% خود اضافه کنید.

  2. بسته های لازم را نصب کنید

    C:\> pacman -S git patch unzip
    
  3. پایتون را نصب کنید و به فایل اجرایی اجازه دهید تا متغیر محیطی %PATH% را ویرایش کند.

    فایل اجرایی پایتون ویندوز را از https://www.python.org/downloads دانلود و نصب کنید.

  4. Visual C++ Build Tools 2019 و WinSDK را نصب کنید

    به وب سایت VisualStudio بروید، ابزارهای ساخت را دانلود کنید و Microsoft Visual C++ 2019 Redistributable و Microsoft Build Tools 2019 را نصب کنید.

    WinSDK را از وب سایت رسمی مایکروسافت دانلود و نصب کنید.

  5. Bazel یا Bazelisk را نصب کنید و محل اجرای Bazel را به متغیر محیطی %PATH% اضافه کنید.

    گزینه 1. برای نصب Bazel 6.5.0 یا بالاتر ، مستندات رسمی Bazel را دنبال کنید.

    گزینه 2. مستندات رسمی Bazel را برای نصب Bazelisk دنبال کنید.

  6. متغیرهای 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 را بررسی کنید.

    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 را نصب کنید.

    فایل اجرایی ویندوز را از https://opencv.org/releases/ دانلود و نصب کنید. MediaPipe 0.10.x از OpenCV 3.4.10 پشتیبانی می کند. به یاد داشته باشید که اگر OpenCV در C:\opencv نصب نشده است، فایل WORKSPACE را ویرایش کنید.

    new_local_repository(
        name = "windows_opencv",
        build_file = "@//third_party:opencv_windows.BUILD",
        path = "C:\\<path to opencv>\\build",
    )
    
  9. Hello World را اجرا کنید! در مثال 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!
    

اگر با خطای ساخت مواجه شدید، لطفاً عیب‌یابی را بخوانید تا راه‌حل‌های چندین مشکل ساخت رایج را بیابید.

نصب بر روی زیرسیستم ویندوز برای لینوکس (WSL)

  1. دستورالعمل نصب زیرسیستم ویندوز برای لینوکس (اوبونتو) را دنبال کنید.

  2. ویندوز ADB را نصب کنید و سرور ADB را در ویندوز راه اندازی کنید.

  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 مستندات رسمی Bazel را دنبال کنید.

  6. مخزن MediaPipe را بررسی کنید.

    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 را اجرا کنید! در مثال 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!
    

اگر با خطای ساخت مواجه شدید، لطفاً عیب‌یابی را بخوانید تا راه‌حل‌های چندین مشکل ساخت رایج را بیابید.

نصب با استفاده از داکر

این از یک تصویر Docker استفاده می کند که نصب mediapipe را از بقیه سیستم جدا می کند.

  1. Docker را روی سیستم میزبان خود نصب کنید .

  2. یک تصویر داکر با برچسب "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 را اجرا کنید! در مثال 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!
    

اگر با خطای ساخت مواجه شدید، لطفاً عیب‌یابی را بخوانید تا راه‌حل‌های چندین مشکل ساخت رایج را بیابید.

  1. یک مثال اندروید 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