LoginSignup
1
2

More than 3 years have passed since last update.

Coral Edge TPUデモへのRaspberry Piサプリメント

Posted at

最近、Coral USB Acceleratorを試しました。 ソフトウェアとドキュメントは一般的に優れています。 Pythonライブラリには、Piカメラを使用して連続的にキャプチャし、リアルタイムの分類のためにデータをEdge TPUに渡す方法を示すデモも含まれています。

ただし、Raspberry Piとの統合という点では、まだ埋めるべきギャップがあります。 まず、オブジェクトの位置を示すためにプレビューに長方形が描かれるオブジェクト検出の例を示します。 第二に、Pi Cameraのフレーム幅は32の倍数に制限され、高さは16の倍数に制限されているため、一部のモデルの必要な入力サイズと一致しません。 たとえば、Inception V3で必要な299x299にキャプチャのサイズを変更するようにPi Cameraに指示すると、実際には320x304に切り上げられます。 キャプチャした画像は、Edge TPUに渡す前にトリミングする必要があります。

ここでは、いくつかの追加デモを提供することにより、これらのギャップを埋めました:

1.classify_capture.py:これは元の公式デモであり、参照用に保持されています。 モデル入力サイズをPi Cameraの対応フレームサイズと比較しません。 入力224x224のモデルは正常に機能します(224は32と16の倍数であるため)が、他の入力サイズでは機能しない場合があります。

2.classify_capture_crop.py:これは、Pi Cameraの対応フレームサイズに対してモデル入力サイズを先制的にチェックします。 一致しない場合、フレームサイズは拡大されます。 キャプチャされた画像は、必要に応じてトリミングされてから、Edge TPUに渡されます。 すべてのモデル入力サイズで機能するはずです。

3.detect_capture_crop.py:これはオブジェクト検出を行います。 オーバーレイを使用して、プレビューに長方形を配置します。 また、フレームサイズを拡大し、必要に応じてキャプチャをトリミングします。 しつこいことが1つあります。オーバーレイが更新されるたびに、Pi Cameraはこのエラーを吐き出します:

picamera.exc.PiCameraMMALError: no buffers available: Resource temporarily unavailable; try again later

解決策が見つかりませんでした...

... AIY Vision Kitのソースコードに出会うまで、その一部を以下に組み込みました。

4.detect_capture_crop_with_annotator.py:上記のようにオブジェクト検出を行いますが、オーバーレイロジックはAnnotatorクラスに分離されているため、コードが少し簡潔になります。 Annotatorクラスは、AIY Vision Kitプロジェクトから取得されます。 picameraパッケージにパッチを適用して、上記のエラーがこぼれないようにします。 Annotatorクラスを使用するようにPYTHONPATHを設定することを忘れないでください。

(github作者:@nickoala (https://github.com/nickoala/edgetpu-on-pi))


微信图片_20190718135810.jpg

Coral の開発ボードは、Edge TPU を搭載したリムーバブル System-On-Module(SOM)を含むシングルボード Linux コンピュータです。そのため、アプリケーションのプロトタイピングを行ってから、独自の端末に SOM を含めて生産用にスケールアップすることができます。

Coral USB アクセラレータは、Edge TPU を対応する Linux コンピュータに接続する USB アクセサリです。Raspberry Pi Zero にちょうど合うように設計されています。

こういった新しいアプリケーションは、すべて高パフォーマンス推論を利用します。これを実現できる唯一の方法が Edge TPU によるハードウェア アクセラレーションです。しかし、実際どのくらい速くなるのでしょうか。

いくつかのバージョンの MobileNet を使った内部ベンチマークによると、Edge TPU による推論は、CPU による推論よりも 70 倍から 100 倍高速です。MobileNet は、エッジ デバイスでイメージ分類を行う際によく使われる堅実なモデル アーキテクチャです。

顔検出用の MobileNet では、最大で毎秒 70 フレームから 100 フレームで推論を行えます。食べものの検知では、毎秒 200 フレームを実現できました。これなら、動画のリアルタイム推論にも十分対応できます。複数のモデルを同時に実行しても問題ありません。

微信图片_20190724172906.jpg

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2