Object Detectionの最近のブログ記事

Baidu RT-DETRv2 の転移学習と Orange pi 5 NPU での実行。

Baidu RT-DETRv2 を、雑草データセットで、転移学習させて、
最終的に、 Orange pi 5 armbian 22.04 rknn-runtime で走らせてみた。

結構、rknn に変換するまでが、大変だったが、なんとか変換して、走らせてみた。

当初、Hugging face の RT-DETRv2 で試したが、Orange pi 5 armbian(22.04) で実行すると、
Unsuport CPU op: Grid Sample in ths librknnrt.so ..
が出て、Segmantation faluts になった。
これの対応策は、どうやら、 torch -> onnx 変換時に、
model.use_discreat_sample=True
model.eval()
をすれば良いことがわかった。しかし、これに対応しているのが、 Baidu のオリジナル版でした。
Baidu のオリジナル版 で、上記修正を加えたが、実際のやり方は、少し違っていた。
google ai に随分助けをかりて、なんとかできた。

実機: 
Orange pi 5 armbian 22.04
USB Camera

USB Camera -> predict -> Open cv 表示で、
実測 fps: 6 -7 [Hz] でした。

Hugging face DETR だと、同じ構成で、
実測 fps: 10[Hz]
だったので、すこし、残念でした。

実機2: Joshua Piek ubuntu 24.04
USB Camera
では、
fps: 11 - 13[Hz] でした。

将来、C++ で作れば、少しは速くなるかも知れないので、
これくらいで、OK か。

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 カメラ

実機環境2:
Joshua Piek ubuntu 24.04
こちらが、今は良いみたい。
USB Camera -> predict -> open cv 表示
fps: 12 - 13 [Hz] みたいです。
検出精度、良好!! by nishi 2026.3.29

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 でした。

OAK-D-Lite Object Detection YOLOv7 transfer learning.

OAK-D-Lite Object Detection YOLOv7 転移学習をしてみた。

単純に下記ページの YOLOv7 tutorial を実行するだけ。
docs.luxonis.com/software/ai-inference/training

結論から先に言えば、うまくできました。
OAK-D Lite で、動きました。

ただし、サンプルは、google colaboratory と、Google Drive を使っています。
おんちゃんも当初は、お同じにしていましたが、どうも、Google Drive への保存が良くわからなくて、学習結果が消えてしまいました。

結局、ubuntu 22.04 PC 上で、実行しました。

1. PC環境
Ubuntu Mate 22.04
GPU: GeForce GTX 1070
Python 3.10
virtualenv
OAK-D Lite

2. 手順
$ cd
$ python3 -m pip install virtualenv --user
$ python3 -m virtualenv torch_env
$ source ~/torch_env/bin/activate
(troch_env) xxx@xxx:~$
$ python -m pip install --upgrade pip

あとは、PyTorch のインストールをします。
https://github.com/WongKinYiu/yolov7 の環境を、そのまま使用します。
$ cd ~/Documents/Visualstudio-torch_env
$ git clone https://github.com/WongKinYiu/yolov7.git
$ cd yolo7
$ python -m pip install -r requirements.txt
$ python -m pip install notebook

これで、pytorch GPU も、OK です。
ただし、
Ubuntu 22.04 Tensorflow GPU Install. でシステム側にインストールした、
cudnn か、なにかのライブラリーと競合するようで、
~/.bashrc の記述の、LD_LIBRARY_PATH を取ります。
# add for libcudnn8
#export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/home/nishi/usr/local/share/TensorRT-8.6.1.6/lib:$LD_LIBRARY_PATH

TensorRT 5.1 Windows10 での試し #2

TensorRT 5.1 の Windows10での試し、第2回として、
今回は、 Pytorch 1.0 Object Detection faster-rcnn の試し で使った学習済みモデルを、
TensorRT 5.1 に持って行って実行できるか試してみます。

TensorRT で Pytorch の学習済モデルを使うには、ONNX format にしてから、TensorRT で取り込んんでやれば良いとの事です。

https://docs.nvidia.com/deeplearning/sdk/tensorrt-sample-support-guide/index.html#onnx_mnist_sample 

その前に、 おんちゃんは、TensorRT5.1 で C++ 開発をするにあたり、下記ページを参考にしています。
tensorrt-developer-guide > 2. Working With TensorRT Using The C++ API

Pytorch 1.0 Object Detection faster-rcnn の試し

Windows10 + Pytorch 1.0 + VisualStudio 2017 環境で試せる Object Detection faster-rcnn が
GitHub に紹介されていたので、試してみました。

 https://github.com/facebookresearch/maskrcnn-benchmark

インストレーションは、
https://github.com/facebookresearch/maskrcnn-benchmark/blob/master/INSTALL.md

を参考にして行います。

但し途中の箇所でエラーが出てそれから進みません。

このアーカイブについて

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

次のカテゴリはPVCNNです。

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

カテゴリ

月別 アーカイブ

ウェブページ

サイトナビ