3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MediaPipe を Windows の WSL (無印)で動かす (結論: カメラは無理だけど動画ファイルならOK)

Last updated at Posted at 2019-12-15

raspbian のほうのコンパイルに時間かかって暇なので、先にWindowsで試してみる。Windows は WSL でしか mediapipe はサポートされてないようなので、WSL を有効化して Ubuntu 18.04 を入れるところからやる。

結論

WSLがカメラデバイスに対応してないそうな。
https://ja.stackoverflow.com/questions/59505/wslubuntu%E3%81%8B%E3%82%89web%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%9F%E3%81%84

無理やん。ファイルから読むようにすればできるかも。とりあえず手順だけ書いておく。

WSL の準備

主に下記の要約
https://www.atmarkit.co.jp/ait/articles/1608/08/news039.html

Windows10 の PowerShell を管理者権限で起動して次のコマンドを実行する。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Microsoft Store で Linux とか Ubuntu とか検索して、ディストリビューションをインストールする。

tmp.jpg

インストールされたら「起動」を押して起動する。

mediapipe の準備

以下は、下記URLの通りにやるhttps://github.com/google/mediapipe/blob/master/mediapipe/docs/install.md#installing-on-windows-subsystem-for-linux-wsl

Installing on Windows Subsystem for Linux (WSL) の記述のところにあるとおりにする。

hello world のビルド

GPU なしでビルトする。

$ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \
    mediapipe/examples/desktop/hello_world:hello_world

特に問題なくビルドと run できた。

Hand Tracking はどうなの

ビルドは通るけど、カメラにアクセス出来ないといわれて無理。

demo_run_graph_main.cc:52] Initialize the calculator graph.
demo_run_graph_main.cc:56] Initialize the camera or load the video.
demo_run_graph_main.cc:146] Failed to run the graph: ; capture.isOpened()(mediapipe/examples/desktop/demo_run_graph_main.cc:64)

WSL2になったらできるかも、ということらしい。

参考: https://github.com/google/mediapipe/blob/master/mediapipe/docs/hand_tracking_desktop.md#tensorflow-lite-hand-tracking-demo-with-webcam-gpu

ファイルを読ませるのはどうか

$ bazel build -c opt mediapipe/examples/desktop/hand_tracking:hand_tracking_tflite --define MEDIAPIPE_DISABLE_GPU=1
$ export GLOG_logtostderr=1
$ bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_tflite        --calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_desktop.pbtxt \
  --input_side_packets=input_video_path=./in.mp4,output_video_path=./out.mp4

これは動いた。あらかじめ in.mp4 という動画を用意しておいて、上記コマンドで処理すると out.mp4 が出力される。リアルタイムにやるのと違ってフレーム飛びしない。

追伸

Android 用のバイナリをコンパイルすることはできる。ADBを使って apk を Android にアップロードとかもできる。けど、趣旨から外れるのでここではパス。

Ubuntu 20.04LTS の追記

  1. opencv2/core.hpp not found とか言われた場合:
$ sudo ln -s /usr/include/opencv4/opencv2 /usr/include/opencv2

としてみる。

  1. opencv2/optflow.hpp not found とか言われた場合:
$ sudo apt install libopencv-contrib-dev

としてみる。

  1. Numpy is Installed? とか言われた場合:
$ sudo apt install python-numpy

としてみる。

これくらいで通りました。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?