Skip to main content

オブジェクト検出 - SWIFT-YOLO

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

オブジェクト検出 - SWIFT-YOLO

このセクションでは、COCOデジタルメーターデータセットを使用してデジタルメーターモデルをトレーニングする方法について説明します。YOLOデジタルメーター検出モデルの実装は、Swfit-YOLOに基づいており、mmyoloによって提供されています。

データセットの準備

SSCMAは、デフォルトでDigital Meter Datasetsを使用してSwfit-YOLOモデルをトレーニングします。以下の手順に従ってデータセットの準備を完了してください。

  1. COCOデータセット形式でデジタルメーターデータセットをダウンロードします。

  2. 解凍したデータセットのフォルダパス(例:datasets\digital_meter)を覚えておいてください。このフォルダパスは後で使用する可能性があります。

設定ファイルの選択

トレーニングタスクの種類に応じて適切な設定ファイルを選択します。設定ファイルの機能、構造、原則については、Configで既に紹介しています。

Swfit-YOLOモデルの例では、swift_yolo_tiny_1xb16_300e_coco.pyを設定ファイルとして使用します。このファイルはSSCMAのルートディレクトリのconfigs/swift_yoloフォルダ内にあり、さらにbase_arch.py設定ファイルを継承しています。

初心者には、まずこの設定ファイル内のdata_rootepochsパラメータに注目することをお勧めします。

swift_yolo_tiny_1xb16_300e_coco.py
_base_='../_base_/default_runtime_det.py'
_base_ = ["./base_arch.py"]

anchors = [
[(10, 13), (16, 30), (33, 23)], # P3/8
[(30, 61), (62, 45), (59, 119)], # P4/16
[(116, 90), (156, 198), (373, 326)] # P5/32
]
num_classes = 11
deepen_factor = 0.33
widen_factor = 0.15

strides = [8, 16, 32]

model = dict(
type='mmyolo.YOLODetector',
backbone=dict(
type='YOLOv5CSPDarknet',
deepen_factor=deepen_factor,
widen_factor=widen_factor,
),
neck=dict(
type='YOLOv5PAFPN',
deepen_factor=deepen_factor,
widen_factor=widen_factor,
),
bbox_head=dict(
head_module=dict(
num_classes=num_classes,
in_channels=[256, 512, 1024],
widen_factor=widen_factor,
),
),
)

モデルのトレーニング

モデルをトレーニングするには、事前に設定したSSCMA作業環境を使用する必要があります。Installationガイドに従ってCondaを使用して仮想環境sscmaSSCMAをインストールした場合、現在その仮想環境内にいることを確認してください。

その後、SSCMAプロジェクトのルートディレクトリで、以下のコマンドを実行してSwfit-YOLOデジタルメーター検出モデルをトレーニングします。

python3 tools/train.py \
configs/swift_yolo/swift_yolo_tiny_1xb16_300e_coco.py \
--cfg-options \
data_root='datasets/digital_meter' \
epochs=50

トレーニング中、モデルの重みと関連するログ情報はデフォルトでwork_dirs/swift_yolo_tiny_1xb16_300e_cocoパスに保存されます。また、TensorBoardなどのツールを使用してトレーニングをモニタリングできます。

tensorboard --logdir work_dirs/swift_yolo_tiny_1xb16_300e_coco

トレーニングが完了すると、最新のSwfit-YOLOモデルの重みファイルのパスはwork_dirs/swift_yolo_tiny_1xb16_300e_coco/last_checkpointファイルに保存されます。この重みファイルのパスを注意深く管理してください。他の形式にモデルを変換する際に必要になります。

tip

仮想環境が設定されているがアクティブになっていない場合、以下のコマンドでアクティブ化できます。

conda activate sscma

テストと評価

テスト

Swfit-YOLOモデルのトレーニングが完了したら、特定の重みを指定して以下のコマンドでモデルをテストできます。

python3 tools/inference.py \
configs/swift_yolo/swift_yolo_tiny_1xb16_300e_coco.py \
"$(cat work_dirs/swift_yolo_tiny_1xb16_300e_coco/last_checkpoint)" \
--show \
--cfg-options \
data_root='datasets/digital_meter'
tip

テスト中にリアルタイムでプレビューしたい場合、テストコマンドに--showパラメータを追加して予測結果を表示できます。その他のオプションパラメータについては、ソースコードtools/inference.pyを参照してください。

評価

モデルを実際のエッジコンピューティングデバイスでさらにテストおよび評価するには、モデルをエクスポートする必要があります。モデルのエクスポートプロセスでは、SSCMAがモデルのプルーニングや蒸留などの最適化を行います。モデルのエクスポート方法については、Exportセクションを参照してください。

デプロイ

モデルをエクスポートした後、エッジコンピューティングデバイスにモデルをデプロイしてテストおよび評価を行うことができます。モデルのデプロイ方法については、Deployセクションを参照してください。

Loading Comments...