🗒️

VisionAIModuleV2: YOLOv8の学習から最適化まで

2024/07/23に公開

Seeed Studio WikiのDeploy YOLOv8 object detection modelを試したところ、いろいろと苦労したのでステップバイステップを残しておきます。

1. 環境

Azure Virtual Machineを使います。

  • Ubuntu Server 24.04 LTS - x64 Gen2
  • Standard_D4ds_v5
  • OS Disk 64GiB

2. Python 3.11

Python 3.11をインストールします。
Ubuntu 24.04にインストールされているPython 3.12では、yolo exportでエラーが発生するので、Python 3.11にします。

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.11 python3.11-dev

3. Python 3.11仮想環境

Python 3.11の仮想環境を作成して切り替えます。

mkdir env && cd env
python3.11 -m venv --without-pip yolov8
. yolov8/bin/activate

4. pip

pipをインストールします。

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
pip install --upgrade pip

5. YOLOv8

YOLOv8をインストールします。
yoloを起動したときにImportError: libGL.so.1: cannot open shared object file: No such file or directoryエラーが出るので、libgl1-mesa-devをインストールしておきます。

sudo apt update && sudo apt install libgl1-mesa-dev
pip3 install ultralytics
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

6. 学習

学習します。

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

結果ファイルはこれです。

$ ls -l runs/detect/train/weights/
total 12696
-rw-rw-r-- 1 azureuser azureuser 6494563 Jul 23 05:09 best.pt
-rw-rw-r-- 1 azureuser azureuser 6501283 Jul 23 05:09 last.pt

7. tfliteへエクスポート

tflite形式でエクスポートします。

yolo export model=runs/detect/train/weights/last.pt format=tflite imgsz=192 int8

結果ファイルはこれです。

$ ls -l runs/detect/train/weights/last_saved_model/last_full_integer_quant.tflite
-rw-rw-r-- 1 azureuser azureuser 3245816 Jul 23 05:12 runs/detect/train/weights/last_saved_model/last_full_integer_quant.tflite

8. 最適化

モデルグラフをWiseEye2用に最適化します。
ethos-u-velaのインストールで、tensorflow-cpuとtensorflowの非互換エラーが発生しますが、対処方法が分からないので無視しますw

pip3 install ethos-u-vela
wget https://files.seeedstudio.com/sscma/configs/vela_config.ini
vela --accelerator-config ethos-u55-64 --config vela_config.ini --system-config My_Sys_Cfg --memory-mode My_Mem_Mode_Parent --output-dir output runs/detect/train/weights/last_saved_model/last_full_integer_quant.tflite

結果ファイルはこれです。

$ ls -l output
total 2180
-rw-rw-r-- 1 azureuser azureuser    1590 Jul 23 05:32 last_full_integer_quant_summary_My_Sys_Cfg.csv
-rw-rw-r-- 1 azureuser azureuser 2227184 Jul 23 05:32 last_full_integer_quant_vela.tflite

Discussion