labelIMGでYOLO形式の学習データを作りました。
こいつをGoogle Colabに喰わせて重みデータを作っていきます
実際のところ
- Google Colaboratory(以下Colab)の環境を用意
- Colabに必要な環境を構築
- Colabで計算
- 結果をRaspberry Piにもってくる
Colabに必要なライブラリを導入
!git clone https://github.com/ultralytics/yolov3
リポジトリにインストール内容が記載された便利なのがあるので
!pip install -r yolov3/requirements.txt
Colabで計算
GoogleドライブをColabにマウント。
これをやらないと、先ほどリポジトリにぶち込んだデータを取り扱えない
from google.colab import drive drive.mount('/content/drive')
判定。
"--img"は画像サイズ。今回はクッソ小さい画像だったのでこの数値に。
"--batch"と"--epochs"が学習量の肝で、甘くみて低い数値に設定すると使い物にならないゴミファイルができます(経験談)。
# 判定する。 %cd /content/yolov3 !python train.py --batch 32 --epochs 300 --img 352 --data '/content/drive/MyDrive/ObjectDetection/duck.yaml'
Model summary: 38 layers, 8666692 parameters, 0 gradients, 12.9 GFLOPs
結果をRaspberry Piにもってくる
Colabの画面で、Google Driveのディレクトリに先ほどつくったファイルを移動
#結果をGoogleDriveのObjectDetectionに移す %cd /content/yolov3 ! ls runs/train/exp/weights ! cp runs/train/exp/weights/best.pt /content/drive/MyDrive/ObjectDetection/
ローカルに先ほどのファイルをalpha.ptとリネームして移動し
そしてRasPiで
$ cd yolov3 $ python3 detect.py --source ../testImg/001.png --weight alpha.pt
さらにUSBカメラでもできます。
480x640の解像度だとRasPi4Bなら大体700ミリ秒に一回くらいのペースで判定してくれています。
$ python3 detect.py --source 0 --weight alpha.pt
labelIMGのブログ記事を写した判定はこんな塩梅。