コンテンツへスキップ

YOLO よくある問題のトラブルシューティング

YOLO よくある問題イメージ

はじめに

このガイドは、Ultralytics のプロジェクトでYOLO11 を使用しているときに遭遇する一般的な問題のトラブルシューティングを行うための包括的な支援となります。適切なガイダンスがあれば、これらの問題を簡単に解決することができ、プロジェクトが不必要な遅延なしに軌道に乗ることを保証します。



見るんだ: Ultralytics YOLO11 一般的な問題|インストールエラー、モデルトレーニングの問題

よくある問題

インストールエラー

インストールエラーは、互換性のないバージョン、依存関係の欠落、不適切な環境設定など、さまざまな理由で発生する可能性があります。まず、以下のことを確認してください:

  • 推奨されているPython 3.8以降を使用しています。
  • 正しいバージョンの PyTorch(1.8以降)がインストールされていることを確認してください。
  • コンフリクトを避けるため、仮想環境の利用を検討する。
  • 公式のインストールガイドに従ってステップバイステップでインストールします。

さらに、ユーザーが遭遇した一般的なインストールの問題と、それぞれの解決策をご紹介します:

  • インポートエラーまたは依存関係の問題 -YOLO11 のインポート中にエラーが発生した場合、または依存関係に関連する問題が発生した場合は、以下のトラブルシューティング手順を検討してください:

    • 新規インストール:新規インストールから始めることで、予期せぬ問題が解決することがあります。特に、Ultralytics のようなライブラリでは、アップデートによってファイルツリー構造や機能に変更が加えられる可能性があります。

    • 定期的なアップデート:ライブラリの最新バージョンを使用していることを確認してください。古いバージョンは最近のアップデートと互換性がなく、コンフリクトや問題が発生する可能性があります。

    • 依存関係をチェックする:すべての必要な依存関係が正しくインストールされ、互換性のあるバージョンであることを確認します。

    • 変更点の確認最初に古いバージョンをクローンまたはインストールした場合、重要なアップデートがライブラリの構造や機能に影響を与える可能性があることに注意してください。主要な変更点を理解するために、常に公式ドキュメントや変更履歴を参照してください。

    • ライブラリと依存関係を常に最新に保つことは、スムーズでエラーのないエクスペリエンスのために非常に重要であることを忘れないでください。

  • GPU 上でYOLO11 を実行する -GPU 上でYOLO11 の実行に問題がある場合は、以下のトラブルシューティング手順を検討してください:

    • CUDA 互換性とインストールを確認する:GPU がCUDA と互換性があり、CUDA が正しくインストールされていることを確認してください。を使用してください。 nvidia-smi コマンドを使用して、NVIDIA GPU とCUDA バージョンのステータスを確認してください。

    • PyTorch とCUDA の統合をチェック:PyTorch がCUDA を利用できるようにする。 import torch; print(torch.cuda.is_available()) をPython ターミナルで実行する。もし'True'を返せば、PyTorch はCUDA を使うように設定されている。

    • 環境の有効化:必要なパッケージがすべてインストールされている正しい環境にいることを確認する。

    • パッケージを更新してください:古いパッケージはあなたのGPU と互換性がないかもしれません。常に更新してください。

    • プログラムの構成:プログラムまたはコードがGPU 。YOLO11 では、これは設定や構成にあるかもしれない。

モデルトレーニングの問題

このセクションでは、トレーニング中に直面する一般的な問題と、それぞれの説明と解決策を取り上げる。

コンフィギュレーション設定の検証

問題:のコンフィギュレーション設定が正しいかどうかわからない。 .yaml ファイルがモデルトレーニング中に正しく適用されているかどうかを確認する。

ソリューション:のコンフィギュレーション設定は .yaml ファイルを適用する必要がある。 model.train() 関数を使用してください。これらの設定が正しく適用されていることを確認するには、以下の手順に従ってください:

  • のパスを確認してください。 .yaml 設定ファイルは正しい。
  • へのパスを渡してください。 .yaml ファイルを data を呼び出す際の引数である。 model.train()以下のように:
model.train(data="/path/to/your/data.yaml", batch=4)

マルチGPUによるトレーニングの高速化

課題トレーニングがシングルGPU で遅いため、複数のGPUを使用してプロセスを高速化したい。

解決策 バッチサイズを大きくすることでトレーニングを高速化できますが、GPU メモリ容量を考慮することが不可欠です。複数のGPUでトレーニングを高速化するには、以下の手順に従います:

  • 複数のGPUが利用可能であることを確認してください。
  • .yaml設定ファイルを修正して、使用するGPUの数を指定します(例:gpus):4.
  • メモリ制限を超えることなく複数のGPUをフルに活用するために、バッチサイズを適宜大きくします。
  • 複数のGPUを利用するようにトレーニングコマンドを修正する:
# Adjust the batch size and other settings as needed to optimize training speed
model.train(data="/path/to/your/data.yaml", batch=32, multi_scale=True)

連続モニタリング・パラメーター

問題トレーニング中に、損失とは別に、どのパラメーターを継続的にモニターすべきかを知りたい。

解決策損失は監視すべき重要な指標ですが、モデルのパフォーマンスを最適化するためには、他の指標を追跡することも不可欠です。トレーニング中に監視すべき主な指標には、以下のようなものがあります:

これらのメトリクスには、トレーニングログからアクセスしたり、TensorBoardやwandbのようなツールを使って可視化することができます。これらのメトリクスに基づいて早期停止を実施することで、より良い結果を得ることができます。

トレーニングの進捗を追跡するツール

問題トレーニングの進捗状況を追跡するための推奨ツールを探している。

解決策トレーニングの進捗状況を追跡し、視覚化するには、以下のツールの使用を検討することができます:

  • TensorBoard:TensorBoardは、損失や精度などのトレーニングメトリクスを可視化するための一般的な選択肢です。YOLO11 トレーニングプロセスと統合することができます。
  • Comet:Comet は、実験の追跡と比較のための広範なツールキットを提供します。メトリクス、ハイパーパラメータ、そしてモデルの重みまで追跡することができます。YOLO モデルとの統合も簡単で、実験サイクルの完全な概要を提供します。
  • Ultralytics HUB:Ultralytics HUBは、YOLO モデルのトラッキングに特化した環境を提供し、メトリクスやデータセットの管理、さらにはチームとのコラボレーションをワンストップで行えるプラットフォームを提供する。YOLO に特化しているため、よりカスタマイズされた追跡オプションを提供する。

これらのツールにはそれぞれ利点があるため、プロジェクトの具体的なニーズを考慮して選択するとよいだろう。

トレーニングが行われているかどうかを確認する方法GPU

問題トレーニングログの'device'の値が'null'であり、トレーニングがGPU 。

解決方法device'値が'null'であることは、通常、トレーニング・プロセスが自動的に利用可能なGPU を使用するように設定されていることを意味します(これはデフォルトの動作です)。特定のGPU でトレーニングが行われるようにするには、.yaml 構成ファイルで、'device' 値をGPU のインデックス(例えば、最初のGPU の場合は '0' )に手動で設定します:

device: 0

これにより、トレーニングプロセスが指定されたGPU に明示的に割り当てられる。CPU でトレーニングしたい場合は、'device' を 'cpu' に設定する。

トレーニングの進捗状況を効果的にモニターするために、「runs」フォルダでログや指標を確認しましょう。

効果的なモデルトレーニングのための主な考慮事項

モデルトレーニングに関する問題に直面している場合、留意すべき点をいくつか挙げてみよう。

データセット・フォーマットとラベル

  • 重要性機械学習モデルの基礎は、学習させるデータの質と形式にある。
  • 推奨カスタム・データセットとそれに関連するラベルが、期待されるフォーマットに従っていることを確認してください。アノテーションが正確で高品質であることを確認することは極めて重要です。不正確なアノテーションや劣悪なアノテーションは、モデルの学習プロセスを狂わせ、予測不可能な結果を招く可能性があります。

モデルの収束

  • 重要性モデルの収束を達成することは、モデルが訓練データから十分に学習したことを保証する。
  • 推奨モデルを「ゼロから」トレーニングする場合、モデルが満足のいくレベルに収束することを確認することが重要です。そのためには、既存のモデルを微調整する場合よりも、より多くのエポックで、より長いトレーニング期間が必要になるかもしれません。

学習率とバッチサイズ

  • 重要である:これらのハイパーパラメータは、学習中にモデルがどのように重みを更新するかを決定する上で極めて重要な役割を果たす。
  • 推奨選択した学習レートとバッチ・サイズが特定のデータセットに最適かどうかを定期的に評価する。データセットの特性と調和していないパラメータは、モデルのパフォーマンスを妨げる可能性がある。

クラス分布

  • 重要性データセット内のクラスの分布は、モデルの予測傾向に影響を与えます。
  • 推奨データセット内のクラス分布を定期的に評価しましょう。クラスのバランスが悪いと、モデルがより優勢なクラスにバイアスをかけるリスクがあります。このバイアスは混同行列で明らかになることがあり、そこではモデルが多数派のクラスを優勢に予測するかもしれません。

事前訓練された重みとのクロスチェック

  • 重要性事前に訓練された重みを活用することで、特にデータが限られている場合に、モデルトレーニングの確かな出発点を提供することができる。
  • 推奨診断のステップとして、同じデータを使ってモデルをトレーニングしますが、事前にトレーニングした重みで初期化することを検討してください。このアプローチで混同行列がうまく形成された場合、「ゼロから」モデルはさらなるトレーニングや調整が必要かもしれないことを示唆します。

このセクションでは、モデルの予測中に直面する一般的な問題を取り上げる。

YOLO11 カスタムモデルでバウンディングボックスの予測を得る

問題カスタムYOLO11 モデルで予測を実行する場合、バウンディングボックス座標のフォーマットと視覚化に課題があります。

解決策

  • 座標形式 :YOLO11 では、 外接枠座標が絶対 ピ ク セル値で与え ら れます。こ れ ら を相対座標 (0 か ら 1 ま で) に変換す る には、 画像寸法で割 る 必要があ り ます。た と えば、 画像サ イ ズ を 640x640 と し ま し ょ う 。そうすると、次のようになります:
# Convert absolute coordinates to relative coordinates
x1 = x1 / 640  # Divide x-coordinates by image width
x2 = x2 / 640
y1 = y1 / 640  # Divide y-coordinates by image height
y2 = y2 / 640
  • ファイル名:ファイル名:予測している画像のファイル名を取得するには、予測ループ内の結果オブジェクトから直接画像ファイルパスにアクセスします。

YOLO11 予測におけるオブジェクトのフィルタリング

問題 Ultralytics ライブラリを使用してYOLO11 を実行する際、予測結果に特定のオブジェクトのみをフィルタリングして表示する方法に関する問題。

解決策特定のクラスを検出するには、class 引数を使用して、出力に含めたいクラスを指定します。例えば、車だけを検出する場合('cars'がクラス・インデックス2を持っていると仮定):

yolo task=detect mode=segment model=yolo11n-seg.pt source='path/to/car.mp4' show=True classes=2

高精度の指標を理解するYOLO11

問題 YOLO11 におけるボックス精度、マスク精度、混同行列精度の違いに関する混乱。

ソリューションボックス精度は、IoU(Intersection over Union)を指標として、予測されたバウンディングボックスの精度を、実際のグランドトゥルースボックスと比較して測定します。マスク精度は、ピクセル単位のオブジェクト分類において、予測されたセグメンテーションマスクとグランドトゥルースマスクの一致度を評価します。一方、コンフュージョン・マトリクスの精度は、すべてのクラスにわたる全体的な分類精度に焦点を当て、予測の幾何学的精度は考慮しません。クラス予測が間違っていても、バウンディング・ボックスが幾何学的に正確(true positive)であることがあり、これがボックス精度と混同行列精度の違いにつながることに注意することが重要です。これらのメトリクスは、モデルの性能の異なる側面を評価し、様々なタスクで異なる評価メトリクスの必要性を反映しています。

オブジェクトの寸法の抽出YOLO11

課題 YOLO11 において、検出されたオブジェクトの長さと高さを取得することが困難。特に、画像内で複数のオブジェクトが検出された場合。

解決方法バウンディングボックスの寸法を取得するには、まずUltralytics YOLO11 モデルを使って画像内のオブジェクトを予測する。次に、予測結果からバウンディングボックスの幅と高さの情報を抽出します。

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Specify the source image
source = "https://ultralytics.com/images/bus.jpg"

# Make predictions
results = model.predict(source, save=True, imgsz=320, conf=0.5)

# Extract bounding box dimensions
boxes = results[0].boxes.xywh.cpu()
for box in boxes:
    x, y, w, h = box
    print(f"Width of Box: {w}, Height of Box: {h}")

配備の課題

GPU 配備の問題

問題マルチGPU 環境でモデルをデプロイすると、予期しないメモリ使用やGPU間で一貫性のない結果など、予期しない動作が発生することがあります。

解決策デフォルトのGPU 初期化をチェックしてください。PyTorch のようないくつかのフレームワークは、指定された GPU に移行する前に、デフォルトのGPU でCUDA 操作を初期化するかもしれません。予期しないデフォルトの初期化を回避するには、デプロイと予測中にGPU を直接指定します。その後、GPU 利用率とメモリ使用量を監視するツールを使用して、リアルタイムで異常を特定します。また、フレームワークまたはライブラリの最新バージョンを使用していることを確認します。

モデル変換/エクスポートの問題

問題機械学習モデルを異なるフォーマットやプラットフォームに変換またはエクスポートする過程で、ユーザーがエラーや予期せぬ動作に遭遇する可能性がある。

解決策

  • 互換性のチェック:ライブラリとフレームワークのバージョンが互いに互換性があることを確認してください。バージョンが不一致の場合、変換時に予期せぬエラーが発生する可能性があります。
  • 環境のリセット:JupyterやColabのようなインタラクティブ環境を使用している場合、大幅な変更やインストールを行った後は、環境の再起動を検討してください。再スタートすることで、根本的な問題が解決することがあります。
  • 公式ドキュメント:変換に使用するツールやライブラリの公式ドキュメントを常に参照してください。多くの場合、モデルのエクスポートに関する具体的なガイドラインやベストプラクティスが記載されています。
  • コミュニティ・サポート:ライブラリやフレームワークの公式リポジトリで、他のユーザーから同様の問題が報告されていないか確認してください。ディスカッションのスレッドで、メンテナやコミュニティが解決策や回避策を提供しているかもしれません。
  • 定期的にアップデートする:ツールやライブラリの最新バージョンを使用していることを確認してください。開発者は、既知のバグを修正したり、機能を改善したりするアップデートを頻繁にリリースしています。
  • 段階的にテストする:完全な変換を行う前に、小規模なモデルやデータセットでプロセスをテストし、潜在的な問題を早期に特定する。

コミュニティとサポート

志を同じくする人々のコミュニティと関わることで、YOLO11 での経験と成功が大幅に向上する可能性がある。以下は、役に立つと思われるチャンネルやリソースです。

ヘルプを得るためのフォーラムとチャンネル

GitHub Issues:GitHub のYOLO11 リポジトリにはIssues タブがあり、質問やバグ報告、新機能の提案ができます。コミュニティとメンテナーはここで活発に活動しており、特定の問題で助けを得るには絶好の場所です。

Ultralytics Discordサーバー: Ultralytics にはDiscordサーバーがあり、他のユーザーや開発者と交流することができます。

公式文書とリソース

Ultralytics YOLO11 ドキュメント 公式ドキュメントでは、YOLO11 の包括的な概要と、インストール、使用方法、トラブルシューティングに関するガイドを提供しています。

これらのリソースは、YOLO11 プロジェクトのトラブルシューティングや改善、YOLO11 コミュニティの他の人々とのつながりのための強固な基盤となるはずです。

結論

トラブルシューティングはどのような開発プロセスにおいても不可欠な部分であり、正しい知識を身につけることで、問題解決に費やす時間と労力を大幅に削減することができる。本ガイドは、Ultralytics エコシステム内のYOLO11 モデルのユーザーが直面する最も一般的な課題に対処することを目的としています。これらの一般的な問題を理解し対処することで、プロジェクトをより円滑に進め、コンピュータビジョンタスクでより良い結果を得ることができます。

Ultralytics コミュニティは貴重なリソースであることを忘れないでください。仲間の開発者や専門家と関わることで、標準的な文書ではカバーされていないような、さらなる洞察や解決策を得ることができます。コミュニティの集合知に貢献するために、常に学び、実験し、経験を共有しましょう。

ハッピー・トラブルシューティング

よくあるご質問

YOLO11 でのインストール・エラーを解決するには?

インストールエラーは、互換性の問題や依存関係の欠落が原因であることがよくあります。Python 3.8以降を使用し、PyTorch 1.8以降がインストールされていることを確認してください。コンフリクトを避けるために仮想環境を使用することは有益です。ステップバイステップのインストールガイドについては、公式インストールガイドに従ってください。インポートエラーが発生した場合は、新規インストールを試すか、ライブラリを最新バージョンに更新してください。

GPU でYOLO11 モデルのトレーニングが遅いのはなぜですか?

バッチサイズが大きいかメモリが不十分なため、1つのGPU でのトレーニングが遅くなる可能性があります。トレーニングを高速化するには、複数のGPUを使用します。システムに複数のGPUが利用可能であることを確認し .yaml 設定ファイルでGPUの数を指定します、 gpus: 4.バッチサイズを適宜大きくして、メモリ制限を超えることなくGPUをフル活用します。コマンド例:

model.train(data="/path/to/your/data.yaml", batch=32, multi_scale=True)

私のYOLO11 モデルがGPU でトレーニングしていることを確認するにはどうすればよいですか?

トレーニングログに「device」の値が「null」と表示されている場合は、通常、トレーニングプロセスが自動的に利用可能なGPU を使用するように設定されていることを意味します。特定のGPU を明示的に割り当てるには、'device' 値を次のように設定します。 .yaml 設定ファイルを参照してください。例えば

device: 0

これにより、トレーニングプロセスが最初のGPU に設定されます。を参照してください。 nvidia-smi コマンドでCUDA のセットアップを確認する。

YOLO11 、モデルトレーニングの進捗状況をどのように確認できますか?

トレーニングの進捗状況の追跡と可視化は、TensorBoardのようなツールで効率的に管理できる、 CometUltralytics HUBのようなツールで効率的に管理できる。これらのツールでは、損失、精度リコール、mAPなどのメトリクスを記録し、可視化することができる。これらのメトリクスに基づいて早期停止を実施することで、より良いトレーニング成果を達成することもできる。

YOLO11 が私のデータセット形式を認識しない場合、どうすればよいですか?

データセットとラベルが期待されるフォーマットに適合していることを確認する。注釈が正確で高品質であることを確認する。何らかの問題に直面した場合は、「データ収集と注釈」のベストプラクティスを参照してください。データセット固有のガイダンスについては、ドキュメントのデータセットセクションをご覧ください。

📅作成:1年前 ✏️更新しました 6日前

コメント