技術共有

YOLOv10 は独自のデータセット (交通標識検出) をトレーニングします

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

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

序文

関連紹介

  • YOLOv10 は、Ultralytics Python パッケージに基づいて清華大学の研究者によって構築され、リアルタイムのターゲット検出の新しい方法が導入され、以前の YOLO バージョンの後処理とモデル アーキテクチャの欠陥が解決されました。非最大抑制 (NMS) を排除し、さまざまなモデル コンポーネントを最適化することで、YOLOv10 は計算オーバーヘッドを大幅に削減しながら、最先端のパフォーマンスを実現します。広範な実験により、複数のモデル スケールでの優れた精度と遅延のトレードオフが実証されました。
  • [1] YOLOv10 ソース コード アドレス:https://github.com/THU-MIG/yolov10.git
  • [2] YOLOv10 論文アドレス:https://arxiv.org/abs/2405.14458
    ここに画像の説明を挿入します
  • 概要
    リアルタイムの物体検出の目的は、画像内の物体のカテゴリと位置を低遅延で正確に予測することです。 YOLO シリーズは、パフォーマンスと効率のバランスにより、この研究の最前線に立っています。ただし、NMS への依存とアーキテクチャの非効率性により、最適なパフォーマンスが妨げられます。 YOLOv10 は、nms フリーのトレーニングと全体的な効率を重視した精度主導のモデル設計戦略のための一貫したデュアルタスクを導入することで、これらの問題に対処します。
  • 建築
    YOLOv10 のアーキテクチャは、以前の YOLO モデルの長所を基に構築されており、いくつかの重要な革新が導入されています。モデル アーキテクチャは次のコンポーネントで構成されます。
    • バックボーン: YOLOv10 のバックボーンは、CSPNet (Cross Stage Partial Network) の拡張バージョンを使用して特徴抽出を担当し、勾配フローを改善し、計算の冗長性を削減します。
    • ネック: ネックは、さまざまなスケールの特徴をまとめて頭に伝えるように設計されています。これには、効果的なマルチスケール機能融合のための PAN (Path Aggregation Network) レイヤーが含まれています。
    • 1 対多ヘッド: トレーニング プロセス中にオブジェクトごとに複数の予測を生成し、豊富な監視信号を提供して学習精度を向上させます。
    • One-to-One Head: 推論中にオブジェクトごとに最適な予測を生成して、NMS の必要性を排除し、それによって遅延を削減し、効率を向上させます。
  • 主な特長
    • NMS フリーのトレーニング: 一貫したデュアル割り当てを活用して、NMS の必要性を排除し、推論遅延を削減します。
    • 総合的なモデル設計: 軽量分類ヘッド、空間チャネル分離ダウンサンプリング、ランク ガイド ブロック設計など、各コンポーネントは効率と精度の観点から完全に最適化されています。
    • 強化されたモデル機能: 大規模なカーネルの畳み込みモジュールと部分的なセルフアテンション モジュールを組み合わせて、大幅な計算コストをかけずにパフォーマンスを向上させます。
  • モデルのバリエーション: YOLOv10 には、さまざまなアプリケーションのニーズを満たすさまざまなモデルが用意されています。
    • YOLOv10-N: リソースが非常に限られた環境向けの Nano バージョン。
    • YOLOv10-S: 小型バージョンは速度と精度のバランスをとります。
    • YOLOv10-M: 汎用用途の中バージョン (さまざまな目的や用途に適しています)。
    • YOLOv10-B: 幅を広げて精度を高めたバランスバージョン。
    • YOLOv10-L: 計算リソースの増加を犠牲にして、より高い精度を実現する大規模バージョン。
    • YOLOv10-X: 最高の精度とパフォーマンスを実現する特大バージョン。
      ここに画像の説明を挿入します

前提条件

研究室環境

torch==2.0.1
torchvision==0.15.2
onnx==1.14.0
onnxruntime==1.15.1
pycocotools==2.0.7
PyYAML==6.0.1
scipy==1.13.0
onnxsim==0.4.36
onnxruntime-gpu==1.18.0
gradio==4.31.5
opencv-python==4.9.0.80
psutil==5.9.8
py-cpuinfo==9.0.0
huggingface-hub==0.23.2
safetensors==0.4.3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

設置環境

pip install ultralytics
# 或者
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple # 国内清华源,下载速度更快
  • 1
  • 2
  • 3

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

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

プロジェクトアドレス

リナックス

git clone https://github.com/THU-MIG/yolov10.git

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
Cloning into 'yolov10'...
remote: Enumerating objects: 4583, done.
remote: Counting objects: 100% (4583/4583), done.
remote: Compressing objects: 100% (1270/1270), done.
remote: Total 4583 (delta 2981), reused 4576 (delta 2979), pack-reused 0
Receiving objects: 100% (4583/4583), 23.95 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (2981/2981), done.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

ウィンドウズ

来て下さいhttps://github.com/THU-MIG/yolov10.gitWeb サイトからソース コードの zip パッケージをダウンロードします。

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
  • 1
  • 2
  • 3
  • 4
  • 5

YOLOv10 を使用して交通標識検出用の独自のデータセットをトレーニングする

データの準備

この記事で使用しているデータセットは無料ですダウンロードリンク:https://download.csdn.net/download/FriendshipTang/88045378

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

訓練を実施する

yolo detect train data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=yolov10n.yaml epochs=100 batch=4 imgsz=640 device=0
  • 1

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

予測を行います

yolo predict model=runsdetecttrain4weightsbest.pt source=E:/mytest/datasets/Road_Sign_VOC_and_YOLO_datasets/testset/images
  • 1

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

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

認証する

yolo detect val data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=runsdetecttrain4weightsbest.pt batch=4 imgsz=640 device=0
  • 1

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

参考文献

[1] YOLOv10 ソース コード アドレス:https://github.com/THU-MIG/yolov10.git
[2] YOLOv10 論文アドレス:https://arxiv.org/abs/2405.14458