Installation auf Debian und Ubuntu
Installieren Sie Bazelisk.
Folge dem offiziellen Bazel-Dokumentation zum Installieren von Bazelisk.
Checkout-MediaPipe-Repository.
$ cd $HOME $ git clone --depth 1 https://github.com/google/mediapipe.git # Change directory into MediaPipe root directory $ cd mediapipe
Installieren Sie OpenCV und FFmpeg.
Option 1 Mit dem Paketmanager-Tool das vorkompilierte OpenCV installieren Bibliotheken. FFmpeg wird über
libopencv-video-dev
installiert.Betriebssystem OpenCV Debian 9 (Stretch) 2.4 Debian 10 (Buster) 3.2 Debian 11 (Volltreffer) 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
Hinweis: Unter Debian 11/Ubuntu 21.04, wenn OpenCV 4.5 mit
libopencv-video-dev
undlibopencv-contrib-dev
sollten ebenfalls installiert sein.$ sudo apt-get install -y libopencv-contrib-dev
opencv_linux.BUILD
undWORKSPACE
von MediaPipe sind bereits konfiguriert für OpenCV 2/3 und sollte in jeder Architektur funktionieren:# 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", ], )
Bei OpenCV 4 müssen Sie
opencv_linux.BUILD
unter Berücksichtigung der Aktuelle Architektur:# 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", ], )
Option 2. Führen Sie
setup_opencv.sh
aus, um OpenCV automatisch aus die OpenCV-Konfiguration von MediaPipe abrufen und ändern. Mit dieser Option werden alle Schritte die in Option 3 automatisch definiert wurden.Option 3. Auf der OpenCV-Website Dokumentation um OpenCV manuell aus dem Quellcode zu erstellen.
Möglicherweise müssen Sie
WORKSPACE
undopencv_linux.BUILD
so ändern, dass sie auf den Punkt verweisen. MediaPipe zu Ihren eigenen OpenCV-Bibliotheken hinzufügen. Angenommen, OpenCV wird installiert,/usr/local/
(standardmäßig empfohlen).Einrichtung von 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", ], )
Einrichtung von 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", ], )
Die aktuelle FFmpeg-Einrichtung ist in
ffmpeg_linux.BUILD
definiert und sollte funktionieren für jede Architektur:# 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", ], )
Zum Ausführen von Desktop-Beispielen unter Linux (nicht unter OS X) mit GPU von Beschleunigungen.
# 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.
Führen Sie den Befehl Hello World! Beispiel 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!
Falls ein Build-Fehler auftritt, lesen Sie bitte Fehlerbehebung: Hier finden Sie Lösungen für mehrere gängige Build-Problemen.
Unter CentOS installieren
Haftungsausschluss: Das Ausführen von MediaPipe unter CentOS ist experimentell.
Installieren Sie Bazelisk.
Folge dem offiziellen Bazel-Dokumentation zum Installieren von Bazelisk.
Checkout-MediaPipe-Repository.
$ git clone --depth 1 https://github.com/google/mediapipe.git # Change directory into MediaPipe root directory $ cd mediapipe
Installieren Sie OpenCV.
Option 1: Installieren Sie die vorkompilierte Version mit dem Paketmanager-Tool.
$ sudo yum install opencv-devel
Option 2: OpenCV aus Quellcode erstellen
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"], )
Führen Sie den Befehl Hello World! Beispiel 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!
Falls ein Build-Fehler auftritt, lesen Sie bitte Fehlerbehebung: Hier finden Sie Lösungen für einige gängige Build-Problemen.
Unter macOS installieren
Vorarbeit:
Installieren Sie Bazelisk.
Folge dem offiziellen Bazel-Dokumentation zum Installieren von Bazelisk.
Checkout-MediaPipe-Repository.
$ git clone --depth 1 https://github.com/google/mediapipe.git $ cd mediapipe
Installieren Sie OpenCV und FFmpeg.
Option 1: Verwenden Sie das HomeBrew-Paketmanager-Tool, um die vorkompilierte OpenCV 3-Bibliotheken. FFmpeg wird über OpenCV installiert.
$ brew install opencv@3 # There is a known issue caused by the glog dependency. Uninstall glog. $ brew uninstall --ignore-dependencies glog
Option 2: Installieren Sie die OpenCV-Bibliotheken mit dem MacPorts-Paketmanager-Tool.
$ 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"], )
Stellen Sie sicher, dass Python 3 und Python 3 werden installiert.
$ 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
Führen Sie den Befehl Hello World! Beispiel 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!
Falls ein Build-Fehler auftritt, lesen Sie bitte Fehlerbehebung: Hier finden Sie Lösungen für einige gängige Build-Problemen.
Unter Windows installieren
Haftungsausschluss: Die Ausführung von MediaPipe unter Windows ist experimentell.
MSYS2 installieren und
%PATH%
-Umgebung bearbeiten .Wenn MSYS2 unter
C:\msys64
installiert ist, fügen SieC:\msys64\usr\bin
zu Ihrem%PATH%
.Installieren Sie die erforderlichen Pakete.
C:\> pacman -S git patch unzip
Installieren Sie Python und erlauben Sie der ausführbaren Datei, die
%PATH%
-Umgebung zu bearbeiten .Ausführbare Python-Datei für Windows herunterladen von https://www.python.org/downloads und installieren.
Visual C++ Build Tools 2019 und WinSDK installieren
Gehe zu VisualStudio-Website Build-Tools herunterladen und Microsoft Visual C++ 2019 Redistributable installieren und Microsoft Build Tools 2019.
Laden Sie das WinSDK herunter von auf der offiziellen Website von MicroSoft und installieren.
Installieren Sie Bazel oder Bazelisk und fügen Sie im Die Umgebungsvariable
%PATH%
Option 1: Folgen Offizielle Dokumentation zu Bazel um mindestens Bazel 6.1.1 zu installieren.
Option 2: Folge dem offiziellen Bazel-Dokumentation zum Installieren von Bazelisk.
Legen Sie die Bazel-Variablen fest. Weitere Informationen zu „Build on Windows“ finden Sie in der offiziellen Dokumentation zu 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>
Checkout-MediaPipe-Repository.
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
Installieren Sie OpenCV.
Laden Sie die ausführbare Windows-Datei herunter unter https://opencv.org/releases/ und installieren. MediaPipe 0.10.x unterstützt OpenCV 3.4.10. Bearbeiten Die Datei
WORKSPACE
, wenn OpenCV nicht unterC:\opencv
installiert ist.new_local_repository( name = "windows_opencv", build_file = "@//third_party:opencv_windows.BUILD", path = "C:\\<path to opencv>\\build", )
Führen Sie den Befehl Hello World! Beispiel 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!
Falls ein Build-Fehler auftritt, lesen Sie bitte Fehlerbehebung: Hier finden Sie Lösungen für einige gängige Build-Problemen.
Unter Windows-Subsystem für Linux (WSL) installieren
Folgen Sie Anleitung Windows-Subsystem für Linux (Ubuntu) installieren
Installieren Sie Windows ADB und starten Sie den ADB-Server unter Windows.
Starten Sie WSL.
Installieren Sie die erforderlichen Pakete.
username@DESKTOP-TMVLBJ1:~$ sudo apt-get update && sudo apt-get install -y build-essential git python zip adb openjdk-8-jdk
Installieren Sie Bazelisk.
Folge dem offiziellen Bazel-Dokumentation zum Installieren von Bazelisk.
Checkout-MediaPipe-Repository.
username@DESKTOP-TMVLBJ1:~$ git clone --depth 1 https://github.com/google/mediapipe.git username@DESKTOP-TMVLBJ1:~$ cd mediapipe
Installieren Sie OpenCV und FFmpeg.
Option 1: Mit dem Paketmanager-Tool das vorkompilierte OpenCV installieren Bibliotheken. FFmpeg wird über libopencv-video-dev installiert.
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
Option 2: Führen Sie
setup_opencv.sh
aus, um OpenCV automatisch aus der Quelle zu erstellen und die OpenCV-Konfiguration von MediaPipe ändern.Option 3: Auf der OpenCV-Website Dokumentation um OpenCV manuell aus dem Quellcode zu erstellen.
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"], )
Führen Sie den Befehl Hello World! Beispiel 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!
Wenn ein Build-Fehler auftritt, finden Sie unter Fehlerbehebung häufig auftretenden Build-Problemen.
Mit Docker installieren
Dadurch wird ein Docker-Image verwendet, das die Installation von Mediapipe vom Rest des Systems isoliert.
Installieren Sie Docker auf Ihrem Hostsystem.
Erstellen Sie ein Docker-Image mit dem Tag "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
Führen Sie den Befehl Hello World! Beispiel 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!
Wenn ein Build-Fehler auftritt, finden Sie unter Fehlerbehebung häufig auftretenden Build-Problemen.
Erstellen Sie ein MediaPipe-Android-Beispiel.
$ 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