赞
踩
Note: To interoperate with OpenCV, OpenCV 3.x to 4.1 are preferred. OpenCV 2.x currently works but interoperability support may be deprecated in the future.
注意:为了与OpenCV进行互操作,首选OpenCV 3.x到4.1。OpenCV 2.x目前可以工作,但互操作性支持将来可能会被弃用。
Note: If you plan to use TensorFlow calculators and example apps, there is a known issue with gcc and g++ version 6.3 and 7.3. We recommend installing gcc and g++ version 8.x.
注意:如果您计划使用TensorFlow计算器和示例应用程序,那么gcc和g++版本6.3和7.3存在已知问题。我们建议安装gcc和g++版本8.x。
Note: To make Mediapipe work with TensorFlow, please set Python 3.7 as the default Python version and install the Python "six" library by running
pip3 install --user six
.注意:为了使Mediapipe与TensorFlow协同工作,请将Python 3.7设置为默认的Python版本,并通过运行
pip3 install --user six
来安装Python“six”库。
1.Install Bazelisk.
1.安装Bazelisk。
Follow the official Bazel documentation to install Bazelisk.
按照官方Bazel文档安装Bazelik。
2.Checkout MediaPipe repository.
2.切换到MediaPipe存储库。
- $ cd $HOME
- $ git clone --depth 1 https://github.com/google/mediapipe.git
-
- # Change directory into MediaPipe root directory
- $ cd mediapipe
3.Install OpenCV and FFmpeg.
3.安装OpenCV和FFmpeg。
Option 1. Use package manager tool to install the pre-compiled OpenCV libraries. FFmpeg will be installed via libopencv-video-dev
.
选项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
Note. On Debian 11/Ubuntu 21.04 when OpenCV 4.5 is installed with libopencv-video-dev
, libopencv-contrib-dev
should also be installed.
Note.在Debian 11/Ubuntu 21.04上,当OpenCV 4.5与libopencv video-dev一起安装时,也应该安装libopencv-controb-dev。
$ sudo apt-get install -y libopencv-contrib-dev
MediaPipe's opencv_linux.BUILD and WORKSPACE are already configured for OpenCV 2/3 and should work correctly on any architecture:
MediaPipe的opencv_linu.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",
- ],
- )
For OpenCV 4 you need to modify opencv_linux.BUILD taking into account current architecture:
对于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",
- ],
- )
Option 2. Run setup_opencv.sh to automatically build OpenCV from source and modify MediaPipe's OpenCV config. This option will do all steps defined in Option 3 automatically.
选项2。运行setup_opencv.sh从源代码自动构建opencv,并修改MediaPipe的opencv配置。此选项将自动执行选项3中定义的所有步骤。
Option 3. Follow OpenCV's documentation to manually build OpenCV from source code.
选项3。按照OpenCV的文档从源代码手动构建OpenCV。
You may need to modify WORKSPACE and opencv_linux.BUILD to point MediaPipe to your own OpenCV libraries. Assume OpenCV would be installed to /usr/local/
which is recommended by default.
可能需要修改WORKSPACE和opencv_linux.BUILD将MediaPipe指向自己的OpenCV库。假设OpenCV将安装到/usr/local/,这是默认情况下推荐的。
OpenCV 2/3 setup:
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 setup:
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",
- ],
- )
Current FFmpeg setup is defined in ffmpeg_linux.BUILD and should work for any architecture:
当前的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.For running desktop examples on Linux only (not on OS X) with GPU acceleration.
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.Run the Hello World! in C++ example.
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!
If you run into a build error, please read Troubleshooting to find the solutions of several common build issues.
如果遇到生成错误,请阅读“疑难解答”以找到几个常见生成问题的解决方案。
Disclaimer: Running MediaPipe on CentOS is experimental.
免责声明:在CentOS上运行MediaPipe是实验性的。
1.Install Bazelisk.
1.安装Bazelisk。
Follow the official Bazel documentation to install Bazelisk.
按照官方Bazel文档安装Bazelik。
2.Checkout MediaPipe repository.
2.切换MediaPipe存储库。
- $ git clone --depth 1 https://github.com/google/mediapipe.git
-
- # Change directory into MediaPipe root directory
- $ cd mediapipe
3.Install OpenCV.
3.安装OpenCV。
Option 1. Use package manager tool to install the pre-compiled version.
选项1 使用包管理器工具安装预编译版本。
Note: yum installs OpenCV 2.4.5, which may have an opencv/gstreamer issue.
注意:yum安装OpenCV 2.4.5,该版本可能存在OpenCV/gstareamer问题。
$ sudo yum install opencv-devel
Option 2. Build OpenCV from source code.
选项2 从源代码构建OpenCV。
Note: You may need to modify WORKSPACE, opencv_linux.BUILD and ffmpeg_linux.BUILD to point MediaPipe to your own OpenCV and FFmpeg libraries. For example if OpenCV and FFmpeg are both manually installed in "/usr/local/", you will need to update: (1) the "linux_opencv" and "linux_ffmpeg" new_local_repository rules in WORKSPACE, (2) the "opencv" cc_library rule in opencv_linux.BUILD, and (3) the "libffmpeg" cc_library rule in ffmpeg_linux.BUILD. These 3 changes are shown below:
注意:可能需要修改WORKSPACE、opencv_linux.BUILD和ffmpeg_linux.BUILD将MediaPipe指向自己的OpenCV和FFmpeg库。例如,如果OpenCV和FFmpeg都手动安装在“/usr/local/”中,则需要更新:(1)WORKSPACE中的“linux_opencv”和“linux_ffmpeg”new_local_pository规则,(2)opencv_linux.BUILD中的“OpenCV”cc_library规则,以及(3)ffmpeg_linux.BUILD中的“libffmpeg”cc_library规则。这3个变化如下所示:
- 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.Run the Hello World! in C++ example.
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!
If you run into a build error, please read Troubleshooting to find the solutions of several common build issues.
如果遇到生成错误,请阅读“疑难解答”以找到几个常见生成问题的解决方案。
1.Prework:
1.前期工作:
xcode-select --install
.xcode-select --install
安装Xcode及其命令行工具。2.Install Bazelisk.
2.安装Bazelisk。
Follow the official Bazel documentation to install Bazelisk.
按照官方Bazel文档安装Bazelik。
3.Checkout MediaPipe repository.
3.切换到MediaPipe存储库。
- $ git clone --depth 1 https://github.com/google/mediapipe.git
-
- $ cd mediapipe
4.Install OpenCV and FFmpeg.
4.安装OpenCV和FFmpeg。
Option 1. Use HomeBrew package manager tool to install the pre-compiled OpenCV 3 libraries. FFmpeg will be installed via OpenCV.
选项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
Option 2. Use MacPorts package manager tool to install the OpenCV libraries.
选项2 使用MacPorts软件包管理器工具安装OpenCV库。
$ port install opencv
Note: when using MacPorts, please edit the WORKSPACE, opencv_macos.BUILD, and ffmpeg_macos.BUILD files like the following:
注意:使用MacPorts时,请编辑WORKSPACE,opencv_macos.BUILD和ffmpeg_macos.BUILD文件如下所示:
- 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.Make sure that Python 3 and the Python "six" library are installed.
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.Run the Hello World! in C++ example.
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!
If you run into a build error, please read Troubleshooting to find the solutions of several common build issues.
如果遇到生成错误,请阅读“疑难解答”以找到几个常见生成问题的解决方案。
Disclaimer: Running MediaPipe on Windows is experimental.
免责声明:在Windows上运行MediaPipe是实验性的。
Note: building MediaPipe Android apps is still not possible on native Windows. Please do this in WSL instead and see the WSL setup instruction in the next section.
注意:在本机Windows上仍然无法构建MediaPipe Android应用程序。请改为在WSL中执行此操作,并参阅下一节中的WSL设置说明。
1.Install MSYS2 and edit the %PATH%
environment variable.
1.安装MSYS2并编辑%PATH%环境变量。
If MSYS2 is installed to C:\msys64
, add C:\msys64\usr\bin
to your %PATH%
environment variable.
如果MSYS2安装到C:\msys64,请将C:\msys64\usr\bin添加到%PATH%环境变量中。
2.Install necessary packages.
2.安装必要的包。
C:\> pacman -S git patch unzip
3.Install Python and allow the executable to edit the %PATH%
environment variable.
3.安装Python并允许可执行文件编辑%PATH%环境变量。
Download Python Windows executable from https://www.python.org/downloads and install.
从下载Python Windows可执行文件https://www.python.org/downloads并安装。
4.Install Visual C++ Build Tools 2019 and WinSDK
4.安装Visual C++Build Tools 2019和WinSDK
Go to the VisualStudio website, download build tools, and install Microsoft Visual C++ 2019 Redistributable and Microsoft Build Tools 2019.
转到VisualStudio网站,下载构建工具,然后安装Microsoft Visual C++2019 Redistributable和Microsoft build tools 2019。
Download the WinSDK from the official MicroSoft website and install.
从MicroSoft官方网站下载WinSDK并安装。
5.Install Bazel or Bazelisk and add the location of the Bazel executable to the %PATH%
environment variable.
5.安装Bazel或Bazelisk,并将Bazel可执行文件的位置添加到%PATH%环境变量中。
Option 1. Follow the official Bazel documentation to install Bazel 6.1.1 or higher.
选项1 按照官方Bazel文档安装Bazel 6.1.1或更高版本。
Option 2. Follow the official Bazel documentation to install Bazelisk.
选项2 按照官方Bazel文档安装Bazelik。
6.Set Bazel variables. Learn more details about "Build on Windows" in the Bazel official documentation.
6.设置Bazel变量。在Bazel官方文档中了解有关“在Windows上构建”的更多详细信息。
- # 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.Checkout MediaPipe repository.
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.Install OpenCV.
8.安装OpenCV。
Download the Windows executable from https://opencv.org/releases/ and install. MediaPipe 0.10.x supports OpenCV 3.4.10. Remember to edit the WORKSPACE file if OpenCV is not installed at C:\opencv
.
从下载Windows可执行文件https://opencv.org/releases/并安装。MediaPipe 0.10.x支持OpenCV 3.4.10。如果C:\OpenCV中未安装OpenCV,请记住编辑WORKSPACE文件。
- new_local_repository(
- name = "windows_opencv",
- build_file = "@//third_party:opencv_windows.BUILD",
- path = "C:\\<path to opencv>\\build",
- )
9.Run the Hello World! in C++ example.
9.运行Hello World!在C++示例中。
Note: For building MediaPipe on Windows, please add
--action_env PYTHON_BIN_PATH="C://path//to//python.exe"
to the build command. Alternatively, you can follow issue 724 to fix the python configuration manually.
注意:要在Windows上构建MediaPipe,请将--action_env PYTHON_BIN_PATH="C://path//to//python.exe"
添加到构建命令中。或者,可以按照问题724手动修复python配置。
- 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!
If you run into a build error, please read Troubleshooting to find the solutions of several common build issues.
如果遇到生成错误,请阅读“疑难解答”以找到几个常见生成问题的解决方案。
Note: The pre-built OpenCV packages don't support cameras in WSL. Unless you compile OpenCV with FFMPEG and GStreamer in WSL, the live demos won't work with any cameras. Alternatively, you use a video file as input.
注意:预先构建的OpenCV包不支持WSL中的摄像头。除非在WSL中使用FFMPEG和GStreamer编译OpenCV,否则现场演示将无法与任何相机一起使用。或者,使用视频文件作为输入。
1.Follow the instruction to install Windows Subsystem for Linux (Ubuntu).
1.按照说明安装Windows Subsystem for Linux(Ubuntu)。
2.Install Windows ADB and start the ADB server in Windows.
2.安装Windows ADB并在Windows中启动ADB服务器。
Note: Windows' and WSL’s adb versions must be the same version, e.g., if WSL has ADB 1.0.39, you need to download the corresponding Windows ADB from here.
注意:Windows和WSL的adb版本必须是相同的版本,例如,如果WSL有adb 1.0.39,您需要从这里下载相应的Windows adb。
3.Launch WSL.
3.启动WSL。
Note: All the following steps will be executed in WSL. The Windows directory of the Linux Subsystem can be found in C:\Users\YourUsername\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_SomeID\LocalState\rootfs\home
注意:以下所有步骤都将在WSL中执行。Linux子系统的Windows目录可以在C:\Users\YourUsername\AppData\Local\Packages\CanonicalGroupLimited中找到。UbuntuonDows_SomeID\LocalState\rootfs\home
4.Install the needed packages.
4.安装所需的包。
username@DESKTOP-TMVLBJ1:~$ sudo apt-get update && sudo apt-get install -y build-essential git python zip adb openjdk-8-jdk
5.Install Bazelisk.
5.安装Bazelisk。
Follow the official Bazel documentation to install Bazelisk.
按照官方Bazel文档安装Bazelik。
6.Checkout MediaPipe repository.
6.切换到MediaPipe存储库。
- username@DESKTOP-TMVLBJ1:~$ git clone --depth 1 https://github.com/google/mediapipe.git
-
- username@DESKTOP-TMVLBJ1:~$ cd mediapipe
7.Install OpenCV and FFmpeg.
7.安装OpenCV和FFmpeg。
Option 1. Use package manager tool to install the pre-compiled OpenCV libraries. FFmpeg will be installed via libopencv-video-dev.
选项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
Option 2. Run setup_opencv.sh to automatically build OpenCV from source and modify MediaPipe's OpenCV config.
选项2 运行setup_opencv.sh从源代码自动构建opencv,并修改MediaPipe的opencv配置。
Option 3. Follow OpenCV's documentation to manually build OpenCV from source code.
选项3 按照OpenCV的文档从源代码手动构建OpenCV。
Note: You may need to modify WORKSPACE and opencv_linux.BUILD to point MediaPipe to your own OpenCV libraries, e.g., if OpenCV 4 is installed in "/usr/local/", you need to update the "linux_opencv" new_local_repository rule in WORKSPACE and "opencv" cc_library rule in opencv_linux.BUILD like the following:
注意:可能需要修改WORKSPACE和opencv_linux.BUILD将MediaPipe指向自己的OpenCV库,例如,如果OpenCV 4安装在“/usr/local/”中,则需要更新WORKSPACE中的“linux_opencv”new_local_pository规则和opencv_linux.BUILD中的“OpenCV”cc_library规则。按照以下方式:
- 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.Run the Hello World! in C++ example.
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!
If you run into a build error, please read Troubleshooting to find the solutions of several common build issues.
如果遇到生成错误,请阅读“疑难解答”以找到几个常见生成问题的解决方案。
This will use a Docker image that will isolate mediapipe's installation from the rest of the system.
这将使用Docker映像,将mediapipe的安装与系统的其他部分隔离开来。
1.Install Docker on your host system.
1.在主机系统上安装Docker。
2.Build a docker image with tag "mediapipe".
2.使用标签“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 . /mediapipe/
- # ---> a95c212089c5
- # Successfully built a95c212089c5
- # Successfully tagged mediapipe:latest
3.Run the Hello World! in C++ example.
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!
If you run into a build error, please read Troubleshooting to find the solutions of several common build issues.
如果遇到生成错误,请阅读“疑难解答”以找到几个常见生成问题的解决方案。
1.Build a MediaPipe Android example.
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。