Raspberry Pi 4B に Ubuntu OS を入れてTensorflowをインストールしてみよう

セットアップ方法
Table of Content

Raspberry Pi(ラズベリーパイ、略してラズパイ)を初めて触った時は軽い衝撃でした。数年前「え? ラズベリーパイを知らない? (あなた、信用して大丈夫ですか?)」とお客様に驚かれたので、ちょっと調べてみたところ「なんじゃこりゃー」と衝撃を受けたわけです。

なんとOSが乗っていて、マウスとキーボードをUSBで直接接続できて、HDMI端子でディスプレイに画面を出せます。「PCやん。これ・・」。これが5000円前後でした。なんてこった。確かに「あなた信用して大丈夫ですか?」と声なき声でお客様に言われるのもうなずけます。

ラズパイにUbuntu と TensorFlow を入れてエッジAIを実現するぞ!

Raspberry Pi にはRaspberry Pi OS(昔はRaspbianと呼ばれていた)というLinux系列の専用OSを載せるのが標準的な使い方です。ほとんどのことはこれでできますし、Pythonなども標準で入っていますし、ラズパイ専用に開発されたOSなので、他のOSを載せるより(多分)安定性も高いです。
しかし、今回はTensorflow で書かれたAIのコードをそのまま動かしたいと考えています。AIといえばUbuntu OSを載せたくなりますね。Tensorflowで標準サポートされているLinux系OSはUbuntuだけです。
Raspberry Pi にUbuntu OSを載せて、Tensorflow をインストールするところまでが今回のゴールです。

Raspberry Pi 本体・周辺装置を調達する

Raspberry Pi 本体を選定する

結論から言えばTensorflow でAIを動作させるのであれば、メモリは4Gくらいは欲しいのとUbuntu Desktop をインストールするには4G以上のメモリが必要なので、 Raspberry Pi 4B のメモリ4G版か8G版を購入してください(2021年9月時点)。

2021年9月時点でAmazonなどで入手可能な選択肢はRaspberry Pi 3B+, Raspberry 4B となりますが、以下のような違いがあります。

Raspberry Pi 3B+ Raspberry Pi 4B
CPU クアッドコア1.5G クアッドコア1.5G
メモリ 1G 2G / 4G / 8G
電源 5V, 2.5A 5V, minimum3A
USB USB2.0×4 USB2.0×2, USB3.0×2

Tensorflow を利用するとなるとメモリの容量が欲しくなります。AIの中では非常に軽い処理であるVGG16で推論を行う際には、メモリは400Mバイト程度使っていました。OSの稼働で300~400Mバイト使っているようなので、この2つだけで800Mバイトも使ってしまいます。1Gだとすぐハングしそうですし、VGG16より重い処理をする場合2Gでも不安です。
また、後述するようにUbuntu Desktop をインストールするためには4G以上のメモリが必要という要件もあります。
ということで、Raspberry Pi 4B 系列でメモリが4Gか8Gのものを購入する必要があります。

Raspberry Pi 4Bの周辺装置を選定する

Raspberry Pi 4B の注意点は、電源が5V 3Aとなっている点です。
さらっと言うけどね、3Aの電源なんて、昔はまずお目にかからなかったものですよ。中学校の「オームの法則」の計算問題に出てきそうですが、あのね、3Aも流したら細い抵抗ならすぐ焦げて断線して、電流ゼロになりますよ。単純な掛け算、割り算では大人の世界には対応できんのです。
昔話はおいたとしても、今日でもRaspberry Pi 4Bを動作させられることを確認済みの電源を購入しないと、適当な5V電源を流用しても安定して3Aもの電流は流せないので電圧降下し不安定になること請け合いです。

また、Raspberry Pi 4Bにフルパワーで計算処理をさせた時に3Aの電流を消費するということは、それだけ熱を発するわけです。そしてAIの推論処理中、CPUはほぼ100%稼働状態になります。放熱用のヒートシンクやファンを用意しておかないと確実に熱暴走します。ファン付きの専用ケースが必須になりますが、バラバラに購入して組み上げるのは無理なので、以下のようなセットになっているものを買うのが現実的です。

この他、HDMIの端子も microHDMI なので、通常のディスプレイに出力するためには、microHDMI ⇔ HDMI の変換コネクタもしくはケーブルが必要になります。上のセットには含まれていますがご注意ください。

Raspberry Pi にUbuntuをインストールする

全体の手順

Raspberry Pi は、micro SD カードにOSを書き込んで使います。ただWindowsやMacのファイルシステムとはフォーマットが異なるのでエクスプローラでSDカードを開いて、ラズパイ用のOSファイルをコピペする、というわけにはいきません。

大まかな手順は

  1. PCにmicro SDカードへのOS書き込み専用ソフト(Raspberry Pi Imager)をインストールする
  2. PCにmicroSDカードを挿す
  3. Raspberry Pi Imagerを起動しRaspberry Piに搭載したいOSを選択し、書き込み開始
  4. 書き込みが終了したらmicroSDカードをPCから抜いてRaspberry Pi に挿す

というだけです。簡単ですね。

Raspberry Pi ImagerのPCへのダウンロード・インストール

Raspberry Piの公式サイトからインストーラファイルをダウンロードします。

2021.9時点 Raspberry Pi Imager ページ

2021.9時点 Raspberry Pi Imager ページ


大きく「Download for Windows」 というボタンがあるので、どこからダウンロードするかすぐわかりますね。

起動直後の画面がこちら↓。

最初にChoose OS ボタンを押します。あとは、Other general purpose OS → Ubuntu → Ubuntu Desktop 21.04 を選択します。

選択順

選択順

Ubuntu Desktop(1.7GB) と Ubuntu Server(0.7GB) の2種類を選択することができます。GUIが必要かどうかで選択します。詳しく言うと「設定はコマンドライン(黒い画面)だけで十分。外からSSHで接続するから大丈夫よ。」という人や、本番環境で実運用する人はUbuntu Server を選べば良いと思いますが、ラズパイ初心者の人は迷わずUbuntu Desktopを選択します。 Windows や Macのようにマウス操作を受け付ける画面が使えるようになります。ただし、Ubuntu Desktopをインストール可能なのは、メモリを4G以上搭載している機種だけです。

Ubuntuのデスクトップイメージ。WindowsやMacのようにGUIでマウス操作可能

Ubuntu DesktopのUI。WindowsやMacのようにGUIでマウス操作可能。Ubuntu Server を選ぶとコマンドライン(黒い画面)しか使えない

なお、もしUbuntu Server を選択する場合は、32bit版と64bit版で悩むと思いますが、64bit版を選択してください。バージョンはUbuntu20でも21でも構いません。Tensorflow2 のインストール要件が Ubuntu 16.04以降の64bit 版であることが条件となっているためです。
(いずれも2021年9月時点)

最後ストレージを選択のボタンを押し、PCに挿入したmicroSDカードを選択し WRITEボタンを押します。

書き込みには10分で終わるケースから5時間くらいかかるケースまであって、ネットワークの問題なのかサーバ側の問題なのか、はたまたSDカードの問題なのか正直よくわかりません。時間がかかることを覚悟して、夜寝る前など時間がかかっても良いタイミングで書き込み開始することをお勧めします。

Raspberry PiにTensorflow2 をインストールする

要点だけ先に言えば 「2021年9月時点ではpip だけでは入らないから少し面倒だよ」

必要なライブラリ類をインストール

Raspberry PiにUSBマウス・キーボード、ディスプレイなどを接続しWiFi接続などの初期設定を終えてからコマンドラインを開き、Ubuntuをアップデートして必要なパッケージをまとめてインストールします。

sudo apt update
sudo apt upgrade
sudo apt-get install python3-protobuf python3-termcolor python3-yaml python3-pydot python3-pyasn1 python3-pyasn1-modules python3-rsa python3-markdown python3-cachetools python3-future python3-dill python3-tqdm python3-pil python3-pip python3-wheel python3-setuptools python3-matplotlib python3-h5py python3-scipy python3-grpcio python3-requests-oauthlib python3-werkzeug

python3 のバージョンを確認します。

python3 -V

2021年9月時点では おそらく3.9.x が入っていると思います。

TensorFlowをインストール

Raspberry Piのブラウザで以下のページを開いて自分の環境にあった .sh ファイルを探します。
https://github.com/PINTO0309/Tensorflow-bin

ページを開くと以下のようなサフィックス(添え字)がいろいろついた.sh ファイルが多数並んでいます。

tensorflow-2.6.0-cp39-none-linux_aarch64_numpy1211_download.sh

cp39 の部分はpython のバージョンを指す。3.9.xならcp39ですし、3.8.x ならcp38 を選びます。
linux_aarch64 はこのまま。numpy のバージョンは何でもいいです。
自分の環境に合う sh ファイルをクリックしてページを開いてください。以下のような画面が表示されます。

テキストエディタを開いて、上記の赤枠の中のコードをコピー&ペーストしtemp.sh などと名前を付けて適当な場所(/home/ubuntu/ の下など)に保存します。(上のページでRawボタンを押すとコードだけ表示されるのでコピペしやすくなります)

そのフォルダの中で以下のようにすると、インストールに必要なファイルがダウンロードされます。

sudo bash temp.sh  

tensorflow-2.6.0-cp39-none-linux_aarch64.whl のような名前のファイルが落ちてくると思います。これをpip でインストールします。

sudo pip3 install tensorflow-2.6.0-cp39-none-linux_aarch64.whl

少し時間がかかりますが、Successfullyと出ればOKです。

AIがWeb会議・ウェビナーを超軽量で録画するPCソフト

この記事の内容とは関係ありませんが、最後に少しだけ宣伝をさせてください。
テレビ会議やオンラインセミナーをメモ代わりに簡単に録画したいと思いませんか? オンライン会議を1時間わずか10MBで録画できる画期的なソフトがあるんです!

Summary Shots は、弊社 Tokyo Properties で開発したPCアプリケーションです。
文字通りメモ代わり・議事録代わりに会議を録画できます。生成される動画ファイルは非常に軽量なので、参加するオンライン会議を一生分録画することだってできてしまいます。

参加したZOOM会議で指摘された細かい話のニュアンスなど、覚えていなくて困ったことはありませんか? 「議事メモ見ても書いていない。困った・・」ということが一切なくなります。というか議事メモを作る必要が全くなくなります。

この記事を見に来る人はAI技術に興味があると思いますが、簡単に言えばAIがZOOM等のWeb会議で表示されている「スライド」を監視して、スライドが切り替わった時の静止画だけを元にmp4 の録画ファイルを生成するので、非常に軽量にオンライン会議を録画できるという仕組みです。

ZOOM、Teams、YouTube Live などどのような会議システムにも対応しています。もちろん、会議の相手には録画していることはバレません。

無料体験版もありますので、ぜひお試しください。

タイトルとURLをコピーしました