نصب روی دبیان و اوبونتو
Bazelisk را نصب کنید.
برای نصب Bazelisk مستندات رسمی Bazel را دنبال کنید.
مخزن 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
نصب خواهد شد.سیستم عامل OpenCV دبیان 9 (کشش) 2.4 دبیان 10 (باستر) 3.2 Debian 11 (bullseye) 4.5 اوبونتو 16.04 LTS 2.4 اوبونتو 18.04 LTS 3.2 اوبونتو 20.04 LTS 4.2 اوبونتو 20.04 LTS 4.2 اوبونتو 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 . برای ایجاد خودکار OpenCV از منبع و تغییر پیکربندی OpenCV MediaPipe
setup_opencv.sh
اجرا کنید. این گزینه تمام مراحل تعریف شده در گزینه 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", ], )
برای اجرای نمونه های دسکتاپ فقط در لینوکس (نه در 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.
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 آزمایشی است.
Bazelisk را نصب کنید.
برای نصب Bazelisk مستندات رسمی Bazel را دنبال کنید.
مخزن 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
پیش کار:
- Homebrew را نصب کنید.
- Xcode و ابزارهای خط فرمان آن را با
xcode-select --install
نصب کنید.
Bazelisk را نصب کنید.
برای نصب Bazelisk مستندات رسمی Bazel را دنبال کنید.
مخزن 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!
اگر با خطای ساخت مواجه شدید، لطفاً عیبیابی را بخوانید تا راهحلهای چندین مشکل ساخت رایج را بیابید.
نصب روی ویندوز
سلب مسئولیت : اجرای MediaPipe در ویندوز آزمایشی است.
MSYS2 را نصب کنید و متغیر محیطی
%PATH%
را ویرایش کنید.اگر MSYS2 در
C:\msys64
نصب شده است،C:\msys64\usr\bin
را به متغیر محیطی%PATH%
خود اضافه کنید.بسته های لازم را نصب کنید
C:\> pacman -S git patch unzip
پایتون را نصب کنید و به فایل اجرایی اجازه دهید تا متغیر محیطی
%PATH%
را ویرایش کند.فایل اجرایی پایتون ویندوز را از https://www.python.org/downloads دانلود و نصب کنید.
Visual C++ Build Tools و WinSDK را نصب کنید
به وب سایت VisualStudio بروید، ابزارهای ساخت را دانلود کنید و Microsoft Visual C++ 2022 Redistributable و Microsoft Build Tools 2022 را نصب کنید.
WinSDK را از وب سایت رسمی مایکروسافت دانلود و نصب کنید.
Bazel یا Bazelisk را نصب کنید و محل اجرای Bazel را به متغیر محیطی
%PATH%
اضافه کنید.گزینه 1. برای نصب Bazel 6.5.0 یا بالاتر ، مستندات رسمی Bazel را دنبال کنید.
گزینه 2. مستندات رسمی Bazel را برای نصب Bazelisk دنبال کنید.
متغیرهای 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>
مخزن 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 را نصب کنید.
فایل اجرایی ویندوز را از https://opencv.org/releases/ دانلود و نصب کنید. MediaPipe 0.10.x از OpenCV 3.4.10 پشتیبانی می کند. به یاد داشته باشید که اگر OpenCV در
C:\opencv
نصب نشده است، فایلWORKSPACE
را ویرایش کنید.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!
اگر با خطای ساخت مواجه شدید، لطفاً عیبیابی را بخوانید تا راهحلهای چندین مشکل ساخت رایج را بیابید.
نصب بر روی زیرسیستم ویندوز برای لینوکس (WSL)
دستورالعمل نصب زیرسیستم ویندوز برای لینوکس (اوبونتو) را دنبال کنید.
ویندوز 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 را نصب کنید.
برای نصب Bazelisk مستندات رسمی Bazel را دنبال کنید.
مخزن 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 از منبع ساخته شود و پیکربندی 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"], )
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 را از بقیه سیستم جدا می کند.
یک تصویر داکر با برچسب "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
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 بسازید.
$ 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