Debian ve Ubuntu'ya yükleme
Bazelisk'i yükleyin.
Bazelisk'i yüklemek için resmi Bazel dokümanlarını inceleyin.
MediaPipe deposuna göz atın.
$ cd $HOME $ git clone --depth 1 https://github.com/google/mediapipe.git # Change directory into MediaPipe root directory $ cd mediapipe
OpenCV ve FFmpeg'i yükleyin.
1. Seçenek. Önceden derlenmiş OpenCV kitaplıklarını yüklemek için paket yöneticisi aracını kullanın. FFmpeg,
libopencv-video-dev
üzerinden yüklenecek.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
Not. Debian 11/Ubuntu 21.04'te OpenCV 4.5,
libopencv-video-dev
ile yüklendiğindelibopencv-contrib-dev
da yüklenmelidir.$ sudo apt-get install -y libopencv-contrib-dev
MediaPipe'in
opencv_linux.BUILD
veWORKSPACE
, OpenCV 2/3 için önceden yapılandırılmıştır ve herhangi bir mimaride düzgün şekilde çalışmalıdır:# 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 için mevcut mimariyi dikkate alarak
opencv_linux.BUILD
öğesini değiştirmeniz gerekir:# 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. Seçenek. OpenCV'yi kaynaktan otomatik olarak derlemek ve MediaPipe'in OpenCV yapılandırmasını değiştirmek için
setup_opencv.sh
dosyasını çalıştırın. Bu seçenek, 3. Seçenek'te tanımlanan tüm adımları otomatik olarak uygular.3. seçenek. OpenCV'yi kaynak kodundan manuel olarak derlemek için OpenCV'nin dokümanlarını inceleyin.
MediaPipe'i kendi OpenCV kitaplıklarınıza işaret etmek için
WORKSPACE
veopencv_linux.BUILD
özelliklerini değiştirmeniz gerekebilir. OpenCV'nin varsayılan olarak önerilen/usr/local/
konumuna yükleneceğini varsayalım.OpenCV 2/3 kurulumu:
# 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 kurulumu:
# 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", ], )
Mevcut FFmpeg kurulumu
ffmpeg_linux.BUILD
içinde tanımlanmıştır ve tüm mimariler için çalışmalıdır:# 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", ], )
Masaüstü örneklerini GPU hızlandırması ile yalnızca Linux'ta (OS X'te değil) çalıştırmak için.
# 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.
C++'ta Merhaba Dünya! örneğini çalıştırın.
$ 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!
Derleme hatasıyla karşılaşırsanız sık karşılaşılan çeşitli derleme sorunlarının çözümlerini bulmak için lütfen Sorun giderme bölümünü okuyun.
CentOS'a yükleme
Sorumluluk reddi beyanı: MediaPipe'i CentOS'ta çalıştırmak deneyseldir.
Basilisk'i yükleyin.
Bazelisk'i yüklemek için resmi Bazel dokümanlarını inceleyin.
MediaPipe deposuna göz atın.
$ git clone --depth 1 https://github.com/google/mediapipe.git # Change directory into MediaPipe root directory $ cd mediapipe
OpenCV'yi yükleyin.
1. Seçenek: Önceden derlenmiş sürümü yüklemek için paket yöneticisi aracını kullanın.
$ sudo yum install opencv-devel
2. Seçenek OpenCV'yi kaynak kodundan derleyin.
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"], )
C++'ta Merhaba Dünya! örneğini çalıştırın.
$ 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!
Derleme hatasıyla karşılaşırsanız yaygın derleme sorunlarının çözümlerini bulmak için lütfen Sorun Giderme bölümünü okuyun.
macOS'e yükleme
Ön çalışma:
Bazelisk'i yükleyin.
Bazelisk'i yüklemek için resmi Bazel dokümanlarını inceleyin.
MediaPipe deposuna göz atın.
$ git clone --depth 1 https://github.com/google/mediapipe.git $ cd mediapipe
OpenCV ve FFmpeg'i yükleyin.
1. Seçenek: Önceden derlenmiş OpenCV 3 kitaplıklarını yüklemek için HomeBrew paket yöneticisi aracını kullanın. FFmpeg, OpenCV üzerinden yüklenir.
$ brew install opencv@3 # There is a known issue caused by the glog dependency. Uninstall glog. $ brew uninstall --ignore-dependencies glog
2. Seçenek OpenCV kitaplıklarını yüklemek için MacPorts paket yöneticisi aracını kullanın.
$ 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 ve Python "six" kitaplığının yüklü olduğundan emin olun.
$ 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
C++ örneğinde Hello World! komutunu çalıştırın.
$ 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!
Derleme hatasıyla karşılaşırsanız sık karşılaşılan çeşitli derleme sorunlarının çözümlerini bulmak için lütfen Sorun giderme bölümünü okuyun.
Windows'a yükleme
Sorumluluk reddi beyanı: MediaPipe'i Windows'da çalıştırmak deneyseldir.
MSYS2'yi yükleyin ve
%PATH%
ortam değişkenini düzenleyin.MSYS2,
C:\msys64
konumuna yüklenirse%PATH%
ortam değişkeninizeC:\msys64\usr\bin
ekleyin.Gerekli paketleri yükleyin.
C:\> pacman -S git patch unzip
Python'u yükleyin ve yürütülebilir dosyanın
%PATH%
ortam değişkenini düzenlemesine izin verin.Python Windows yürütülebilir dosyasını https://www.python.org/downloads adresinden indirin ve yükleyin.
Visual C++ Derleme Araçları 2019 ve WinSDK'yı yükleyin
Visual Studio web sitesine gidin, derleme araçlarını indirin ve Microsoft Visual C++ 2019 Redistributable ile Microsoft Build Tools 2019'u yükleyin.
WinSDK'yi resmi Microsoft web sitesinden indirip yükleyin.
Bazel veya Bazelisk'i yükleyin ve Bazel yürütülebilir dosyasının konumunu
%PATH%
ortam değişkenine ekleyin.1. Seçenek: Bazel 6.5.0 veya sonraki bir sürümü yüklemek için resmi Bazel belgelerini inceleyin.
2. Seçenek Bazelisk'i yüklemek için resmi Bazel dokümanlarını inceleyin.
Bazel değişkenlerini ayarlayın. "Windows'ta derleme" hakkında daha fazla bilgiyi Bazel'in resmi belgelerinde bulabilirsiniz.
# 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 deposuna göz atın.
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'yi yükleyin.
Windows yürütülebilir dosyasını https://opencv.org/releases/ adresinden indirip yükleyin. MediaPipe 0.10.x, OpenCV 3.4.10'u destekler.
C:\opencv
adresinde OpenCV yüklü değilseWORKSPACE
dosyasını düzenlemeyi unutmayın.new_local_repository( name = "windows_opencv", build_file = "@//third_party:opencv_windows.BUILD", path = "C:\\<path to opencv>\\build", )
C++ örneğinde Hello World! komutunu çalıştırın.
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!
Derleme hatasıyla karşılaşırsanız sık karşılaşılan çeşitli derleme sorunlarının çözümlerini bulmak için lütfen Sorun giderme bölümünü okuyun.
Linux (WSL) için Windows Alt Sistemine Yükleniyor
Linux için Windows alt sistemini (Ubuntu) yükleme talimatları
Windows ADB'yi yükleyin ve Windows'da ADB sunucusunu başlatın.
WSL'yi başlatın.
adresinde bulunabilir.Gerekli paketleri yükleyin.
username@DESKTOP-TMVLBJ1:~$ sudo apt-get update && sudo apt-get install -y build-essential git python zip adb openjdk-8-jdk
Basilisk'i yükleyin.
Bazelisk'i yüklemek için resmi Bazel dokümanlarını inceleyin.
MediaPipe deposuna göz atın.
username@DESKTOP-TMVLBJ1:~$ git clone --depth 1 https://github.com/google/mediapipe.git username@DESKTOP-TMVLBJ1:~$ cd mediapipe
OpenCV ve FFmpeg'i yükleyin.
1. Seçenek: Önceden derlenmiş OpenCV kitaplıklarını yüklemek için paket yöneticisi aracını kullanın. FFmpeg, libopencv-video-dev aracılığıyla yüklenir.
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. Seçenek OpenCV'yi kaynaktan otomatik olarak derlemek ve MediaPipe'in OpenCV yapılandırmasını değiştirmek için
setup_opencv.sh
aracını çalıştırın.Seçenek 3. Kaynak kodundan manuel olarak OpenCV oluşturmak için OpenCV'nin dokümanlarını uygulayın.
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"], )
C++'ta Merhaba Dünya! örneğini çalıştırın.
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!
Bir derleme hatasıyla karşılaşırsanız sık karşılaşılan çeşitli derleme sorunlarının çözümlerini bulmak için lütfen Sorun giderme bölümünü okuyun.
Docker kullanarak yükleme
Bu işlemde, mediapipe'in yüklemesini sistemin geri kalanından ayıracak bir Docker resmi kullanılır.
Ana makinenize Docker'ı yükleyin.
"mediapipe" etiketine sahip bir Docker görüntüsü oluşturun.
$ 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
C++'ta Merhaba Dünya! örneğini çalıştırın.
$ 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!
Derleme hatasıyla karşılaşırsanız yaygın derleme sorunlarının çözümlerini bulmak için lütfen Sorun Giderme bölümünü okuyun.
MediaPipe Android örneği oluşturun.
$ 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