👋

Raspberry Piで手軽にMediaPipeを楽しむ方法

2021/05/31に公開

MediaPipeをラズパイでもpipで入れたい

OSC2021 Nagoyaでの @KzhtTkhsさんのMediaPipeに関する発表をみたあと

「MediaPipeよいのだけど、Arm系のラズパイとかApple Silicon Macだとpipでそのまま入らないんだよなー」

とつぶやいたら、なんとビルドジャンキーの @PINTO03091さんが一瞬でRaspberry Pi用のwheelパッケージをビルドしてリポジトリを公開してくださっていました。

https://github.com/PINTO0309/mediapipe-bin

最高ですね。とりあえずメモがてら動かし方の手順を残しておきます。

Raspberry PiでMediaPipeを手軽に動かす方法

Raspberry Pi OS(64bit)で動かす方法と、Ubuntu(64bit)で動かす方法の2つがあります。

https://twitter.com/PINTO03091/status/1399175323644686336

それぞれ手順が多少異なります。お好きな方を選択ください。

事前準備

OS関係なく、以下が必要です。

  • Raspberry Pi 4
  • microSDカード + SDカードリーダー
  • USBカメラ

試していませんが、Raspberry Pi 3でも問題ないと思います。

Raspberry Pi OS(64bit)でのカメラモジュールの使い方

Raspberry Pi OS(64bit)で、Raspberry Pi用カメラモジュールを使用する場合は、32bit版とは異なる手順が必要なので注意してください。

まず画面左上のスタートボタンから 設定 > Raspberry Piの設定でカメラをEnableにした後、再起動します。その上で、ターミナルで以下コマンド実行して、supported=1 detected=1となることを確認します。

$ vcgencmd get_camera
supported=1 detected=1

ここまでは32bit版と同じです。この後、64bit版の場合は以下コマンドを実行します。

$ sudo modprobe bcm2835-v4l2

これで、Open CVでラズパイカメラモジュールの入力を扱えるようになります。

Raspberry Pi OS(64bit)にMediaPipeをインストールする方法。

Raspberry Pi OS(64bit)のイメージをサイトからダウンロードします。

https://downloads.raspberrypi.org/raspios_arm64/images/

私は、以下の2021-05-07のバージョンのRaspberry Pi OSを用いました。

https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2021-05-28/2021-05-07-raspios-buster-arm64.zip

好きな書き込みソフトでイメージを書き込みましょう。私はRaspberry Pi Imagerを使いました。Raspberry Pi Imagerの使い方やインストール方法に関しては、以下記事参照ください。

https://qiita.com/karaage0703/items/79e09db0ef3ebcf94882

カスタムイメージで、先程ダウンロードした64bitのRaspberry Pi OSのイメージファイルを選択します。zipファイルのままで問題ありません。

@PINTO03091さんのリポジトリのREADME、ほぼそのままでOKです。

https://github.com/PINTO0309/mediapipe-bin

私の環境では、以下コマンド実行すればOKでした。

$ sudo apt update && \
  sudo apt install -y python3-dev protobuf-compiler python3-pip git make libssl-dev
$ sudo pip3 install pip --upgrade
$ cd && git clone https://github.com/PINTO0309/mediapipe-bin && cd mediapipe-bin
$ ./v0.8.4/numpy120x/mediapipe-0.8-cp37-none-linux_aarch64_numpy120x_download.sh
$ sudo pip3 install *.whl
$ sudo pip3 install opencv-python

Ubuntu 20.04.2(64bit)にMediaPipeインストール

Raspberry Pi Imagerを使ってmicroSDにOSイメージを書き込みます。Raspberry Pi Imagerの使い方やインストール方法に関しては、以下記事参照ください。

https://qiita.com/karaage0703/items/79e09db0ef3ebcf94882

Raspberry Pi Imagerを起動したら Other general purpose OS > Ubuntu > Ubuntu Server 20.04.2 LTS(64-bit)を選択してmicroSDカードに書き込みます。32bitと間違えないように注意しましょう。

Raspberry PiでUbuntuを起動した後、以下コマンドでGUI(デスクトップ)をインストールします。

$ sudo apt update
$ sudo apt install -y ubuntu-desktop
$ sudo shutdown -r now

sudo apt install -y ubuntu-desktopCould not get lock /var/lib/dpkg/lock-frontendというエラーが出る場合は、以下コマンド実行して再起動してから、コマンドを実行しなおしましょう。

$ sudo rm /var/lib/apt/lists/lock
$ sudo rm /var/cache/apt/archives/lock
$ sudo rm /var/lib/dpkg/lock*

再起動したら、GUI画面が立ち上がります。

続いて、MediaPipeをインストールします。Raspberry Pi OSと同様@PINTO03091さんのリポジトリのREADME、ほぼそのままでOKです。

私の環境では、以下コマンド実行すればOKでした。

$ sudo apt update && \
  sudo apt install -y python3-dev protobuf-compiler python3-pip git make libssl-dev
$ sudo pip3 install pip --upgrade
$ curl -O https://raw.githubusercontent.com/PINTO0309/mediapipe-bin/main/v0.8.4/numpy120x/mediapipe-0.8-cp38-none-linux_aarch64_numpy120x_download.sh
$ chmod 755 mediapipe-0.8-cp38-none-linux_aarch64_numpy120x_download.sh
$ sudo pip3 install *.whl
$ pip3 install opencv-python

MediaPipeのサンプルを動かす

@KzhtTkhsさんのサンプルリポジトリを使うと、MediaPipeのサンプルを簡単に動かせます。

https://github.com/Kazuhito00/mediapipe-python-sample

以下コマンドで実行できます。

$ cd && git clone https://github.com/Kazuhito00/mediapipe-python-sample
$ cd mediapipe-python-sample
$ python3 sample_hand.py

実行結果です。

手の検出が8fpsとなかなかの速度で動きます。

@KzhtTkhsさんの身体を張ったテストによると、その他のモデルでの実行速度は、以下のような感じみたいです。

https://twitter.com/KzhtTkhs/status/1399371520133136387

まとめ

MediaPipeを比較的簡単にラズパイで動かす方法を紹介しました。@KzhtTkhsさん@PINTO03091さんのおかげですね。感謝!

小型なラズパイでMediaPipeが動かせると、色々応用できそうですね。この調子でM1 MacbookやJetson Nanoでも手軽に楽しめるようになるといいですね(Jetson Nanoだとそのまま同じ手順で動くかもとのこと。興味ある方は是非チャレンジしてみてください)。

Raspberry Piに関しては、ブログやラズパイマガジンでも色々記事を書いていますので、ラズパイに興味ある方はこの下の関連記事なども参考にしてみてください。

関連記事

https://karaage.hatenadiary.jp/entry/2015/09/10/073000

https://karaage.hatenadiary.jp/entry/rpi4-dl-setup

https://zenn.dev/karaage0703/articles/808d3922a1671b

参考リンク

https://qiita.com/ketaro-m/items/881f2ec16cd369955f18

https://www.raspberrypi.org/forums/viewtopic.php?p=1729920

https://www.hiro877.com/entry/rasp-mp-pip-inst

変更履歴

  • 2021/05/31 Raspberry Pi OS(64bit)でのセットアップ方法を追記

Discussion