การติดตั้ง

การติดตั้งใน Debian และ Ubuntu

  1. ติดตั้ง Bazelisk

    ทำตามเอกสารประกอบเกี่ยวกับบาเซลอย่างเป็นทางการเพื่อติดตั้ง Bazelisk

  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
    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! ใน 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

    ทำตามเอกสารประกอบของ Bazel อย่างเป็นทางการเพื่อติดตั้ง Bazelisk

  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

    ทำตามเอกสารประกอบของ Bazel อย่างเป็นทางการเพื่อติดตั้ง Bazelisk

  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 และไลบรารี "six" ของ Python แล้ว

    $ 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!
    

หากพบข้อผิดพลาดเกี่ยวกับบิลด์ โปรดอ่านการแก้ปัญหาเพื่อหาวิธีแก้ปัญหาที่พบได้ทั่วไปเกี่ยวกับบิลด์

การติดตั้งใน 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 ดาวน์โหลดเครื่องมือสร้าง และติดตั้ง Microsoft Visual C++ 2019 Redistributable และ Microsoft Build Tools 2019

    ดาวน์โหลด WinSDK จากเว็บไซต์อย่างเป็นทางการของ Microsoft และติดตั้ง

  5. ติดตั้ง Bazel หรือ Bazelisk และเพิ่มตำแหน่งของไฟล์ปฏิบัติการ Bazel ลงในตัวแปรสภาพแวดล้อม %PATH%

    ตัวเลือกที่ 1 ทำตามเอกสารประกอบอย่างเป็นทางการของ Bazel เพื่อติดตั้ง Bazel 6.5.0 ขึ้นไป

    วิธีที่ 2: ทำตามเอกสารประกอบของ Bazel อย่างเป็นทางการเพื่อติดตั้ง Bazelisk

  6. กำหนดตัวแปร Bazel ดูรายละเอียดเพิ่มเติมเกี่ยวกับ"การบิลด์ใน 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

    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! ใน 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!
    

หากพบข้อผิดพลาดเกี่ยวกับบิลด์ โปรดอ่านการแก้ปัญหาเพื่อหาวิธีแก้ปัญหาที่พบได้ทั่วไปเกี่ยวกับบิลด์

การติดตั้งใน Windows Subsystem for Linux (WSL)

  1. ทำตามวิธีการติดตั้ง Windows Subsystem สำหรับ Linux (Ubuntu)

  2. ติดตั้ง ADB ของ Windows และเริ่มต้นเซิร์ฟเวอร์ 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

  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

ซึ่งจะใช้อิมเมจ 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! ใน 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 สำหรับ Android

    $ 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