Google Coral Dev boardは、Googleが開発したSoM(System-on-Module)を搭載した小型のコンピュータボードです。
内容
Coral Dev board搭載のSoMの特徴
Coral Dev boardのSoMには、NXP社のiMX8MというSoCと、GoogleのAIアクセラレータGoogle Edge TPU (Tensor Processing Unit)が搭載されています。
iMX8Mには、1.3GHzで動作するARM Cortex-A53プロセッサ 4コアと、Cortex-M4コアが内蔵されています。Raspberry Pi 3 Model Bは、1.2GHzのCortex-A53が4コア搭載されているので、この点だけみるとRaspberry Pi 3 Model Bとほぼ同等の性能と考えられます。
加えて、Google Edge TPUの搭載により、CPUでAI処理を実行するのと比べて、少ないCPU負荷で高速にAI処理を実行することが可能となります。
さらに、SoM上にストレージとして8GbyteのeMMC、1GbyteのRAM、WifiやBluetoothも詰め込まれています。
ベースボードのインタフェース
SoMを搭載しているベースボード(Coral Dev board)には、Gigabit Ethernet、USB 3.0が1口、HDMI、3.5mmのオーディオジャック、40pinのGPIOピンヘッダー、micro SDカードスロット、24pinのMIPI CSIコネクタ(カメラコネクタ)、39pinのMIPI-DSIコネクタ(ディスプレイコネクタ)、電源用のUSB-Cコネクタ、OTG用のUSB-Cコネクタ、シリアルコンソール用のmicro USB、スピーカ接続用の4Pの端子台、それからブート切り替えのDIPスイッチとリセットスイッチが用意されています。
カメラインタフェースは、4レーンのMIPIで0.5mmピッチのコネクタであるため、専用のカメラを使用するのが無難です。
サポートしているOS
Googleから提供されているOSは、Mendel LinuxというDebianベースのOSです。軽量化されており、デフォルトではデスクトップGUIは起動できません。また、リモートログインも、事前に暗号鍵が共有されているホストからしか接続できません。
他の市販のSBCは、使いやすいようにGUIが立ち上がり、リモートログインもしやすいようにsshやVNCもすぐに起動できるようになっているのとは対照的です。
エッジデバイスとは
Mendel Linuxが軽量化されていることやリモートログイン時のセキュリティが厳しいのは、Google Coral Dev boardが、IoTの「エッジデバイス」であるというところに理由があるようです。
エッジデバイスとは、IoTの末端に位置して、センサーや入出力デバイスなどを備え、至る所に設置されていて、実世界や人間とのやりとりを担うデバイスです。この対極はクラウドであり、クラウドはエッジデバイスから収集した情報を蓄積、処理して、エッジデバイスに返す司令塔のような役割を担います。
末端のデバイスだから、汎用的なGUIシステムなどをそぎ落とした軽量化がなされたOSとなっており、また、クラウドとの連携の必要上、インターネットに常時つないだ状態のままで、なおかつ、セキュリティ管理者にメンテされるとも限らないような場所に設置される可能性もあるため、インターネットからのアクセスを制限するようセキュリティの強化がなされているようです。
学習結果を元にした推論処理に強み
Google Coral Dev boardは、TensorFlow Liteがサポートされており、Edge TPUを使うことでこの処理が高速化できます。
TensorFlowというのは、Googleが開発した機械学習のライブラリです。機械学習というのは、物事の関連性の例(サンプル)や判定結果などから、自動的に分類・評価付けの指標を獲得し、新たなインプットが与えられたときに、それまでの例と類似したアウトプットが出せるようにプログラムの動作が変わっていくことです。簡単に言えば、人間が経験や訓練を積む(学習する)ことで、新しい状況を適切に処理(推論)できるようになるのと似ています。
一般に、TensorFlowなどの機械学習ライブラリには、これら、学習の仕組みと、学習した結果を用いて推論する仕組み、の両方が含まれますが、TensorFlow Liteの場合は、与えられた学習結果から推論する仕組みのみが提供されます。より多くの計算リソースを必要とする学習処理はクラウドにまかせることで、エッジデバイスでは学習結果を元にしたすばやい対応が可能となります。
Coral Dev Boardを使うには
初期状態では、Coral Dev BoardにOSはインストールされていないため、ボード購入後はインストール作業が必要となります。
作業手順はGoogleのサイトに述べられていますが、他のSBCのようにOSイメージをまるごとストレージに書き込むといったものではなく、Android OSのように、fastbootやmdt (Androidのadbに相当するもの)といったツールを使う、独特の手順が必要です。
OSインストールに必要なもの
最低限、次の機材・環境が必要となります。Linuxマシンが必要となるので、少々ハードルが高いかもしれません。
- Coral Dev Board
- 電源5V3A、USB-Cタイプ(ケーブルはE-markedでもOK)
- Linuxマシン(MacかIntel PCが標準だが、ラズパイでやった人もいる)
- データ通信用Micro-USBケーブル
- データ通信用(OTG接続用)USB-Cケーブル
- インターネット接続環境(有線or無線)
OSインストール後に必要なもの
最低限必要なものは次の通りです。
- Coral Dev Board
- 電源5V3A、USB-Cタイプ(ケーブルはE-markedでもOK)
- PC (リモートログインでTerminal Emulatorを使うためのもの、Windowsでもラズパイでも可)
また、以下は必要に応じて用意するとよいでしょう。
- データ通信用Micro-USBケーブル(USBシリアル接続でTerminal Emulatorを使う場合)
- HDMIケーブルおよびディスプレイ (画像表示されるデモ等実行する場合)
- 専用カメラ (カメラを使用するデモ等を実行する場合)
OSにGUI環境はないため、HDMIディスプレイの有無は、操作性に大きな影響は与えませんが、デモ実行時に画像表示させるにはHDMIディスプレイが必要となります。
micro SDカードは、DIPスイッチを変更することでOS起動用に使うこともできるようです。
まとめ
Google Coral Dev Boardは、まだ情報が少なく、他のSBCと比べて勝手が違うため、設定方法も簡単には流用できません。その分、Linuxやセキュリティのプリミティブな部分を扱えるようでないと、デモを実行する以上のことはできないかもしれません。
Google Coral Dev Boardは、誰でも使える低価格SBCとは別物で、本格的なエッジデバイスとして使える産業用ボードと考えたほうがよいかもしれません。