標準的なLinuxコンピューター ( Raspberry Pi シングルボードコンピューター (SBC) など) に機械学習機能を追加したい場合は、 Coral Edge TPU USBアクセラレーターが最適です。
このデバイスは30 x 65 x 8 mmと小型ですが、Edge TPUコプロセッサは1秒あたり4兆回の演算が可能です。USB 3.1インターフェイス (または速度が低下した2.0) を使用すると、機械学習 (ML) タスクをデバイスにオフロードして、ビジョン モデルを高速で実行できるようになります。さらに詳しく調べたい場合は、 システム パフォーマンス ベンチマークを参照してください。
これらの仕様は印象的ですが、パフォーマンスはどの程度でしょうか?この小さなデバイスをテストするために、次の2つのシステムで使用してみました。
- Ubuntu Linuxがインストールされた10年前のLenovo T60
Google Coral & Ubuntu: Linuxテスト
私は普段はWindowsユーザーですが、Linuxを必要とする実験 (Coral Devボードへのファームウェアのフラッシュ の成功 を含む) のためにLenovo T60 ThinkPadを常に用意しています。このデバイスは2006年頃に製造されたもので、Windowsが読み込まれなくなった後、数年間Ubuntuで操作してきました。
このマシンは古いものですが、 Googleの入門ページによれば、「USBポートを備えたLinuxコンピュータ」として適格です。数世代にわたるOSアップグレードの後、適切なファームウェアをロードできるようになりました。アクセラレータと連携しても問題はないだろうと考えました。
残念なことに、ステップ1のテキスト入力を完了した後、コンピューターから次のメッセージが表示されました (赤い文字で)。
お使いのプラットフォームはサポートされていません
「任意のLinuxコンピュータ」の下の箇条書きを読んでみると、ARMv8命令セットを備えたx86-64またはARM32/64のシステム アーキテクチャも必要であることに気付きました。少し調べてみると、このシステムには32ビット プロセッサが搭載されていることがわかりました。したがって、「どのLinuxコンピュータでも」というのは必ずしも当てはまりません。古いマシンで問題が発生している場合は、これが原因である可能性があります。
幸いなことに、Coral Edge TPU USBアクセラレータはRaspberry Piでも動作し、私が持っている Pi 3 Model B を公式にサポートしています。便利なことに、私のマシンには、公式のRaspberry Pi OSであるRaspbianがSDカードにインストールされてすでにセットアップされていました。
Raspberry PiとGoogle Coral: Raspberry Pi 3モデルBテスト
Raspberry Piの便利な点の1つは、開始点がわかっていることです。OSを新規インストールしたPiをお持ちの場合は、指示に従うだけです。何か問題が発生した場合、SDカードをフラッシュして更新するだけで、簡単にゼロに戻すことができます。
私はPiの経験から、Googleの「Getting Started」の手順が同じように機能すると確信していました。必要なテキストを入力すると、ソフトウェアは問題なくダウンロードされ、インストールされました。1つの「落とし穴」は、ステップ1の「wget」で始まるコマンドがスクロール バーで拡張され、同じ行の -Oが数字ではなく大文字であることです。
次に、アクセラレータを接続し、モデルをダウンロードして実行し、オウム (より正確には、Ara MacaoまたはScarlet Compaw) を識別します。プログラムは0.761719というスコアでこれを達成したので、アクセラレータは役割を果たしていました。しかし、メーカーがテスト用にモデルを提供しているというのは、少し 都合が良すぎるように思えます。この設定に満足できなかったので、鳥の画像をさらにいくつかダウンロードして、パフォーマンスを確認しました。
Google Coral画像識別
私は上記の鳥の写真をパブリック ドメイン リポジトリからダウンロードし、アカコンゴウインコと同じ手順でそれぞれを分析しました。アクセラレータは、元の例よりも高い信頼スコアで各例を選択することができました。
これには驚きましたが、私が選んだ写真は400x726 parrot.jpg画像よりも解像度が高かったです。興味深いのは、これらの鳥がさまざまなポーズやグループで現れたことです。私は、ペリカンが頭を体に近づけて休んでいる「bird4.jpeg」画像に特に懐疑的でした。驚くべきことに、アクセラレータはこれを「Pelecanus occidentalis (カッショクペリカン)」と識別し、スコアは0.898438でした。
私は鳥類学者ではありませんが、Acceleratorは、Web検索に基づいて、正しい結果を提供しているようです。識別ルーチンがサンプルのオウムの画像の結果を返すまでに約4秒かかりました。一部の画像はオウムの例の400 x 726ピクセルよりもはるかに大きかったのですが、それでもルーチンの実行には毎回5秒もかかりませんでした。ランダムではありますが、私がこれまでにテストした画像はすべて 実際の 鳥を撮影したものでした。たまたま、私はピントの合わない自然写真を撮るのが得意なので、アクセラレータに自分の写真を何枚か入れてみることにしました。1枚は白いトキの群れをズームアウトした写真で、もう1枚は小さな鹿の群れです。両方のショットを窓とスクリーンを通して撮影しました。何が出てきたか見てみましょう:
鹿の画像については、アクセラレータはそれを「カナダガン」または「カナダヅル」のいずれかとして識別しましたが、それぞれ (0.273438と0.101562のスコアは非常に低かったです。このようなシステムを使用する場合、低いスコアを解釈する必要があるため、このスコアは本質的に「誰が知っているか」を示し、推測することになります。鹿の長い首はガチョウの同じ特徴を暗示しているかもしれないので、おそらく正しい方向に向かっているのでしょう。
しかし驚くべきことに、アクセラレータは0.382812というスコアではあるものの、2番目の画像を「White Ibis」として識別することができました。また、スコアが低い他の2つの代替案も提案したので、 それ 確かにそうだが、それが何で機能したかを考えると、うまくいったと言える。
Google Coral Edge TPU速度の考慮事項
最後の2枚の写真の識別には、他の画像よりも少し長く (5 ~ 6秒) かかりました。この時間の増加は、ダウンロードされた画像が500 KB未満、オウムのデモ画像が92.6 KBであったのに対し、これらのファイルはそれぞれ9.6 MBと6.8 MBであったためと考えられます。
ここで注目すべき点は、Raspberry Pi 3BはUSB 2.0ポートを使用するのに対し、CoralはUSB 3.1仕様を使用してデータ転送が可能なことです 。サンプルドキュメントによると、「USB 2.0ポートに接続すると、推論の速度が大幅に低下します。」この接続が操作の主なボトルネックを引き起こした可能性があります。しかし、再インストール後に「最大動作周波数」でScarlet Macawデモを再実行したところ、ID時間はまだ約4秒でした。
より高速な速度を実現するには、 USB 3.0機能を備えた新しいRaspberry Pi 4を使用できる可能性があります。ただし、この記事の執筆時点ではPi 4は公式にはサポートされていないため、この実験では使用しませんでした。
実際の鳥を識別することに関しては、私はこの装置に非常に感銘を受けました。植物や昆虫などのオブジェクトの他のモデル セットを探索することもできます。Google ResearchのMike Tyka氏による「Teachable Machine」の例によれば、デバイスをトレーニングして新しいアイテムを認識させることもできます。
プロジェクトに画像識別機能を追加したい場合は、Coral Edge TPU USBアクセラレータが適切なソリューションです。