Coral EdgeTPUの最近のブログ記事

Coral Edge TPU Image Classification C++

Coral Edge TPU Image Classification C++

Google-coral/tflite examples に image classification が出ていたので、試してみました。
google-coral/tflite/cpp/examples/classification

おんちゃんは、これを 初めに、Ubuntu Mate 22.04 PC で、Bazel を使ってビルドしてみました。
その後、Jetson Nano 2G Armbian Jammy(Ubuntu 22.04) でも、動かしてみます。

Jetson Nano 2G Armbian Jammy(Aaarh64) 向けの C++プログラム を Ubuntu 22.04 PC 上でクロスビルドするには、
Ubuntu 22.04 PC 上 で、先に Tensorflow Lite の静的ライブラリーをクロスビルドします。

ARM64 ボード用の TensorFlow Lite を構築する の、"Bazel を使用した ARM64 のクロスコンパイル" を参考に、作成します。

その後に、TensorFlow Lite、Coral Edge TPU を使った、C++ プログラムを、Ubuntu 22.04 PC で、Bazel を使って、aarch64 向けの Cross Compile を行います。
このときに、先に作った、 TensorFlow Lite の静的ライブラリーをリンクして、aarch64 向けの実行ファイルを作成します。コッホ!!
PC版の Tensorflow Lite 静的ライブラリー も同じように作成してけば、
C++ プログラの作成が、同じ手順で、x86_linux 版と、aarch64_linux 版ができます。

1. Ubuntu 22.04 PC でのビルド。
1.1 Bazel のインストール(フルバージョン版) をします。
Ubuntu への Bazel のインストール
注) bazel-6.4.0 をインストールしてください。
最近、bazel-7.0.0 に上がったみたいですが、こちらは、NG です

QR Code Scanner with TensorFlow Lite

QR Code Scanner with TensorFlow Lite と言うのがあったので、試してみる。

正確には、Android 版だが、
Android QR Code Detection with TensorFlow Lite

modelの作成は、下記、model_maker を参考にしているみたい。
Object Detection with TensorFlow Lite Model Maker

最終的には、Raspi 3b+ で試してみようと思います。
注) Raspi 3b+ に、Coral USB TPU を使っても効果は無いみたい。もっとパワーが必要じゃ。

Raspi TensorFlow Lite Object detection は、
examples/lite/examples/object_detection /raspberry_pi
を参考にします。

1. 開発環境
開発は、PC 上で行います。
PC Ubuntu Mate 22.04
Intel Core i-5 4570 3.2GHz x 4 with 12G Memory
Python 3.9
tflite-model-maker 0.4.2

1.1 Python3.9 を別途インストールします。
Python の Dual インストールは、下記を参照しました。

Install Python 3.9 or 3.8 on Ubuntu 22.04 LTS Jammy JellyFish

Coral Edge TPU semantic_segmentation

Coral Edge TPU semantic_segmentation を試してみました。

https://github.com/google-coral/pycoral/blob/master/examples/semantic_segmentation.py

テスト環境
Windows10
Python3.6
Tensorflow 1.15.0 GPU
tflite-runtime 2.5.0
( >pip install --extra-index-url https://google-coral.github.io/py-repo/ pycoral )
Coral TPU USB
USB カメラ
MSYS2 (shell の実行時のみ使用します。)

git clone で、ダウンロードして、使います。
https://coral.ai/docs/accelerator/get-started/#pycoral-on-mac-win を参考にします。
> mkdir coral && cd coral
> git clone https://github.com/google-coral/pycoral.git
> cd pycoral
> bash examples/install_requirements.sh semantic_segmentation.py

起動方法は、examples\semantic_segmentation.py の上部に記述があります。

注) coral\pycoral\pycoral は、 coral\pycoral\pycoralx にリネームします。


 オリジナルだと、つまらないので、USB Camera で取り込んで表示できるように改造してみました。

Edge TPU - Tiny YOLO v3

Edge TPU - Tiny YOLO v3 を試す。

github に、Edge TPU - Tiny YOLO v3 が公開されていたので、試してみました。

guichristmann/edge-tpu-tiny-yolo

テスト環境
Windows10
Python3.6
Tensorflow 1.15.0 GPU
tflite-runtime 2.5.0
( >pip install --extra-index-url https://google-coral.github.io/py-repo/ pycoral )
Coral TPU USB
USB カメラ

git clone で、ダウンロードして、使います。

 オリジナルだと、Windows10 でそのままでは動作しないので、一部手直しが必要です。
また、USB カメラで、OpenCV で取り込んだ、bgr 画像をそのまま縮小して、使っているので、
rgb へ変換をすると、検索の正解率が改善されるのと、

 utils.py の featuresToBoxes に元々バグがあって、縦長の画像には対応していないのと、
この中で、元画像サイズへの拡大処理が組み込まれているのが、不自然なので、改造してみました。

Coral Edge TPU USB のサンプルの Object Detection が公開されていたので、 試してみました。の #4 です。

今回は、気になった点の改善を行ってみました。

https://github.com/google-coral/examples-camera

テスト環境
Windows10
Python3.6
Tensorflow 1.15.0 GPU
USB カメラ

 試したのは、上記プログラムの、examples-camera/opencv/ です。

最近、guichristmann/edge-tpu-tiny-yolo を試してみて、再度、こちらの Coral Edge TPU USB のサンプルの Object Detecton を試す。
を動かしてみると、微妙に検出ボックスが大きい気がしました。

プログラムを調べてみると、 guichristmann/edge-tpu-tiny-yolo と、examples-camera/opencv/ では、画像の取り込みと、
検出ボックスの変換に違いがありました。

Coral Edge TPU USB のサンプルの Object Detection が公開されていたので、
試してみました。の#3 です。

https://github.com/google-coral/examples-camera

テスト環境
Raspberry Pi 3B+
Coral Edge TPU USB
Python3.7
Tensorflow 1.15.0
Raspi カメラ

前回のプログラムでは、Raspi で実行させると、発声のタイミングで、Stream バッファに画像が貯まるので、声が出た後の画像が、
実際のカメラの前の映像と一致しない問題が出ました。

OpenCV でのStream バッファのクリア自体は用意されていなくて、代替手段として、cap.read() または、 cap.grab() を5回繰り返して、
受け捨てする方法が、Web に出ていたので試してみました。が、

結論としては、余り良くないので、 picamera stream to OpenCV が出来ないか、Webで検索していたら、
丁度良いサンプルが在ったので、それを取り入れてみました。

Accessing the Raspberry Pi Camera with OpenCV and Python

結局は、下記、が元ネタみたいです。
色々な使い方が、出来るようです。

https://picamera.readthedocs.io/en/release-1.13/recipes2.html

Coral Edge TPU USB のサンプルの Object Detection が公開されていたので、
試してみました。の#2 です。

https://github.com/google-coral/examples-camera

テスト環境
Windows10
Python3.6
Tensorflow 1.15.0 GPU
USB カメラ

coco学習データのまま、Windows10 の USBカメラで自分を映していたら、コーヒーカップにも反応するので、
少し応用を考えてみました。

コーヒーカップを検出で来たら、スピーカに "コップ" と出せないかとGoogle で、Pythonでの音の作成を探していたら、

PythonでWindows 10の音声合成を使用する

が出ていたので、早速取り入れて、 wav ファアイルを作成して試してみました。

Coral Edge TPU USB のサンプルの Object Detection が公開されていたので、
試してみました。

https://github.com/google-coral/examples-camera

テスト環境
Windows10
Python3.6
Tensorflow 1.15.0 GPU
USB カメラ

 試したのは、上記プログラムの、opencv です。
上記ページと、opencv の README.md に従って、必要な環境を揃えます。
注) サンプルは、Linux環境なので、適宜 Windows10環境に合わせて用意します。

Keras CNN Sound Classify #7

Keras CNN で 音の分類 #7

ディープラーニングで音声分類 のサンプルが出ていたので、試してみましたの #7です。
前回の #6 に続いて、Inception V3 学習済モデルを Tensorflow Lite に変換して、Coral Edge TPU USB で使えるように、
Quantization 化を試してみました。

開発環境
OS: Windwos10
GPU: GeForece GTX 1070 8GB
Anaconda
Python3.6
TensorFlow 1.15.0 GPU
Keras 2.3.1

注1) 今回は、TensorFlow 1.15.0 を使いました。
TensorFlow 1.14.0 では、Tensoflow Liteへの変換が上手く行きませんでした。
また、こちらの方が、Tensorflow Lite の実行速度が速いきがします。
注2)  Keras は、オリジナルを使っています。
tensorflow.python.keras を敢えて使っていません。

参考は、下記ページをさせて頂きました。
nb.oの日記:Edge TPUで独自モデルを作る(その2)
https://coral.ai/docs/edgetpu/models-intro/#quantization
   → Retrain a classification model using post-training quantization (for TensorFlow 1 and 2)

このアーカイブについて

このページには、過去に書かれたブログ記事のうちCoral EdgeTPUカテゴリに属しているものが含まれています。

前のカテゴリはCUDA Programmingです。

次のカテゴリはESP32 esp-idfです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ