🗒️
VisionAIModuleV2: YOLOv8の学習から最適化まで
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