Instalimi në Debian dhe Ubuntu
Instaloni Bazelisk.
Ndiqni dokumentacionin zyrtar të Bazel për të instaluar Bazelisk.
Kontrolloni depon e MediaPipe.
$ cd $HOME $ git clone --depth 1 https://github.com/google/mediapipe.git # Change directory into MediaPipe root directory $ cd mediapipe
Instaloni OpenCV dhe FFmpeg.
Opsioni 1 . Përdorni mjetin e menaxherit të paketave për të instaluar bibliotekat e para-përpiluara OpenCV. FFmpeg do të instalohet përmes
libopencv-video-dev
.OS OpenCV Debian 9 (shtrirje) 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
Shënim . Në Debian 11/Ubuntu 21.04 kur OpenCV 4.5 është i instaluar me
libopencv-video-dev
, duhet të instalohet edhelibopencv-contrib-dev
.$ sudo apt-get install -y libopencv-contrib-dev
opencv_linux.BUILD
dheWORKSPACE
të MediaPipe janë konfiguruar tashmë për OpenCV 2/3 dhe duhet të funksionojnë saktë në çdo arkitekturë:# 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", ], )
Për OpenCV 4 ju duhet të modifikoni
opencv_linux.BUILD
duke marrë parasysh arkitekturën aktuale:# 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", ], )
Opsioni 2 . Ekzekutoni
setup_opencv.sh
për të ndërtuar automatikisht OpenCV nga burimi dhe modifikoni konfigurimin OpenCV të MediaPipe. Ky opsion do të bëjë automatikisht të gjitha hapat e përcaktuar në Opsionin 3.Opsioni 3 . Ndiqni dokumentacionin e OpenCV për të ndërtuar manualisht OpenCV nga kodi burimor.
Mund t'ju duhet të modifikoni
WORKSPACE
dheopencv_linux.BUILD
për të drejtuar MediaPipe në bibliotekat tuaja OpenCV. Supozoni se OpenCV do të instalohej në/usr/local/
që rekomandohet si parazgjedhje.Konfigurimi i 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", ], )
Konfigurimi i 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", ], )
Konfigurimi aktual i FFmpeg është përcaktuar në
ffmpeg_linux.BUILD
dhe duhet të funksionojë për çdo arkitekturë:# 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", ], )
Për ekzekutimin e shembujve të desktopit vetëm në Linux (jo në OS X) me përshpejtim 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.
Drejtoni Hello World! në shembullin 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!
Nëse hasni në një gabim ndërtimi, ju lutemi lexoni Zgjidhjen e problemeve për të gjetur zgjidhjet e disa çështjeve të zakonshme të ndërtimit.
Instalimi në CentOS
Mohim përgjegjësie : Ekzekutimi i MediaPipe në CentOS është eksperimental.
Instaloni Bazelisk.
Ndiqni dokumentacionin zyrtar të Bazel për të instaluar Bazelisk.
Kontrolloni depon e MediaPipe.
$ git clone --depth 1 https://github.com/google/mediapipe.git # Change directory into MediaPipe root directory $ cd mediapipe
Instaloni OpenCV.
Opsioni 1. Përdorni mjetin e menaxherit të paketave për të instaluar versionin e para-përpiluar.
$ sudo yum install opencv-devel
Opsioni 2. Ndërtoni OpenCV nga kodi burimor.
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"], )
Drejtoni Hello World! në shembullin 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!
Nëse hasni në një gabim ndërtimi, ju lutemi lexoni Zgjidhjen e problemeve për të gjetur zgjidhjet e disa çështjeve të zakonshme të ndërtimit.
Instalimi në macOS
Puna paraprake:
Instaloni Bazelisk.
Ndiqni dokumentacionin zyrtar të Bazel për të instaluar Bazelisk.
Kontrolloni depon e MediaPipe.
$ git clone --depth 1 https://github.com/google/mediapipe.git $ cd mediapipe
Instaloni OpenCV dhe FFmpeg.
Opsioni 1. Përdorni mjetin e menaxherit të paketave HomeBrew për të instaluar bibliotekat e para-përpiluara OpenCV 3. FFmpeg do të instalohet përmes OpenCV.
$ brew install opencv@3 # There is a known issue caused by the glog dependency. Uninstall glog. $ brew uninstall --ignore-dependencies glog
Opsioni 2. Përdorni mjetin e menaxherit të paketave MacPorts për të instaluar bibliotekat 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"], )
Sigurohuni që Python 3 dhe biblioteka e Python "six" janë instaluar.
$ 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
Drejtoni Hello World! në shembullin 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!
Nëse hasni në një gabim ndërtimi, ju lutemi lexoni Zgjidhjen e problemeve për të gjetur zgjidhjet e disa çështjeve të zakonshme të ndërtimit.
Instalimi në Windows
Mohim përgjegjësie : Ekzekutimi i MediaPipe në Windows është eksperimental.
Instaloni MSYS2 dhe modifikoni ndryshoren e mjedisit
%PATH%
.Nëse MSYS2 është instaluar në
C:\msys64
, shtoniC:\msys64\usr\bin
në ndryshoren tuaj të mjedisit%PATH%
.Instaloni paketat e nevojshme.
C:\> pacman -S git patch unzip
Instaloni Python dhe lejoni ekzekutuesin të modifikojë ndryshoren e mjedisit
%PATH%
.Shkarkoni Python Windows të ekzekutueshëm nga https://www.python.org/downloads dhe instaloni.
Instaloni Visual C++ Build Tools dhe WinSDK
Shkoni në faqen e internetit të VisualStudio , shkarkoni mjetet e ndërtimit dhe instaloni Microsoft Visual C++ 2022 Redistributable dhe Microsoft Build Tools 2022.
Shkarkoni WinSDK nga faqja zyrtare e MicroSoft dhe instaloni.
Instaloni Bazel ose Bazelisk dhe shtoni vendndodhjen e ekzekutuesit Bazel në ndryshoren e mjedisit
%PATH%
.Opsioni 1. Ndiqni dokumentacionin zyrtar të Bazel për të instaluar Bazel 6.5.0 ose më të lartë.
Opsioni 2. Ndiqni dokumentacionin zyrtar të Bazel për të instaluar Bazelisk.
Vendosni variablat Bazel. Mësoni më shumë detaje rreth "Build on Windows" në dokumentacionin zyrtar të Bazel.
# Please find the exact paths and version numbers from your local version. C:\> set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio\<version>\BuildTools C:\> set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio\<version>\BuildTools\VC C:\> set BAZEL_VC_FULL_VERSION=<Your local VC version> C:\> set BAZEL_WINSDK_FULL_VERSION=<Your local WinSDK version>
Kontrolloni depon e 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
Instaloni OpenCV.
Shkarkoni ekzekutuesin e Windows nga https://opencv.org/releases/ dhe instaloni. MediaPipe 0.10.x mbështet OpenCV 3.4.10. Mos harroni të redaktoni skedarin
WORKSPACE
nëse OpenCV nuk është i instaluar nëC:\opencv
.new_local_repository( name = "windows_opencv", build_file = "@//third_party:opencv_windows.BUILD", path = "C:\\<path to opencv>\\build", )
Drejtoni Hello World! në shembullin 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!
Nëse hasni në një gabim ndërtimi, ju lutemi lexoni Zgjidhjen e problemeve për të gjetur zgjidhjet e disa çështjeve të zakonshme të ndërtimit.
Instalimi në nënsistemin Windows për Linux (WSL)
Ndiqni udhëzimet për të instaluar Nënsistemin Windows për Linux (Ubuntu).
Instaloni Windows ADB dhe nisni serverin ADB në Windows.
Nisni WSL.
Instaloni paketat e nevojshme.
username@DESKTOP-TMVLBJ1:~$ sudo apt-get update && sudo apt-get install -y build-essential git python zip adb openjdk-8-jdk
Instaloni Bazelisk.
Ndiqni dokumentacionin zyrtar të Bazel për të instaluar Bazelisk.
Kontrolloni depon e MediaPipe.
username@DESKTOP-TMVLBJ1:~$ git clone --depth 1 https://github.com/google/mediapipe.git username@DESKTOP-TMVLBJ1:~$ cd mediapipe
Instaloni OpenCV dhe FFmpeg.
Opsioni 1. Përdorni mjetin e menaxherit të paketave për të instaluar bibliotekat e para-përpiluara OpenCV. FFmpeg do të instalohet nëpërmjet 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
Opsioni 2. Ekzekutoni
setup_opencv.sh
për të ndërtuar automatikisht OpenCV nga burimi dhe modifikoni konfigurimin OpenCV të MediaPipe.Opsioni 3. Ndiqni dokumentacionin e OpenCV për të ndërtuar manualisht OpenCV nga kodi burimor.
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"], )
Drejtoni Hello World! në shembullin 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!
Nëse hasni në një gabim ndërtimi, ju lutemi lexoni Zgjidhjen e problemeve për të gjetur zgjidhjet e disa çështjeve të zakonshme të ndërtimit.
Instalimi duke përdorur Docker
Kjo do të përdorë një imazh Docker që do të izolojë instalimin e mediapipe nga pjesa tjetër e sistemit.
Instaloni Docker në sistemin tuaj pritës.
Ndërtoni një imazh docker me etiketën "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
Drejtoni Hello World! në shembullin 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!
Nëse hasni në një gabim ndërtimi, ju lutemi lexoni Zgjidhjen e problemeve për të gjetur zgjidhjet e disa çështjeve të zakonshme të ndërtimit.
Ndërtoni një shembull 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