概要
ラズパイ4にEdge TPU(USB Accelerator)を接続し、Edge TPU Python APIを使用できるようにする手順を解説しています。
公式で配布されているインストーラーですとラズパイ4には未対応(2019年9月現在)、コマンドを叩いてセットアップする必要があります。
使用機材
- Raspberry Pi 4 Model B 4GB RAM(Raspbian Buster)
- Google Edge TPU ML accelerator coprocessor USB Accelerator
注意事項
ラズパイ4は国内の技適が取得できていません。実機で試す場合は無線LAN機能やBluetooh機能をオフにしてから実施するようにしてください。
手順
資材のダウンロードと展開
wgetで資材をダウロードし展開します。ここはラズパイ3の時と変わりません。
$ wget https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz -O edgetpu_api.tar.gz --trust-server-names
$ tar xzf edgetpu_api.tar.gz
$ cd edgetpu_api/
必要なライブラリのインストール
aptを使って必要なライブラリをインストールします。
$ sudo apt-get install -y \
libusb-1.0-0 \
python3-pip \
python3-pil \
python3-numpy \
libc++1 \
libc++abi1 \
libunwind8 \
libgcc1
デバイス管理ルールの入替
udev用のルールを入れ替えます。
$ sudo cp -p ./99-edgetpu-accelerator.rules /etc/udev/rules.d/99-edgetpu-accelerator.rules
$ sudo su
# udevadm control --reload-rules && udevadm trigger
# exit
ライブラリのコピー
必要なライブラリのコピーをします。最大動作周波数を有効にするかどうかでコピーするファイルが違います。
最大動作周波数を有効にする場合
$ sudo cp -p ./libedgetpu/libedgetpu_arm32.so /usr/lib/arm-linux-gnueabihf/libedgetpu.so.1.0
$ sudo ldconfig
最大動作周波数を有効にしない場合
$ sudo cp -p ./libedgetpu/libedgetpu_arm32_throttled.so /usr/lib/arm-linux-gnueabihf/libedgetpu.so.1.0
$ sudo ldconfig
Python APIのインストール
whlファイルからPython APIのインストールを行います。
$ sudo python3 -m pip install --no-deps ./edgetpu-2.11.1-py3-none-any.whl
ライブラリの名称変更
ライブラリの名称変更を行います。Python3.7の場合必要な変更で、Rasbian BusterからはPython3.7が標準で使われるようになっているので必要になります。
$ cd /usr/local/lib/python3.7/dist-packages/edgetpu/swig/
$ sudo cp _edgetpu_cpp_wrapper.cpython-35m-arm-linux-gnueabihf.so _edgetpu_cpp_wrapper.so
最後に
これでEdge TPU Python APIが出来るようになります。公式の鳥を識別するデモプログラムが動かせるようになりますので試してみてください。
余談
2019/9/22(日)の技術書典7にて、ラズパイとEdgeTPUを使うための本を頒布いたします。AutoML Visionとの連携も解説しておりますので、是非見に来てください。サークルページ