LoginSignup
1
2

More than 1 year has passed since last update.

【YOLOv5】スナックエンドウの収穫用に物体検出モデルをつくってみる【Windows】

Posted at

はじめに

会社で機械学習で使える統計学をサラッと教えてくれと無理を言われて苦労して作ったものをせっかくなのでUPします:fearful:

仕事でつかえる機械学習について数式をできるだけ使わない形でブログ化しました。私の理解するところなので初心者向けです。ガチな人はお手柔らかに...
今回は、ブログの中で好評なyolov5についてご紹介します。

良かったら↓見てください:smiley:

YOLOv5を実装していく~前準備~

OSはWindows10でやっています。軽く検索したらWindowsでの実施例が無かったので人柱としてやっていきます。

  • OS : Windows 10
  • CPUA : AMD Ryzen 7 5800
  • メモリ : 16 GB
  • GPU : GeForce RTX3700

まずはGitからYOLOv5をダウンロードして環境設定していきます。
Pythonのバージョンは3.8でやりました。

conda create -n yolov5 python=3.8
conda activate yolov5
git clone https://github.com/ultralytics/yolov5.git
cd desktop\yolov5
pip install -U -r requirements.txt

これでyolov5環境ができますが、このままだとPyTorchでGPUが使えなかったのでPyTorchを入れなおしていきます。PyTorchのバージョンv.1.7.1でうまくいきました。私の場合は↓のコードを入れましたが、環境に合わせて変更してください。

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

YOLOv5を実装していく~データセット~

お手持ちのデータセット(今回はスナックエンドウの画像)のアノテーションをします。私の実施した方法の詳細はここを参照ください。データが準備できたら、ディレクトリは↓の通りにyolov5下へ新規作成してください。
image.png

Train、Validディレクトリへそれぞれ画像とラベル(アノテーションファイル)を入れてください。どの割合で入れるかはお任せですが、だいたい20%程度をValidディレクトリへ入れる感じがいいかと思います。

YOLOv5を実装していく~.yamlファイル書換え~

dataディレクトリの中にcoco.yamlファイルというモノがあると思います。これをワードパッド等で開いてください。書いてあることを一度全部消します。↓を記入し、”data.yaml”というファイル名でYolov5フォルダ直下へ保存してください。

train: data/train/images
val: data/valid/images

nc: 1
names: [‘snack pea’]

YOLOv5を実装していく~学習実行~

下記コードを実行しすると学習開始します。batch-size, epochsなどは引数で設定できますので、お好みで書き直してください。

python train.py --data data.yaml --cfg yolov5m.yaml --weights '' --batch-size 8 --epochs 1000

ここで、–cfgはyolov5学習モデルs、m、l、xのどの重みを使うか?を指定します。sは学習が軽いが精度は低い、xは重いが精度は高いです。今回はmで実施しています。

結果の確認

学習が完了するとruns/train/expディレクトリに結果が保存されます。Validディレクトリへ入れた画像の推定結果が保存されていると思います。確認してみましょう!

image.png

今回データ数が少なかったので、太い茎を検出したりしてますが、概ねいい感じだと思います。
YOLOv5は簡単に実装することができるように工夫されていますので是非やってみてください。

この内容はブログでより細かく説明してありますので、良かったら↓参考にしてください:smiley:

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2