HuggingFaceの物体検出モデルを片っ端から試す回

お疲れ様です。

以前の記事でHuggingFace(transformersライブラリ)から利用できるDETRという物体検出モデルを実装しました。
今回はDETR以外の物体検出モデルを使ってみようと思います。

前回

fallpoke-tech.hatenadiary.jp

ソースコード

ソースコードは前回作成のものに追加する形で作成しています。
今回紹介するモデルはconfig/train_config.tomlのmodel_nameを変更することで切り替え可能です。

github.com

使用するデータセット

VOCデータセットの画像を使用して人間の顔を新たにアノテーションして作成した「顔検出データセット」を使用します。
(実は前回の段階でチラ見せはしていました…。)
124枚分データを作成し、trainデータを100枚、validationデータを20枚で学習を実行し、残りの4枚をtestデータとして学習済みモデルの評価に使用しました。

PCのスペック

参考程度に実行したPCのスペックも記載しておきます。

CPU: 13th Gen Intel(R) Core(TM) i7-13700F 2.10 GHz
メモリ: 32 GB
GPU: NVIDIA GeForce RTX 4060 Ti
VRAM: 16GB
OS: Windows11 Pro

HuggingFaceの物体検出モデル

使用できるモデルアーキテクチャは以下の4つです。
それぞれの紹介と実際に上記の顔検出データセットを使った学習の結果を載せておきます。上が学習曲線(Loss)のグラフ、下がlatestモデルでのテスト結果になります。
なお、学習のパラメータ設定は統一しています。


DETR

huggingface.co

  • 学習結果


Deformable DETR

huggingface.co

  • 学習結果


DETA

huggingface.co

  • 学習結果


Conditional DETR

huggingface.co

  • 学習結果

所感

学習の進行や実行時間に差はありましたが、テスト結果にほぼほぼ差が無いですね…。
データセットが簡単すぎたのかもしれません🤔
実行時間に関してはDETR<Conditional DETR<Deformable DETR<DETAという感じでした。
ちょっと今回のようなテスト結果だけでの比較だとわかりにくいので、評価指標を使っての評価もするべきだったなぁと思っています。次の課題としますかね。