Open12
Windows 上の Docker (Compose) でYOLOv5(PyTorch) をカスタム学習するまで
Win + R を押す → winver
バージョンが21H2よりも低ければアップデートを行う。
winget をアクティベート
winget ツールを使用したアプリケーションのインストールと管理 | Microsoft Docs
- gsudo
- Docker.DockerDesktop
- Git.Git
- Microsoft.VisualStudioCode
Docker Desktop を起動する前に再起動
wsl と Docker の保存先をDドライブに変更する
WSL2 Dockerのイメージ・コンテナの格納先を変更したい (WSL2のvhdxファイルを移動させたい) - Qiita
wsl
sudo apt update && sudo apt upgrade
docker compose で気をつけること
docker-compose.yaml
version: '3.8'
services:
sample:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./yolov5:/yolov5
tty: true
shm_size: '12gb'
command: python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: [utility, compute, video]
- shm_size がデフォルトでは64MBなので多めに振ってあげる
- deploy: 以下の設定.これでGPUを使えるようになる
これをdocker compose up
すると,yolov5/runs/
に結果が入る
Docker イメージについて
Dockerfile
FROM nvcr.io/nvidia/pytorch:20.10-py3
WORKDIR /yolov5
COPY /yolov5 .
RUN apt-get update && \
# apt-get install -y zip htop screen libgl1-mesa-glx && \
DEBIAN_FRONTEND="noninteractive" apt-get install -y python-opencv
RUN sed -i 's/^opencv/#&/g' requirements.txt &7 sed -i 's/^torch/#&/g' requirements.txt
RUN pip3 install --upgrade pip && pip3 install --no-cache -r requirements.txt
YOLOv5はPyTorchの最新バージョン(1.11.x)だと動かないので,古いバージョンのものを持ってくる必要がある.バージョン合わせが大変なので,既存のDocker イメージを使用する(Training a Custom Object Detection Model with YOLOv5 | Forecr.io)
sed の行は,PyTorchとOpenCV関連のパッケージをインストールしないようにする.PyTorchに関しては,バージョンを固定したいので.OpenCVは理由を調べられていないから要調査.
今後の展望
- 自作データセットでの学習
- モデルの変更(限界を調べる)
- ハイパーパラメーターの変更
- data augumentationについて調べる
リポジトリについて
- git clone --recursive するといい.
- YOLOv5 のリポジトリはsubmodule で取り込み
- --recursiveを忘れたら
git submodule update -i
でいけるはず - だめだったら
git submodule udpate --init
とかgit submodule init && git submodule update
- --recursiveを忘れたら
- YOLOv5 のリポジトリに対して
git update-index --assume-uncahnged yolov5
して更新を追いかけないようにするgit ls-files -v | grep ^h
カスタムデータセット:CVATを使う About | CVAT
- まずたくさん画像を撮ります
- それっぽいディレクトリを作ります
- CVATをダウンロード
cd cvat/utils/dataset_manifest
python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt # できなかったらいい感じに自力で
python create.py /path/to/datasset --output-dir /path/to/dataset
-
Mounting cloud storage | CVAT
-
google-drive-ocamlfuse -o allow_other $mountpoint
は /mnt/d/ では叩けない - 必須ではない
-
CVATを使っていて,誤ったフォーマットでTaskを作成しまった場合の対処法
Command line interface (CLI) | CVAT
を参考にする.
python cli.py --auth {UserName}:{Password} dump --format "YOLO 1.1" {TaskNumber} output.zip