Skip to main content

YOLOv8物体検出モデルのトレーニングとデプロイ

note

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

YOLOv8物体検出モデルのデプロイ

このWikiでは、公式のYOLOv8物体検出モデルをトレーニングし、トレーニング済みモデルをGrove Vision AI (V2)デバイスまたはXIAO ESP32S3デバイスにデプロイする方法を紹介します。

データセットの準備

データセットにはroboflowプラットフォームを使用することをお勧めします。このプラットフォームでは、データセットのアノテーションやデータ拡張戦略を実行でき、複数のデータセット形式のエクスポートをサポートしています。

YOLOv8コマンドラインツールのインストール

  • デフォルトでは、python環境とpipパッケージ管理ツールがすでにインストールされており、python>=3.8が必要です。

ultralyticsパッケージをインストールするには、pip install -U ultralyticsを実行します。ultralyticsパッケージの詳細については、Python Package Index (PyPI)をご覧ください: https://pypi.org/project/ultralytics/](https://pypi.org/project/ultralytics/).

# pipを使用してインストール
pip install ultralytics
# 中国のユーザーはミラーアクセラレーションを使用できます
# pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

Condapipの代替パッケージマネージャーであり、インストールにも使用できます。詳細はAnacondaをご覧ください: https://anaconda.org/conda-forge/ultralyticsUltralyticsのフィードストックリポジトリは、condaパッケージの更新用にhttps://github.com/conda-forge/ultralytics-feedstock/にあります。

# condaを使用してインストール
conda install -c conda-forge ultralytics

ultralyticsをクローンします。開発に参加したい場合や、最新のソースコードを試したい場合は、リポジトリをご覧ください。クローン後、ディレクトリに移動し、-eパラメータを使用して開発者モードでパッケージをインストールします。

# 公式リポジトリをクローン
git clone https://github.com/ultralytics/ultralytics

# クローンしたフォルダに移動
cd ultralytics

# 開発者モードでインストール
pip install -e .

ヒント: YOLOv8のコードに詳しくない場合は、pipまたはcondaを使用してインストールすることをお勧めします。

  • yoloコマンドラインツールが正常にインストールされたかどうかをテストするには、バージョン確認コマンドを使用できます。
# バージョン確認
yolo -v

トレーニング

  • まず、ダウンロードしたデータセットフォルダに移動します。

  • 次のコマンドを実行してモデルのトレーニングを開始します。

yolo train detect model=yolov8n.pt data=./data.yaml imgsz=192

tfliteモデルへのエクスポート

  • トレーニング後、モデルは runs/train/exp*/weights/ フォルダ内に保存されます。モデルの評価指標が要件を満たしていることを確認してください。
  • 以下のコマンドを使用して tflite モデルをエクスポートします。
yolo export model=${your model path}  format=tflite imgsz=192 int8
  • 実行後、現在のフォルダ内に yolov8n_saved_model フォルダが生成され、その中に yolov8n_full_integer_quant.tflite モデルファイルが含まれています。このモデルファイルは Grove Vision AI(V2) または XIAO ESP32S3 デバイスにデプロイすることができます。

モデルグラフの最適化

  • Grove Vision AI (V2) は vela によって最適化されたモデルをサポートしており、モデル推論を高速化することができます。まず、以下のコマンドを実行して vela コマンドラインツールをインストールします(XIAO ESP32S3 デバイスはまだサポートされていません)。
pip3 install ethos-u-vela
  • 次に、こちらから vela 関連の設定ファイルをダウンロードするか、以下の内容をファイルにコピーしてください。このファイルは vela_config.ini という名前にすることができます。
; file: my_vela_cfg.ini ; ----------------------------------------------------------------------------- 
; Vela configuration file ; -----------------------------------------------------------------------------
; System Configuration

; My_Sys_Cfg
[System_Config.My_Sys_Cfg]
core_clock=400e6
axi0_port=Sram
axi1_port=OffChipFlash
Sram_clock_scale=1.0
Sram_burst_length=32
Sram_read_latency=16
Sram_write_latency=16
Dram_clock_scale=0.75
Dram_burst_length=128
Dram_read_latency=500
Dram_write_latency=250
OnChipFlash_clock_scale=0.25
OffChipFlash_clock_scale=0.015625
OffChipFlash_burst_length=32
OffChipFlash_read_latency=64
OffChipFlash_write_latency=64
; -----------------------------------------------------------------------------
; Memory Mode
; My_Mem_Mode_Parent
[Memory_Mode.My_Mem_Mode_Parent]
const_mem_area=Axi1
arena_mem_area=Axi0
cache_mem_area=Axi0
  • 最後に、以下のコマンドを使用してグラフを最適化します。
vela --accelerator-config ethos-u55-64 \ 
--config vela_config.ini \
--system-config My_Sys_Cfg \
--memory-mode My_Mem_Mode_Parent \
--output-dir ${Save path of the optimized model} \
${The path of the tflite model that needs to be optimized}

実行後、--output-dir で指定したパスにグラフが最適化された tflite モデルが生成されます。

デプロイ

  • デプロイする必要があるモデルファイルは、上記でエクスポートした tflite ファイルです。以下のチュートリアルに従って、モデルファイルをターゲットデバイスに書き込むことができます。

  • トレーニング済みの tflite モデルをデバイスに書き込むには、弊社のウェブツールを使用することを強く推奨します。詳細な操作は デプロイメントチュートリアル に記載されています。

注意: ESP32S3 デバイスは vela グラフ最適化後のモデルデプロイをサポートしていないため、XIAO ESP32S3 デバイスにモデルをデプロイする場合は、tflite モデルのグラフ最適化を行う必要はありません。

Loading Comments...