公式のリポジトリからフォークして、独自のデータセットでファインチューニングを行うためのリポジトリです。
フォーク元: WongKinYiu/yolov7
- Python: 3.10.11
- CUDA: 11.8
git clone git@github.com:TechC-SugarCane/train-YOLOv7.git
cd train-YOLOv7
pyenv
を使うので、パソコンに入っていない人はCONTRIBUTING.mdを参考にしながらインストールしてください。
pyenv install
python -m venv .venv
# mac
source .venv/bin/activate
# windows
.venv\Scripts\activate
※ 環境から抜ける場合は、deactivate
コマンドを実行してください。
# CPUで推論を行う場合
pip install -r requirements-cpu.txt
# GPUで推論を行う場合
pip install -r requirements-gpu.txt
事前学習済みモデルとしてyolov7-d6.pt
を使用するので、こちらからダウンロードしてweights
ディレクトリに配置してください。
データセットは 一階層上にmanage-datasetリポジトリをcloneし、manage-dataset/READMEに従ってダウンロードしてください。
# clone済みの人はスキップ
cd ..
git clone git@github.com:TechC-SugarCane/manage-dataset.git
ターミナルで以下のコマンドを入力し学習を開始します。
--epochs
で学習を行う回数を指定できます。
学習の回数によってかかる時間は変わってきます。
# sugarcane
# タスク的にはp5のtrain.pyを使うべきですが、
# train.pyだとエラーが出るので、tiny以外はtrain_aux.pyを使います
python train_aux.py --workers 8 --batch-size 8 \
--data ../manage-dataset/datasets/sugarcane/data.yaml \
--cfg cfg/training/yolov7-d6.yaml \
--weights weights/yolov7-d6.pt \
--name yolov7-d6-sugarcane \
--hyp data/hyp.scratch.sugarcane.yaml \
--epochs 250 \
--device 0
# pineapple
python train_aux.py --workers 8 --batch-size 8 \
--data ../manage-dataset/pineapple/data.yaml \
--cfg cfg/training/yolov7-d6.yaml \
--weights weights/yolov7-d6.pt \
--name yolov7-d6-pineapple \
--hyp data/hyp.scratch.pineapple.yaml \
--epochs 250 \
--device 0
train_aux.pyを使うとエラーが出るので、train.pyを使います。
# sugarcane
python train.py --workers 8 --batch-size 8 \
--data ../manage-dataset/datasets/sugarcane/data.yaml \
--cfg cfg/training/yolov7-tiny.yaml \
--weights weights/yolov7-tiny.pt \
--name yolov7-tiny-sugarcane \
--hyp data/hyp.scratch.sugarcane.yaml \
--epochs 250 \
--device 0
# pineapple
python train.py --workers 8 --batch-size 8 \
--data ../manage-dataset/pineapple/data.yaml \
--cfg cfg/training/yolov7-tiny.yaml \
--weights weights/yolov7-tiny.pt \
--name yolov7-tiny-pineapple \
--hyp data/hyp.scratch.pineapple.yaml \
--epochs 250 \
--device 0
コントリビューター向けのガイドラインについては、こちらのCONTRIBUTING.mdを参照してください。