Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Raspberry pi 4b にlabelIMGを入れてYOLOv3用学習データを作る その2:自前学習データの構築

labelIMGでYOLO形式の学習データを作りました。
こいつをGoogle Colabに喰わせて重みデータを作っていきます

実際のところ

  • Google Colaboratory(以下Colab)の環境を用意
  • Colabに必要な環境を構築
  • Colabで計算
  • 結果をRaspberry Piにもってくる

Google Colaboratoryの環境を用意

shuzo-kino.hateblo.jp

GPUにしないと計算が重くて使い物にならないので、
「編集」-> 「ノートブックの設定」でGPUを設定。

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のブログ記事を写した判定はこんな塩梅。