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) でも、動かしてみます。

1. Ubuntu 22.04 PC でのビルド。
Bazel のインストール(フルバージョン版) をします。
Ubuntu への Bazel のインストール

注1)結論を先に言えば、PC 上で、arch64 版をクロスビルドして、Jeton Nano 2G Armibian Jammy で動かしてみましたが、Segmenation falut で、こけました。
なので、対策方法が、判るまで、Jeton Nano 2G Armibian Jammy でも、Bazel をインストールして、別々にビルドすることにしました。
注2) Jeton Nano Armibian Jammy では、同じ方法では、できません。
この場合は、最初から入っている、 bazel-bootstrup パッケージを使ってみます。

Jetson Nano 2G Armbian 22.04(Jammy) Cuda Installing.

Jetson Nano 2G Armbian 22.04(Jammy) Cuda Installing について調べてみました。

Installing CUDA on Nvidia Jetson Nano の記事を見かけたので、出来るのか考えてみました。

Jetson Nano 2G Armbian 22.04(Jammy) のインストールは、 jetson Nano 2G が、Armbian で動くみたい。 を参照してください。

To install CUDA toolkit on Jetson Nano (or any other Jetson board), there are two main methods:
  1.Installing through JetPack SDK
  2.Installing from Debian (Ubuntu) repositories
  3.Installing from CUDA repositories

の 2.Installing from Debian (Ubuntu) repositories が出来るのか?

Installing from Debian repositories
Before installing CUDA on your Jetson Nano, make sure that you have completed the pre-install
requisites found in this guide to ensure a smooth and hassle-free installation.
の this guide ページには、

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

高知県土佐市の防災、緊急放送の迷惑さ。

高知県土佐市の防災、緊急放送の迷惑さ。

最近、土佐市の防災、緊急放送(スピーカーでの放送)が、頻繁になされるようになって、
非常に迷惑しています。

正確には、こちら の、 市町村防災行政無線(屋外スピーカー) の事です。

以前、よく流されたのは、
消防署の火災のサイレンの後の、説明で、火災発生場所や、 火災内容の連絡。
警察所、消防署の、行方不明の老人の捜索への協力依頼。
などが、時々流されるだけでした。
その時は、おんちゃんも良く、耳を澄まして聴いていた記憶があります。

しかし、最近は、回数も非常に増えて、一般市民にはさほど必要に感じない、緊急性もない事が、
防災、緊急放送(スピーカーでの放送) から流されるようになって、困っています。
また音量も以前に比べて、大きくなっているように感じます。

幾つか例にあ上げると。
仁淀川河口付近の一斉清掃への参加の通報。
小学校で、学生に朝の挨拶を推奨しているので、住民も朝、夕、子供とすれ違った時は、挨拶する様にとの通報。
波介川の一斉清掃。
消防署の仁淀川での訓練。
農協のハウス野菜の受け入れ開始。
四電を名乗った会社のセールス。
熱中症の危険予報(毎日、毎朝 9:00)
消防署の出初式。

TensorFlow 2.10.0 RNN - LSTM による、Speech Recognition #2

TensorFlow 2.10.0 RNN - LSTM による、Speech Recognition #2

TensorFlow 2.10.0 RNN - LSTM による、Speech Recognition の続きです。

Introduction to speech recognition with TensorFlow が、性能が良かったので
今回は、これをベースに、日本語で試してみます。

日本語の為のデータの準備は、下記を参考にさせて貰いました。
TensorFlow の transformer を使った音声認識(ASR)のプログラムを改修して日本語学習させてみました。

環境:
Windows11
Python 3.10.6
tensorflow-gpu 2.10.0
GTX-1070
cuda toolkit 11.2
cuDNN SDK 8.1.0

Keras ASR with CTC を試す。

Keras ASR with CTC を試してみた。
Automatic Speech Recognition using CTC

当初は、Automatic Speech Recognition with Transformer を試してみたけれど、
余り、loss、val_loss が改善しないので、こちらにしてみました。
注) 但し、こちらの方が、学習させるのは、軽いみたいなので、もう少し性能が良ければ...

環境:
Windows11
Python 3.10.6
tensorflow-gpu 2.10.0
GTX-1070
cuda toolkit 11.2
cuDNN SDK 8.1.0

注) GTX-1070 だと、1 epoch 20分程かかる。
GeForce RTX 2080 Ti GPU だと、5-6 分だとさ。

Tensorflow で、 MNIST を学び直し。

tensorflow 2.10 環境で、tensoflow MNIST を学び直していて、
MNIST データのダウンロードで困ったので、メモしておきました。

1.『TensorFlowで学ぶディープラーニング 中井悦司著』(マイナビ出版) を再度紐解いて、機械学習の基本を学び直ししようとしたら、
Tensorflow での記述だったので、tensorflow2 環境下でも出来るようにメモしました。

機械学習に関して、色々な書籍があるけど、この本が一番基本が判りやすいので、おんちゃんは、お勧めです。
Keras で書けば、超簡単ですが、中で、なにをしているのかよく判らないと感じる人には、お勧めです。
但し、難点が、サンプルコードが、Tensorflow である点です。但し、少し修正すれば、Tensorflow 2 でも同じように、動かせます。

keras.datasets.mnist が使えるようなので、こちらを使います。

環境
 Windows11
 tensorflow-gpu 2.10

Orange pi 5 Armbian で NPU を使って、yolo を試す。

Orange pi 5 Armbian で NPU を使って、yolo を試す。

Orange Pi5のNPUを使用してyolo(高速?)を動かしてみる(rknn-toolkit2) と言うのがあったので、これを参考に、NPU yolo を試してみた。

大元のクイックスタートの方が参考になるみたい。
github.com/rockchip-linux/rknn-toolkit2
Rockchip_Quick_Start_RKNN_Toolkit2_EN-1.5.0.pdf

1. 環境の構築。
Armbian 上に構築します。
 Python 3.10.6
 tensorflow 2.8.0 (最新は、2.12.0 )

1) python3 をインストール。
$ sudo apt install python3 python3-dev python3-pip

2) 必要、ライブラリーのインストール。
$ sudo apt-get install libxslt1-dev zlib1g zlib1g-dev libglib2.0-0 libsm6 \
libgl1-mesa-glx libprotobuf-dev gcc

3) virtualenv を用いて、Tensorflow2 環境を、Armibian 上に作ってみます。
$ pip3 install virtualenv ---user

4) kivy_env と言う仮想環境(名称は、なんでもOK) を作ります。
$ python3 -m virtualenv kivy_env
仮想環境を有効化
$ source ~/kivy_env/bin/activate

5) 仮想環境に、tensorflow をインストール。
(kivy_env) :$ python -m pip installl tensorflow==2.8.0

チェック。
(kivy_env) :$ python
>>> import tensorflow as tf
>>> print(tf.reduce_sum(tf.random.normal([1000,1000])))
tf.Tensor(-390.70236, shape=(), dtype=float32)
>>> exit()

TensorFlow 2.10.0 RNN - LSTM による、Speech Recognition

TensorFlow 2.10.0 RNN - LSTM による、Speech Recognition

RNN - LSTM による、Speech Recognition 例が有ったので、Windows11 TensorFlow-GPU 2.10.0 で試してみた。
Introduction to speech recognition with TensorFlow

GPU (GTX-1070) が入っているのが、Windows11 だったので、TensorFlow2 をバージョンアップして、 TensoFlow2-GPU 2.10.0 で試してみました。
当初、TensoFlow 2.12.0 の GPU 版を使うとしていましたが、Windows11 TensorFlow2 GPU 版は、2.10.0 が最後みたいな記述があったので、
こちらにしました。

環境:
Windows11
Python 3.10.6
tensorflow-gpu 2.10.0
GTX-1070
cuda toolkit 11.2
cuDNN SDK 8.1.0

Windows11で、最新の tensorflow gpu版は、どうやら仮想環境(wsl)下で、ubuntu 等を使って、gpu版を使うのが前提のようです。
最初から、ubuntu 等にすれば良いみたいだ。

train.py で、21 epoch 程学習させて、inferencModel.py で、テストしてみました。
下記が、inferencModel.py を、少しいじって、入力 文章(speach) と、それの、判定結果を出してみました。



>text: が、入力音の文章
>>>>>: が、それに対する、判定結果

結構、すごい。
でも、これは、日本語には、対応していないだろうね。

Android Kotlin TensorFlow Lite で、Audio classification を試す。

Ml Kit には、なかった、 tensoflow Lite / examples / Audio classification というのがあったので、試してみる。

Android スマホは、カメラ、マイクが入っていて、外で簡単に試せるから、PC、Raspy、Jetson Nano 等と比べて便利じゃ。
いろんなことが試せるぞね。

それは、さておき、此処で使われているモデルは、YAMNet model との事。
性能のほうが興味があります。
でも、中身は、MobileNet v1 みたいなので、以前散々試したものと大して変わらないのかも。
Sound データの、テンサーへの与え方が気になります。

以前試したのは、Sound Data を数秒貯めて、高速フーリエ変換して、2D データ (スペクトラムデータ) にして、
CNN(畳み込みニューラルネットワーク)で、Image Classification を行う手法だったけれども、
今回はどうなっているのだろうか?

Android Kotlin TensorFlow Lite で、Object Detection を試す。

TensorFlow Lite(Android)を使用してカスタム オブジェクト検出モデルを構築してデプロイする と言うのがあったので試してみました。

Android Kotlin でも、TensorFlow Lite が簡単に試せるみたいぞね。

CodeLab にしたがって、 starter に追加していけば、簡単にできたぞね。

"7. カスタム オブジェクト検出モデルをトレーニングする" で、自分でカスタムモデルも作って試せるみたいぞね。

おんちゃんには、 MLKit より、こちらの方の TensorFlow Lite を使うほうが、馴染みがあります。

Android Kotlin ML Kit を使用してバーコード スキャン

Google ML Kit のサンプルに、バーコード スキャン があったので、試してみました。
Android で、学習済Model を使って簡単に、機械学習の Object Detection が出来るみたい。
知らない間に、Android で此処までできるようになっていたとは、驚きじゃ!!

バーコード スキャン -> ML Kit を使用してバーコードをスキャンする(Android)

MLKit Samples の android/codescanner を試してみました。

1. ソースのダウンロード。
適当なディレクトリーで、
$ git clone https://github.com/googlesamples/mlkit.git
mlkit/android の下の、
codescanner と、internal ディレクトリーをそれぞれ、
~/AndroidStudioProjects/ 下へコピーします。

T100TA Ubuntu 20.04 Sound 設定

T100TA Ubuntu 20.04 Sound 設定

Asus T100TA に、 ubuntu 20.04 をインストールした後、しばらく、音が出なかったのだが、やっと出るようになった。
下記ページに記載がありました。
No sound on ASUS Transformer T100HA

ROS2 自作 Turtlebot3 による 草刈りロボット開発。#2

7. 屋外での Map II。
結局、今は、GPS(みちびき級) を使って、畑の外周の、各頂点でGPSデータを採取して、 それを、順に線分で結んで、
畑の図形に使う事にしました。

はーー、しかし面倒くさい、誰か替わりに、此処のシステムを作ってくれないじゃろうか?
システム構成のラフは、ノートに手書きで出来あがっています。誰か、これを実際に作ってくれないだろうか?
替わりに、もし実際に出来上がたっら、システムとして自由に販売もOKにするのだが!!
仕方がないので、自分で作っています。
いまは、 ESP32 bluetooth で、GPSデータが、PCで採取できるところまで出来ています。by nishi 2023.5.6

Gazebo ROS2 Humble で、My ワールドを追加する

Gazebo ROS2 Humbleで、My ワールドを追加する。

下記、ページを参考に、自分で使いたいワールドを追加する方法を考えてみる。

ROS2 Gazebo に world を追加できるか。
1) useful-world-files-for-gazebo-and-ros-2-simulations
2) CustomRobots / car_junction
3) automaticaddison / two_wheeled_robot
4) how-to-load-a-urdf-file-into-rviz-ros-2

jetson Nano 2G が、Armbian で動くみたい。

jetson Nano 2G が、Armbian で動くみたい。

armbian に、 Jetson Nano 用 ubuntu 20.04 、 22.04 (Jammy) があるみたい。
armbian jetson nano

/archive/jetson-nano/archive/ から、u-boot 版をインストールします。

おんちゃんは、Armbian_22.02.1_Jetson-nano-jammy_lgacy_4.9.201_xfce_desktop.img.xz を使いました。by nishi 2023.11.26
最新版は、EFI パーティションが入っているので、その版は、起動できません。
EFI パーティション が、無い img.xz を使います。

Orange pi 5 で Armbian を試してみた。

Orange pi 5 で Armbian を試してみた。

Orange pi 5 Ubuntu 22.04 だと、linux header ファイルが見当たらないので、不便。
なので、armbian orangepi 5 を試してみました。

Desktop 版を、インストールしました。
Desktop GUIは、Ubuntu 22.04 と同じ、Gnome みたい。
だけど、なぜか、軽そうに感じるのは、おんちゃんの錯覚か。

初期設定は、こちらが参考になりました。
Armbianの初期設定 令和5年(2023年)4月版

1. armbian-config が、orangepi-config と同じように使えます。
$ sudo armbian-config

2. WiFi ドングルを試す。
1) tp-link Archer T3U Nano (rtl88x2bu) が、なにもせずに繋がった。
なんじゃ、こりゃ!!
Orange Pi 5 Ubuntu 22.04 の苦労は、一体なんだたんだろうか!!

2) tp-link TL-WN725N (rtl8188eus) は、相変わらず、LEDランプは点かない。
USB に挿すと、エラー吐いている(dmesg で確認できる)。

Orange pi 5 で Ubuntu 22.04 を試してみた。

Orange pi 5 で、 Ubuntu 22.04 Gnome Desktopを試してみた。

結論を先に言と、ROS2 向けなら、NG です。ROS2 向けなら、Orange pi 5 で Armbian がおすすめぞね!!

1. Orange Pi 5 を手に入れた。by nishi 2023.3.22
今日、Orange Pi 5 (8G) が、届いたので、早速、 Ubuntu 22.04 Gnome Desktop を、Micro SD カードに書き込んで、起動してみた。
なんとも、速い。Jetson Nano 2G とは、比較も出来ない。

2. ユーザを追加して、GUI ログインしようとしたら、失敗しました。
色々調べて、みて、どうやら、 /etc/group に、登録したユーザID が、必要なグループに入っていないのが、原因のようです。

$ cd /etc
$ grep orangepi group
ここで、orangepi が登録されているグループに、同じ様に登録されていないのが問題でした。

取り敢えず、 video、 input には、自分で追加しました。

$ sudo usermod -aG video nishi
$ sudo usermod -aG input nishi
さらに、tty、dialout も追加します。Micro-ROS Agent とのSerial 通信に必要みたい。
$ sudo usermod -aG tty nishi
$ sudo usermod -aG dialout nishi

ROS2 自作 Turtlebot3 による 草刈りロボット開発。

ROS2 自作 Turtlebot3 による 草刈りロボット開発。

ROS2 自作 Turtlebot3(foxbot_core3_r2) rtabmap_ros も一応完成したので、
草刈りロボットとしての、屋外での走行にチャレンジします。

1. 屋外でのMap
屋外での走行で、 そもそも、Static Map 作成をどうするのか?
map 自体は、 画像ソフト(Gimp等) で作成できるとのこと。
Creating map with paint(or any other image editor)
Youtube
ROS Map Editor と言うのもある。
こちらが簡単。git clone して、python3 で、そのまま起動できる。
例) ~/map4.pgm ~/map4.pgm.yaml があったら。
$ python3 MapEditor.py ~/map4

だとしたら、ただ走行可能領域のみの、空白の Map だけで良いのでは?

その状態で、GPS を元にした、robot_localization/ekf_node で、自己位置を特定して、Stereo Camera からの
rtabmap_ros/point_cloud_xyz で、 local_costmap、global_costmap に障害物情報を与えてやるだけで、
navigation2 で、1[m] 先の位置、2[m] 先の位置と、順々に走行できるのでは、ないじゃろか?
10[m] 先も、1[m] 毎に区切って行けば、OK か?

ROS2 自作 Turtlebot3(foxbot_core3_r2) Rtabmap_ros with Stereo rgbd and GPS. by T100TA #2
--- GPS を付けて、robot_localization ekf で試すを、T100TA から操作。#2 ---

ROS2 自作 Turtlebot3(foxbot_core3_r2) Rtabmap_ros with Stereo rgbd and GPS. by T100TA の続きです。

ubuntu 20.04 galactic 版へ移行しての再テスト。

ここでの動作を試す前に、ROS2 自作 Turtlebot3(foxbot_core3_r2) Rtabmap_ros with Stereo rgbd. #2 を終わらせて下さい。
上記ページで、 WiFi Lan の安定が重要だと判ったので、その点に注意して、T100TAを使っての走行テストを行います。

1. 環境。
1) Remote PC / T100TA
Ubuntu Mate 20.04
ros2: galactic
navigation2, Rviz2, multi_goals4_nav2
Wi-Fi: 2.4 [GHz]

2) SBC
Jetson Nanao 2G
Jet Pack4 .x and Ubuntu 20.04
ros2: galactic
micro-ROS Agent
Single USB Stereo Camera
GPS: AE-GYSFDMAXB
rtabmap_ros
Wi-Fi dongle: TP-Link 2.4[GHz] 150[Mbps]
USB SSD Stick

3) SOC
ESP32 Arduino
micro-ROS
IMU

4) Wi-Fi portable router
ELECOM WRH-300BK3-S

5) 自動走行プログラム。
turtlebot3_navi_my / multi_goals4_nav2

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

アイテム

  • robotcar-DSC03445.jpg
  • foxbot3_core_chassis-img007.jpg
  • foxbot3_core_chassis-img006.jpg
  • foxbot3_core_chassis-img005.jpg
  • foxbot3_core-eagle-schema.jpg
  • foxbot3_core-eagle-board.jpg
  • robocar-DSC03418.jpg
  • img004.jpg
  • img003.jpg
  • esp32-gysfdmaxb-server_2018.10.6.jpg

カテゴリ

ウェブページ

サイトナビ