LoginSignup
1
1

More than 3 years have passed since last update.

バーチャル背景ライブラリbackscrubをラズパイ4Bに実装

Last updated at Posted at 2021-05-11

はじめに

Deep learningを使用しているバーチャル背景ライブラリ、backscrubをラズパイで実装します。

https://github.com/floe/backscrub
image.png

backscrubとは

MeetやZoomのようなバーチャル背景を作成するライブラリです。
人物の切り取りにtensorflowにを使用しています。
v4l2loopbackで仮想videoデバイスを作ることができます。
使用する学習済みモデルによって差異はありますが、ラズパイ4Bでは7~20FPSぐらいで動きます。

結 論

READMEどおりやってもうまくいかないので、Makefileを修正した後にmakeする必要がある。

install_backscrub.sh
sudo apt-get update
sudo apt install libopencv-dev build-essential v4l2loopback-dkms curl
git clone https://github.com/floe/backscrub.git
cd backscrub
git clone https://github.com/tensorflow/tensorflow/
sed -i -e "s/build_lib.sh/build_rpi_lib.sh/" Makefile #ラズパイ用のスクリプトに変更
sed -i -e "s/linux_x86_64/rpi_armv7l/" Makefile #ラズパイ用のアーキテクチャに変更
make

実装環境

ハード:Raspberry Pi 4 Model B

Revision Release Date Model PCB Revision Memory
c03112 Q2 2019 4 Model B 1.2 4 GB

OS:Raspbian

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:    10
Codename:   buster

解 説

backscrubはtensorflowを使用しているので、Tensorflow公式ページのRaspberry Pi でネイティブにコンパイルするを参考にしてコンパイルする。

backscrubフォルダ内のMakefileを2箇所変更する必要がある。
①ラスパイ用のビルドスクリプトに変更。

Makefile
#cd $(TFLITE) && ./download_dependencies.sh && ./build_lib.sh
cd $(TFLITE) && ./download_dependencies.sh && ./build_rpi_lib.sh

②linux_x86_64をrpi_armv7lに置換する。
```makefile:Makefile

TFLIBS=$(TFLITE)/gen/linux_x86_64/lib/

TFLIBS=$(TFLITE)/gen/rpi_armv7l/lib/
```

実 行

$ sudo modprobe v4l2loopback devices=1 max_buffers=2 exclusive_caps=1 card_label="VirtualCam"
$ ./deepseg -d -d -c /dev/video0 -v /dev/video1 -m models/selfiesegmentation_mlkit-256x256-2021_01_19-v1215.f16.tflite

image.png
※目隠しは自分で加工しました。

だいたい7FPSぐらいで動きます。
ラズパイでこのクオリティはすごいのではないでしょうか。

おわりに

ラズパイ4B熱くなりすぎでは?

1
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
1
1