yolov5 の初対面 (Win 版)

前回の記事:
ディープラーニング環境構成(deepin20.6)
ディープラーニング環境構成(win11版)

1. コードのクローン + 環境の切り替え + 依存関係のインストール

git clone https://github.com/ultralytics/yolov5
cd yolov5
conda activate yolov5_env

required.txt を変更して保存します。
![ここに画像の説明を挿入](https://img-blog.csdnimg.cn/105dfb529d4a4d85b5f9fe1aa193d46a.png

サードパーティのライブラリをインストールします。

pip install -r requirements.txt

トーチ+トーチビジョンを個別にインストールする

ダウンロード アドレス間の対応関係は通常、torch1.7.0-torchvision0.8.0、torch1.8.0-torchvision0.9.0、torch1.9.0-torchvision0.10.0 です。
たとえば (cu111 は cuda-11.1 を意味し、cp38 は python3.8 を意味します):
ここに画像の説明を挿入します
ここに画像の説明を挿入します

pip install torch的下载路径
pip install torchvision的下载路径

例えば:
ここに画像の説明を挿入します

2. 公式サンプルを実行します。

python detect.py --source ./data/images/bus.jpg

ここに画像の説明を挿入します

3. トレーニング:

python train.py --data=coco128.yaml --cfg=yolov5s.yaml --weights='yolov5s.pt' --batch-size=8

公式に提供されている coco128 データセットは、実行時にプロジェクトの同じレベルのディレクトリに自動的にダウンロードされます。
ここに画像の説明を挿入します

4. マーク:

ツール labelimg
ここに画像の説明を挿入します
をダウンロードして解凍した後、ディレクトリに入り、
ここに画像の説明を挿入します
predefined_classes.txt 内の元のカテゴリを削除し、独自のデータ セットのカテゴリをカテゴリごとに 1 行で書き込みます。

独自のデータセットを手動で分割します (公式の構造と一致しているため、coco128 と同じディレクトリにあります) (たとえば、100 枚の写真がある場合、80 枚の写真を train に置き、20 枚の写真を val に置きます): (マークすることもできます) 100枚の画像を直接、
コードをランダムに分割します。)
ここに画像の説明を挿入します
ここに画像の説明を挿入します

labelImg.exe を起動 –> ファイル –> ディレクトリを開く –> train/val を選択します。
ここに画像の説明を挿入します

マークを付けた後:

# 标签格式说明:
1.一个图一个txt标注文件(如果图中无所要物体,则无需txt文件);
2.每行一个物体;
3.每行数据格式:类别id、x_center y_center width height;
4.xywh必须归一化(0-1),其中x_center、width除以图片宽度,y_center、height除以画面高度;
5.类别id必须从0开始计数。

展示する:
ここに画像の説明を挿入します

ここに画像の説明を挿入します

5. 独自のラベル付きデータセットをトレーニングする

coco128.yaml のコピーをコピーし、名前を mydataset.yaml に変更して、独自のデータ セットのパスとカテゴリに変更します。
ここに画像の説明を挿入します
埋め込む:

python train.py --data=mydataset.yaml --cfg=yolov5s.yaml --weights='' --batch-size=8

知らせ:
ここに画像の説明を挿入します

6. テスト

ウェイトの配置に注意してください。

python detect.py --weights="./runs/train/exp3/weights/best.pt" --source="E:\workspace\yolo\datasets\mydataset\val\e45f0102e2ef_2021-10-20-10-29-34-377.jpg"

7.評価

python val.py --data="./data/mydataset.yaml"  --weights="./runs/train/exp3/weights/best.pt" --batch-size=8

8. 提案

データ:

  • 写真の各カテゴリ: 1500 枚以上の写真を推奨。
  • 各タイプの例 (ラベル付きオブジェクト): 推奨 >= 10,000。
  • 画像サンプリング: 実際の画像は、1 日のさまざまな時間、さまざまな季節、さまざまな天候、さまざまな照明、さまざまな角度、さまざまなソース (クローラー キャプチャ、手動収集、さまざまなカメラ ソース) およびその他のシナリオで収集することをお勧めします。
  • 注釈:
    すべての画像上のすべてのカテゴリの対応するオブジェクトに注釈を付ける必要があり、それらの一部にのみ注釈を付けることはできません。注釈はオブジェクトを閉じるように努める必要があり、境界ボックスとオブジェクトの間に隙間があってはなりません。すべてに対応するオブジェクトカテゴリにラベルが欠けていてはなりません。
  • 背景画像:
    背景画像は、誤検知 (誤検知) を減らすために使用されます。総サンプル サイズの 0 ~ 10% の背景画像を提供することをお勧めします。背景画像にラベルを付ける必要はありません。

モデルの選択:

一般にモデルが大きいほど予測結果は良くなりますが、その分計算量が多くなり、学習や演算が遅くなります。

  • モバイル端末(携帯電話、組み込み)で選択:YOLOv5n/s/m
  • クラウド (サーバー) の選択: YOLOv5l/x

電車:

  • エポック: 初期設定は 300 です。非常に早く過学習する場合は、エポックを減らします。300 まで過学習しない場合は、600、1200 などのより大きな値を設定します。
  • 画像サイズ: トレーニング中のデフォルトは -img=640 です。画像内の小さなターゲットを検出したい場合は、これを -img=1280 に設定できます (また、同じ
    効果)
  • バッチ サイズ: ハードウェアが耐えられる最大のバッチ サイズを選択します。
  • ハイパーパラメータ: 初期トレーニング中に初めて変更しないでください。詳細については、https://github.com/ultralytics/yolov5/issues/607を参照してください。
  • 詳細: 公式 Web サイトでは、http://karpathy.github.io/2019/04/25/recipe/を確認することをお勧めします。

おすすめ

転載: blog.csdn.net/wave789/article/details/126187426