Google Coral Edge TPU Hardware & AIY Kits

store: https://store.gravitylink.com/global

Google Coral Dev Boardでの顔認識

人工知能は通常、ハイパワーコンピューティングとビッグデータに関連付けられていますが、組み込みアプリケーション向けのAIシステムの開発に対するニーズが高まっています。 Embecosmは、組み込みデバイスに特化したことで常に高く評価されています。 したがって、この専門知識を成長するAIの分野に適用することは、両方のコミュニティにとって非常に有益であると考えています。

1_tZ8mh0ZbgMWmhW5HBnEmUw.png

 プロジェクト

 概要

このプロジェクトでは、AIと組み込みシステムの組み合わせを探索することを目標に、GoogleのEdge TPUに顔認識を実装することにしました。

unnamed-_3_.jpg

 GoogleのEdge TPU

最近、Googleが開発ボードをリリースしたことを発見しました。その主な目的は、デバイス上の機械学習モデルのプロトタイプを作成することです。 このボードは、高速機械学習の推論が可能です。そのコプロセッサーは、低エネルギー(1 TOPで0.5ワット、1ワットあたり2 TOPS)で、1秒あたり4兆回の操作(TOPS)を実行できます。

上司と私、ルイス・レビルはすぐに興奮し、幸運にも十分でした。エンベコスムは私たちに取締役会を与えることに同意しました。 次に、ボードをどうするかを決める必要がありました。

 顔認識

Edge TPUのハードウェア設計は、リカレントニューラルネットワーク(RNN)やLong Short-Term Memoryモデル(LSTM)とは対照的に、畳み込みニューラルネットワーク(CNN)などのディープフィードフォワードニューラルネットワークを高速化するために開発されました。 したがって、コンピュータービジョンは探求するのに理想的なトピックのように思えました。

もともと、私たちは音を扱うという考えを熟考しました。 ただし、上記の理由により、サウンドを処理するモデルは、通常RNNやLSTMなどの時間ベースのアーキテクチャに依存しているため、通常Edge TPUの機能から外れています。

顔認識を選択した理由は、Edge TPUのドキュメントを確認した後、Googleが分類およびオブジェクト検出モデルのデモを提供しているのに、顔認識デモが不足していることに気づいたためです。 顔認識は画像分類とオブジェクト検出に密接に関連しているため、合理的な次のステップのように思えました。

 ボードのセットアップ

このブログ投稿の残りの部分では、Coralボードの使用を開始するために行ったプロセスについて説明します。 ボードをセットアップするには、以下で説明するGoogle Coral Webサイトのチュートリアルに従ってください。 詳細な手順については、こちらをご覧ください: Get Started | Coral (https://coral.withgoogle.com/docs/dev-board/get-started/)。

 必要条件

このボードは、LinuxマシンとMacマシンの両方から使用できます。 以下のコマンドはすべてMacで実行されたため、Linuxで実行する必要がある場合は変更する必要があります。 USB-A-USB-microBケーブル、USB-C-USB-Cケーブル、2-3A(5V)USB Type-C電源を使用しました。 さらに、画面などのシリアルコンソールプログラム(幸いなことにデフォルトでMacで使用可能)と最新のfastbootツールをインストールする必要がありました。

微信截图_20190710150259.png

 ボードを開始する

ボードをフラッシュできるようにするには、シリアルコンソールを介して開発ボードと通信する必要があるため、udevドライバーをインストールする必要がありました。 次に、USB-microBケーブルを接続して、コンピューターをシリアルコンソールに接続する必要がありました。 LEDが点滅し始め、次のステップである/dev/cu.SLAB_USBtoUART 115200(Mac)を実行しました。

最後のステップは、ボードの電源を入れることでした。 2-3A電源ケーブルを「PWR」というラベルの付いたUSB-Cポートに差し込み、次にUSB-Cケーブルを「OTG」というラベルの付いたUSB-Cデータポートに接続しました。

 起動中

ボードが接続されたので、システムイメージをダウンロードしてフラッシュする必要がありました。 それを行うために、curl -O https://dl.google.com/coral/mendel/enterprise/mendel-enterprise-chef-13.zip を実行してイメージをダウンロードし、ファイルを解凍して、内部からbash flash.shを実行しました mendel-enterprise-chef-13フォルダー。

このスクリプトが完了すると、システムが再起動し、コンソールがログインを促します。 デフォルトのログイン名とパスワードは、どちらもmendelです。

 インターネットに接続する

ボードはワイヤレス接続をサポートしているため、インターネットに接続するのはそれほど難しくありませんでした。コマンドnmcli dev wifi connect password ifname wlan0を実行し、nmcli connection showを実行して機能することを確認しました。

 Mendel Software

最新のソフトウェアを使用できるようにするために、コマンドでパッケージを更新しました。

echo“ deb https://packages.cloud.google.com/apt coral-edgetpu-stable main” | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

その後、sudo apt-get updateに続いてsudo apt-get dist-upgradeを実行します。

sshを介してボードに接続できるようにするために、Mendel Development Tool(MDT)もインストールしました。ホストコンピューターでpip3 install —user mendel-development-toolを実行した後、microB-USBをシリアルコンソールから切断し、mdtシェルを使用してUSB-CケーブルでMDTを使用してシェルを開くことができました。これで、MDTはSSHの公開/秘密キーペアを生成し、これがボードのauthorized_keysファイルにプッシュされたため、SSHによる認証が可能になりました。

 デモアプリケーションの実行

最後に、デモモデルを実行してテストできます。 HDMIポートを介してモニターをボードに接続し、edgetpu_demo —deviceコマンドを使用してデモを実行しました。 その結果、モニターに表示された車の記録が得られ、MobileNetモデルが各車を検出するためにリアルタイムで実行されました。(作者:Pietra Ferreira Tadeu Madio )