Debian と Ubuntu へのインストール
Bazelisk をインストールします。
公式をフォロー Bazel のドキュメント Bazelisk をインストールします。
MediaPipe リポジトリをチェックアウトします。
$ cd $HOME $ git clone --depth 1 https://github.com/google/mediapipe.git # Change directory into MediaPipe root directory $ cd mediapipe
OpenCV と FFmpeg をインストールします。
オプション 1: パッケージ管理システムを使用してプリコンパイル済みの OpenCV をインストールする 使用できます。FFmpeg は
libopencv-video-dev
を介してインストールされます。OS OpenCV Debian 9(Stretch) 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
MediaPipe の
opencv_linux.BUILD
とWORKSPACE
はすでに構成されています 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 を自動的にビルドします MediaPipe の OpenCV 構成をソース化して変更します。この方法では 自動的に定義されます。オプション 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", ], )
GPU を使用して Linux でのみ(OS X ではなく)デスクトップのサンプルを実行する場合 加速します。
# 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.
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 へのインストール
免責条項: CentOS での MediaPipe の実行は試験運用版です。
Bazelisk をインストールします。
公式をフォロー Bazel のドキュメント Bazelisk をインストールします。
MediaPipe リポジトリをチェックアウトします。
$ git clone --depth 1 https://github.com/google/mediapipe.git # Change directory into MediaPipe root directory $ cd mediapipe
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"], )
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 へのインストール
事前作業:
Bazelisk をインストールします。
公式をフォロー Bazel のドキュメント Bazelisk をインストールします。
MediaPipe リポジトリをチェックアウトします。
$ git clone --depth 1 https://github.com/google/mediapipe.git $ cd mediapipe
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"], )
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
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 へのインストール
免責条項: Windows での MediaPipe の実行は試験運用版です。
MSYS2 をインストールして
%PATH%
環境を編集する 変数です。MSYS2 が
C:\msys64
にインストールされている場合は、C:\msys64\usr\bin
を%PATH%
環境変数。必要なパッケージをインストールします。
C:\> pacman -S git patch unzip
Python をインストールし、実行可能ファイルが
%PATH%
環境を編集できるようにする 変数です。Python Windows 実行可能ファイルを次の場所からダウンロードします: https://www.python.org/downloads インストールできます。
Visual C++ Build Tools 2019 と WinSDK をインストールする
次に移動: VisualStudio のウェブサイト ビルドツールのダウンロード、Microsoft Visual C++ 2019 Redistributable のインストール Microsoft Build Tools 2019 などがあります
以下から WinSDK をダウンロードします。 MicroSoft の公式ウェブサイト インストールできます。
Bazel または Bazelisk をインストールし、Bazel 実行可能ファイルの場所を以下に追加します:
%PATH%
環境変数を使用します。方法 1. フォロー Bazel の公式ドキュメント Bazel 6.1.1 以降をインストールする必要があります。
方法 2. 公式をフォロー Bazel のドキュメント Bazelisk をインストールします。
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>
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
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", )
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)へのインストール
詳しくは、 指示を Windows Subsystem for Linux(Ubuntu)をインストールします。
Windows で Windows ADB をインストールし、ADB サーバーを起動します。
WSL を起動します。
必要なパッケージをインストールします。
username@DESKTOP-TMVLBJ1:~$ sudo apt-get update && sudo apt-get install -y build-essential git python zip adb openjdk-8-jdk
Bazelisk をインストールします。
公式をフォロー Bazel のドキュメント Bazelisk をインストールします。
MediaPipe リポジトリをチェックアウトします。
username@DESKTOP-TMVLBJ1:~$ git clone --depth 1 https://github.com/google/mediapipe.git username@DESKTOP-TMVLBJ1:~$ cd mediapipe
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 を自動的にビルドします MediaPipe の OpenCV 構成を変更しますオプション 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"], )
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 のインストール環境をシステムの他の部分から分離する Docker イメージが使用されます。
Docker をインストールします。 必要があります。
「mediapipe」タグの付いた Docker イメージをビルドします。
$ 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
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!
ビルドエラーが発生した場合は、 トラブルシューティングを読み、 ビルドに関する一般的な問題
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