コンテンツにスキップ

YOLO に関する一般的な問題のトラブルシューティング

YOLO よくある問題 画像

はじめに

このガイドは、Ultralytics プロジェクトで YOLO11 を使用する際に発生する一般的な問題のトラブルシューティングを行うための包括的な支援となります。適切なガイダンスがあれば、これらの問題を簡単に解決でき、プロジェクトが不必要な遅延なく順調に進むようになります。



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

よくある問題

インストールエラー

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

  • 推奨されているように、Python 3.8以降を使用しています。
  • 正しいバージョンのPyTorch(1.8以降)がインストールされていることを確認してください。
  • 競合を避けるために、仮想環境の使用を検討してください。
  • 公式インストールガイドに従って、手順を進めてください。

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

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

    • フレッシュインストール:予期しない問題を解決するには、フレッシュインストールから始めることが役立つ場合があります。特にUltralyticsのようなライブラリでは、アップデートによってファイルツリー構造や機能が変更される可能性があります。

    • Update Regularly: ライブラリの最新バージョンを使用していることを確認してください。古いバージョンは、最近のアップデートと互換性がない可能性があり、潜在的な競合や問題につながる可能性があります。

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

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

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

  • 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を使用するように設定されています。

    • 環境のアクティベーション: 必要なすべてのパッケージがインストールされている正しい環境にいることを確認してください。

    • Update Your Packages: 古いパッケージはGPUと互換性がない可能性があります。常に最新の状態にしてください。

    • プログラム構成: プログラムまたはコードが GPU 使用を指定しているかどうかを確認します。YOLO11 では、これは設定または構成にある可能性があります。

モデルのトレーニングに関する問題

このセクションでは、トレーニング中に直面する一般的な問題と、それぞれの説明と解決策について説明します。

構成設定の検証

問題: 以下の設定ファイル内の構成設定が正しいかどうか不明な場合 .yaml ファイルが、モデルのトレーニング中に正しく適用されているかを確認します。

ソリューション: .yaml fileは、以下を使用する場合に適用する必要があります。 model.train() 関数。これらの設定が正しく適用されるようにするには、次の手順に従ってください。

  • あなたの環境へのパスが正しいことを確認してください。 .yaml 構成ファイルが正しいことを確認します。
  • 必ずパスを渡してください .yaml ファイルと同様に data 呼び出す際の引数 model.train())を以下に示します。

    model.train(data="/path/to/your/data.yaml", batch=4)
    

複数のGPUによる学習の高速化

問題: 単一のGPUでのトレーニングが遅く、複数のGPUを使用してプロセスを高速化したい。

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

  • 複数のGPUが利用可能であることを確認してください。
  • 使用する GPU の数を指定するには、.yaml 構成ファイルを変更します(例: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を実行するときに、予測結果で特定のオブジェクトのみをフィルタリングして表示する方法に関する問題に直面しています。

解決策: 特定のクラスを検出するには、classes引数を使用して、出力に含めるクラスを指定します。たとえば、車のみを検出するには(「車」のクラスインデックスが2であると仮定します)。

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

YOLO11における適合率の指標について

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

解決策: Box precisionは、IoU(Intersection over Union)を指標として使用して、予測されたバウンディングボックスの精度を実際の正解ボックスと比較して測定します。Mask precisionは、ピクセル単位のオブジェクト分類における予測されたセグメンテーションマスクと正解マスクの一致を評価します。一方、混同行列precisionは、すべてのクラスにわたる全体的な分類精度に焦点を当てており、予測の幾何学的精度は考慮しません。バウンディングボックスは、クラスの予測が間違っていても幾何学的に正確(真陽性)である可能性があることに注意することが重要です。これにより、box precisionと混同行列precisionの間に違いが生じます。これらの指標は、モデルのパフォーマンスの異なる側面を評価し、さまざまなタスクで異なる評価指標が必要になることを反映しています。

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

問題:YOLO11で検出されたオブジェクトの長さと高さを取得することの難しさ。特に、1つの画像で複数のオブジェクトが検出された場合。

解決策: バウンディングボックスの寸法を取得するには、まず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 Server: Ultralyticsには、他のユーザーや開発者と交流できるDiscordサーバーがあります。

公式ドキュメントとリソース

Ultralytics YOLO11 Docs: 公式ドキュメントには、YOLO11の包括的な概要と、インストール、使用法、トラブルシューティングに関するガイドが記載されています。

これらのリソースは、YOLO11プロジェクトのトラブルシューティングと改善、およびYOLO11コミュニティの他のユーザーとの連携のための確固たる基盤を提供するはずです。

結論

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

Ultralyticsコミュニティは貴重なリソースであることを忘れないでください。仲間の開発者や専門家と交流することで、標準的なドキュメントではカバーされていない追加の洞察や解決策が得られる可能性があります。常に学び、実験し、経験を共有して、コミュニティの集合知に貢献してください。

トラブルシューティングをお楽しみください!

よくある質問

YOLO11のインストールエラーを解決するにはどうすればよいですか?

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

単一のGPUでYOLO11モデルの学習が遅いのはなぜですか?

バッチサイズが大きい、またはメモリが不足している場合、単一の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モデルのトレーニングの進捗状況を監視および追跡するにはどうすればよいですか?

トレーニングの進捗状況の追跡と可視化は、TensorBoardCometUltralytics HUBなどのツールを通じて効率的に管理できます。これらのツールを使用すると、損失、精度再現率、mAPなどのメトリクスをログに記録して可視化できます。これらのメトリクスに基づいて早期停止を実装すると、より良いトレーニング結果を得るのにも役立ちます。

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

データセットとラベルが期待される形式に準拠していることを確認してください。アノテーションが正確で高品質であることを検証してください。問題が発生した場合は、ベストプラクティスについてデータ収集とアノテーションガイドを参照してください。データセット固有のガイダンスについては、ドキュメントのデータセットセクションを確認してください。



📅 1年前に作成 ✏️ 2か月前に更新

コメント