transformerの最近のブログ記事

Transformers Object detection - detr の転移学習とONNX変換と実行。#2

Transformers Object detection - detr の転移学習とONNX変換と実行。 の続きです。

ONNX -> rknn に変換して、 Orange pi 5 armbian(22.04) で、NPU で動かしてみました。
USB Camera -> predict -> Open cv 表示
rate: 10[fps] 前後 みたいです。
model 単体ベンチマーク: 0.1[sec] 前後
cpu 負荷は、all core 23[%] 前後みたい。 c++ で行えばもっと、良いかも。
体感は、なんとかつかそう。ただ、実際のアプリでは、Open CV で表示などせずに、
プログラムの中で使うのであれば、もっと早いかも?
orange pi 5 x 1 で、同時に、ROS2 で、ロボットを動かせるかも?
でも、2 台構成が無難かもしれない。

開発環境:
Ubuntu 24.04 PC and GTX 1070
torch 2.6.0+cu126
torchaudio 2.6.0+cu126
torchvision 0.21.0+cu126

実機環境:
Orange pi 5 armbian(22.04)
注) armbian(22.04) でないと、NPU ドライバーが入っていないので、注意!!
最新の armbian(24.04 以降) だと、自分でドライバーをソースbuild して追加しないと、できましぇん!!
python 3.10
RKNNLite
USB カメラ

1. 転移学習
雑草 3class(実際は、4 class になった) の転移学習を行う。
今までは、学習データを、アスペクト比を無視して、480x480 にリサイズしていましたが、
今回は、画像のアスペクト比を維持して、480x480 にリサイズして、余白は、黒埋めします。
実際の学習用 コードは、github に公開しました。
github@tosa-no-onchan/transform_object_detection
zasou_train_3class.ipynb

学習は、2回にわけて行いました。
1 回め
165 エポック
7800 0.304700
2 回め。続きから。
46 エポック
で、 train loss 0.19 になりました。
多分、huging face にアップロードされているでは? tosa-no-onchan/detr-resnet-50_finetuned_zasou

おんちゃんの Tips.
image_processor に、size={"shortest_edge": 480,...
を渡して、入力サイズを、480x480 にすると良いみたい。

これだけで、 rknn での実行速度が改善されるみたいじゃ。--> 実際は、変わらない!!

Transformers Object detection - detr の転移学習とONNX変換と実行。
---- 雑草の独自データの転移学習とONNXでの変換、実行を試す ----

Transformers Object detection

1. 最初に、オリジナルの転移学習を試す。
次に、雑草画像の独自データを用意して、YOLO アノテーションを作成して、それを、COCO 形式に変換して、
雑草画像の転移学習を、試してみた。

開発環境
Ubuntu Mate 22.04
GPU: GeForce GTX 1070
Python 3.10
virtualenv

checkpoint = "facebook/detr-resnet-50"
が、転移学習のベースモデルみたい。
huggingface.co/facebook/detr-resnet-50

num_train_epochs=30
位必要みたい。
一応、オリジナル版の転移学習は、OK でした。

transformer asr japanese サンプルがある。

おんちゃんは、transformer asr のサンプルの、下記を試しておったが、
Automatic speech recognition
なんとも、日本語対応がすでに、ありますっと。

google で検索していたら、transformer asr japanese があった。
kotoba-tech/kotoba-whisper-v1.0 を ONNX に変換して動かしてみた。

1. 自分で転移学習をするなら、
August 2023, Fine-Tuning ASR Models for Japanese and Vietnamese by using OpenAI Whisper and Azure Speech Studio

2. そのまま使うなら、
kotoba-tech/kotoba-whisper-v1.0

ここのサンプルで、最近、判ったことだが、

torch_dtype = torch.bfloat16 if torch.cuda.is_available() else torch.float32

の部分は、使う GPU によっては、注意が必要みたいぞね。
おんちゃんの、GPU は、 GTX-1070 じゃが、この場合は、float16 は、使えないみたいぞね。

#torch_dtype = torch.bfloat16 if torch.cuda.is_available() else torch.float32
torch_dtype = torch.float32
こちらにすべきです。
これで、3.8 sec/f だったのが、 1.18 sec/f になったぞね。

日本語音声認識に特化したWhisperである kotoba-whisper-v1.0を早速試してみた
Kotoba-Whisper入門 - 日本語音声認識の新しい選択肢

結論を言えば、kotoba-whisper-v1.0 で、GTX-170 の場合、torch_dtype = torch.float32 で使うと、
リアルタイム MIC 入力で使えば、それなりに快適に動きます。
Yutube の怪談の動画の音声をスピーカーに出して、それをマイクで拾って遊んでいます。
まあ、間違いは、お愛嬌か。

このアーカイブについて

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

前のカテゴリはU-Netです。

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

カテゴリ

月別 アーカイブ

ウェブページ

サイトナビ