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

はじめに
このガイドは、UltralyticsプロジェクトでYOLO26を使用する際に遭遇する一般的な問題のトラブルシューティングに役立つ包括的な支援となります。適切なガイダンスがあれば、これらの問題を簡単に解決でき、プロジェクトが不必要な遅延なくtrackに留まることを保証します。
見る: Ultralytics YOLO26 よくある問題 | インストールエラー、モデルトレーニングの問題
よくある問題
インストールエラー
インストールエラーは、バージョンの非互換性、依存関係の欠落、または環境設定の誤りなど、さまざまな理由で発生する可能性があります。まず、以下を確認してください:
- 推奨されているように、Python 3.8以降を使用しています。
- 正しいバージョンのPyTorch(1.8以降)がインストールされていることを確認してください。
- 競合を避けるために、仮想環境の使用を検討してください。
- 公式インストールガイドに従って、手順を進めてください。
さらに、ユーザーが遭遇した一般的なインストール問題と、それぞれの解決策を以下に示します。
インポートエラーまたは依存関係の問題 - YOLO26のインポート中にエラーが発生する場合、または依存関係に関する問題が発生している場合は、以下のトラブルシューティング手順を検討してください。
フレッシュインストール:予期しない問題を解決するには、フレッシュインストールから始めることが役立つ場合があります。特にUltralyticsのようなライブラリでは、アップデートによってファイルツリー構造や機能が変更される可能性があります。
Update Regularly: ライブラリの最新バージョンを使用していることを確認してください。古いバージョンは、最近のアップデートと互換性がない可能性があり、潜在的な競合や問題につながる可能性があります。
依存関係の確認: 必要な依存関係がすべて正しくインストールされ、互換性のあるバージョンであることを確認します。
変更点の確認: 以前のバージョンを最初にクローンまたはインストールした場合、重要なアップデートがライブラリの構造または機能に影響を与える可能性があることに注意してください。常に公式ドキュメントまたは変更ログを参照して、主要な変更を理解してください。
ライブラリと依存関係を最新の状態に保つことは、スムーズでエラーのない体験のために非常に重要であることを忘れないでください。
GPUでのYOLO26の実行 - GPUでYOLO26を実行する際に問題が発生している場合は、以下のトラブルシューティング手順を検討してください。
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の互換性を確認する: Support for GPU architectures earlier than Turing and compute capability (SM) < 7.5 was abandoned since cuDNN 9.11.0. So if you have an older GPU - like 1080Ti - you may have to use a version of PyTorch built against an older version of CUDA/cuDNN. You can check this by running
import torch; cap = torch.cuda.get_device_capability(0) if torch.cuda.is_available() else (0, 0); cudnn = torch.backends.cudnn.version() or 0; ok = "not compatible" if cudnn >= 91100 and (cap[0] < 7 or (cap[0] == 7 and cap[1] < 5)) else "should be ok"; print(f"Compute capability: SM {cap[0]}.{cap[1]}, cuDNN: {cudnn} => {ok}")環境のアクティベーション: 必要なすべてのパッケージがインストールされている正しい環境にいることを確認してください。
Update Your Packages: 古いパッケージはGPUと互換性がない可能性があります。常に最新の状態にしてください。
プログラム設定: プログラムまたはコードがGPUの使用を指定しているか確認してください。YOLO26では、これは設定または構成に含まれている可能性があります。
モデルのトレーニングに関する問題
このセクションでは、トレーニング中に直面する一般的な問題と、それぞれの説明と解決策について説明します。
構成設定の検証
問題: 以下の設定ファイル内の構成設定が正しいかどうか不明な場合 .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が利用可能であることを確認してください。
- 修正する
.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)
継続的監視パラメータ
問題: 損失に加えて、トレーニング中に継続的に監視する必要があるパラメータを知りたい。
解決策: 損失は監視すべき重要なメトリクスですが、モデルの性能最適化のためには他のメトリクスも追跡することが不可欠です。トレーニング中に監視すべき主要なメトリクスには、以下が含まれます。
- 適合率
- 再現率
- Mean Average Precision(mAP)
これらのメトリクスには、トレーニングログからアクセスできるほか、TensorBoardやwandbなどのツールを使用して可視化することも可能です。これらのメトリクスに基づいて早期停止を実装することで、より良い結果を得ることができます。
トレーニングの進捗状況を追跡するためのツール
問題: トレーニングの進捗状況を追跡するためのツールの推奨事項を探しています。
解決策: トレーニングの進捗状況を追跡し、可視化するには、以下のツールの使用を検討できます。
- TensorBoard: TensorBoardは、損失、精度など、トレーニングメトリクスを視覚化するための一般的な選択肢です。YOLO26のトレーニングプロセスと統合できます。
- Comet: Cometは、実験のtrackと比較のための広範なツールキットを提供します。メトリクス、ハイパーパラメータ、さらにはモデルの重みをtrackできます。YOLOモデルとの統合も簡単で、実験サイクル全体の完全な概要を提供します。
- Ultralytics Platform: Ultralytics Platformは、YOLOモデルを追跡するための専門的な環境を提供し、メトリクス、データセットの管理、さらにはチームとの共同作業を可能にするワンストッププラットフォームを提供します。YOLOに特化しているため、よりカスタマイズされた追跡オプションを提供します。
これらのツールはそれぞれ独自の利点があるため、選択する際にはプロジェクトの具体的なニーズを考慮するとよいでしょう。
GPUでトレーニングが行われているか確認する方法
問題: トレーニングログの「device」の値が「null」であり、GPUでトレーニングが行われているかどうかが不明。
解決策: 「device」の値が「null」であることは、通常、トレーニングプロセスが利用可能なGPUを自動的に使用するように設定されていることを意味し、これはデフォルトの動作です。特定のGPUでトレーニングが行われるようにするには、.yaml設定ファイルで「device」の値をGPUインデックス(例: 最初のGPUの場合は「0」)に手動で設定できます。
device: 0
これにより、トレーニングプロセスが指定されたGPUに明示的に割り当てられます。CPUでトレーニングする場合は、'device'を'cpu'に設定してください。
トレーニングの進捗状況を効果的に監視するために、「runs」フォルダーのログとメトリックに注意してください。
効果的なモデル学習のための重要な考慮事項
モデルのトレーニングに関する問題に直面している場合に、留意すべき点をいくつかご紹介します。
データセットの形式とラベル
- 重要性: あらゆる機械学習モデルの基盤は、トレーニングに使用されるデータの品質と形式にあります。
- 推奨事項: カスタムデータセットとそれに関連付けられたラベルが、予期される形式に準拠していることを確認してください。注釈が正確で高品質であることを検証することが重要です。不正確または標準以下の注釈は、モデルの学習プロセスを脱線させ、予測不可能な結果につながる可能性があります。
モデルの収束
- 重要性: モデルの収束を達成することで、モデルがトレーニングデータから十分に学習したことを保証します。
- 推奨事項: モデルを「ゼロから」トレーニングする場合、モデルが満足のいくレベルの収束に達していることを確認することが重要です。これには、既存のモデルを微調整する場合と比較して、より長いトレーニング期間、つまりより多くのエポックが必要になる場合があります。
学習率とバッチサイズ
- 重要性: これらのハイパーパラメータは、トレーニング中にモデルがその重みを更新する方法を決定する上で極めて重要な役割を果たします。
- 推奨事項: 選択した学習率とバッチサイズが、特定のデータセットに最適かどうかを定期的に評価します。データセットの特性と調和していないパラメータは、モデルのパフォーマンスを妨げる可能性があります。
クラス分布
- 重要性: データセット内のクラスの分布は、モデルの予測傾向に影響を与える可能性があります。
- 推奨事項: データセット内のクラスの分布を定期的に評価します。クラスの不均衡がある場合、モデルがより一般的なクラスに偏るリスクがあります。この偏りは、モデルが主に多数派のクラスを予測する混同行列で明らかになる可能性があります。
事前学習済みウェイトとのクロスチェック
- 重要性: 事前学習済みの重みを活用することで、特にデータが限られている場合に、モデルトレーニングの確固たる出発点を提供できます。
- 推奨事項: 診断手順として、同じデータを使用してモデルをトレーニングすることを検討してください。ただし、事前トレーニング済みの重みで初期化します。このアプローチで適切な形式の混同行列が得られる場合は、「ゼロから」モデルに追加のトレーニングまたは調整が必要になる可能性があることを示唆している可能性があります。
モデルの予測に関する問題
このセクションでは、モデル予測時に直面する一般的な問題について説明します。
YOLO26カスタムモデルでのバウンディングボックス予測の取得
問題: カスタムYOLO26モデルで予測を実行する際、バウンディングボックス座標の形式と視覚化に課題があります。
解決策:
座標形式: YOLO26は、バウンディングボックス座標を絶対ピクセル値で提供します。これらを相対座標(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ファイル名:予測対象の画像のファイル名を取得するには、予測ループ内の結果オブジェクトから直接イメージファイルパスにアクセスします。
YOLO26予測におけるオブジェクトのフィルタリング
問題: Ultralyticsライブラリを使用してYOLO26を実行する際、予測結果で特定のオブジェクトのみをフィルタリングして表示する方法に問題があります。
解決策: 特定のクラスをdetectするには、出力に含めたいクラスを指定するためにclasses引数を使用します。例えば、車のみをdetectするには(「車」のクラスインデックスが2であると仮定して):
yolo task=detect mode=segment model=yolo26n-seg.pt source='path/to/car.mp4' show=True classes=2
YOLO26における精度メトリクスの理解
問題: YOLO26におけるボックス精度、マスク精度、および混同行列精度の違いに関する混乱。
解決策: ボックス精度は、IoU (Intersection over Union) をメトリクスとして使用し、予測されたバウンディングボックスと実際の正解ボックスの精度を測定します。マスク精度は、ピクセル単位の物体分類において、予測されたセグメンテーションマスクと正解マスクの一致度を評価します。一方、混同行列精度は、すべてのクラスにおける全体的な分類精度に焦点を当て、予測の幾何学的精度は考慮しません。クラス予測が間違っていても、バウンディングボックスが幾何学的に正確(真陽性)である場合があり、これがボックス精度と混同行列精度の違いにつながることに注意することが重要です。これらのメトリクスは、モデルの性能の異なる側面を評価し、様々なタスクで異なる評価メトリクスが必要であることを反映しています。
YOLO26におけるオブジェクト寸法の抽出
問題: YOLO26で検出されたオブジェクトの長さと高さを取得するのが難しい、特に画像内で複数のオブジェクトが検出された場合。
解決策: バウンディングボックスの寸法を取得するには、まずUltralytics YOLO26モデルを使用して画像内のオブジェクトを予測します。次に、予測結果からバウンディングボックスの幅と高さの情報を抽出します。
from ultralytics import YOLO
# Load a pretrained YOLO26 model
model = YOLO("yolo26n.pt")
# Specify the source image
source = "https://ultralytics.com/images/bus.jpg"
# Make predictions
results = model.predict(source, save=True, imgsz=320, conf=0.25)
# 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のようなインタラクティブな環境を使用している場合は、大幅な変更やインストールを行った後、環境を再起動することを検討してください。再起動することで、根本的な問題を解決できる場合があります。
- 公式ドキュメント: 変換に使用しているツールまたはライブラリの公式ドキュメントを必ず参照してください。モデルのエクスポートに関する具体的なガイドラインとベストプラクティスが記載されていることがよくあります。
- コミュニティサポート:ライブラリまたはフレームワークの公式リポジトリで、他のユーザーから報告された同様の問題を確認してください。メンテナまたはコミュニティが、ディスカッションスレッドで解決策または回避策を提供している場合があります。
- 定期的な更新:ツールまたはライブラリの最新バージョンを使用していることを確認してください。開発者は、既知のバグを修正したり、機能を改善したりするアップデートを頻繁にリリースします。
- 段階的なテスト:本格的な変換を実行する前に、より小さなモデルまたはデータセットでプロセスをテストし、潜在的な問題を早期に特定します。
コミュニティとサポート
志を同じくする人々のコミュニティと交流することは、YOLO26での作業における経験と成功を大幅に向上させることができます。以下に、役立つ可能性のあるチャネルとリソースをいくつか示します。
ヘルプを得るためのフォーラムとチャネル
GitHub Issues: GitHub上のYOLO26リポジトリにはIssuesタブがあり、質問をしたり、バグを報告したり、新機能を提案したりできます。コミュニティとメンテナーはここで活発に活動しており、特定の問題について助けを得るのに最適な場所です。
Ultralytics Discord Server: Ultralyticsには、他のユーザーや開発者と交流できるDiscordサーバーがあります。
公式ドキュメントとリソース
Ultralytics YOLO26 ドキュメント: 公式ドキュメントは、YOLO26の包括的な概要を、インストール、使用法、およびトラブルシューティングに関するガイドとともに提供します。
これらのリソースは、YOLO26プロジェクトのトラブルシューティングと改善のための強固な基盤を提供し、YOLO26コミュニティの他の人々とのつながりも提供します。
結論
トラブルシューティングは、あらゆる開発プロセスにおいて不可欠な部分であり、適切な知識を備えることで、問題解決に費やす時間と労力を大幅に削減できます。このガイドは、Ultralyticsエコシステム内のYOLO26モデルのユーザーが直面する最も一般的な課題に対処することを目的としています。これらの一般的な問題を理解し、対処することで、プロジェクトのよりスムーズな進行を確保し、コンピュータービジョンタスクでより良い結果を達成できます。
Ultralyticsコミュニティは貴重なリソースであることを忘れないでください。仲間の開発者や専門家と交流することで、標準的なドキュメントではカバーされていない追加の洞察や解決策が得られる可能性があります。常に学び、実験し、経験を共有して、コミュニティの集合知に貢献してください。
よくある質問
YOLO26のインストールエラーを解決するにはどうすればよいですか?
インストールエラーは、互換性の問題や依存関係の欠如が原因であることがよくあります。python 3.8 以降を使用し、PyTorch 1.8 以降がインストールされていることを確認してください。競合を避けるために、仮想環境を使用することをお勧めします。ステップごとのインストールガイドについては、公式インストールガイドに従ってください。インポートエラーが発生した場合は、フレッシュインストールを試すか、ライブラリを最新バージョンにアップデートしてください。
単一のGPUでYOLO26モデルのトレーニングが遅いのはなぜですか?
バッチサイズが大きい、またはメモリが不足している場合、単一のGPUでのトレーニングは遅くなる可能性があります。トレーニングを高速化するには、複数のGPUを使用してください。システムに複数のGPUが搭載されていることを確認し、 .yaml GPU の数を指定するための構成ファイル(例: gpus: 4。メモリ制限を超えずにGPUを最大限に活用するために、バッチサイズを適宜増やしてください。コマンド例:
model.train(data="/path/to/your/data.yaml", batch=32)
YOLO26モデルがGPUでトレーニングされていることを確認するにはどうすればよいですか?
トレーニングログで「device」の値が「null」と表示される場合、通常、トレーニングプロセスは利用可能な GPU を自動的に使用するように設定されていることを意味します。特定の GPU を明示的に割り当てるには、「device」の値を .yaml 構成ファイル。例えば:
device: 0
これにより、トレーニングプロセスが最初のGPUに設定されます。以下を参照してください nvidia-smi コマンドを使用して、CUDAのセットアップを確認します。
YOLO26モデルのトレーニング進捗状況を監視およびtrackするにはどうすればよいですか?
トレーニングの進捗状況の追跡と視覚化は、TensorBoard、Comet、Ultralytics Platformなどのツールを通じて効率的に管理できます。これらのツールを使用すると、損失、精度、再現率、mAPなどのメトリクスをログに記録し、視覚化できます。これらのメトリクスに基づいて早期停止を実装することも、より良いトレーニング結果を達成するのに役立ちます。
YOLO26がデータセット形式を認識しない場合、どうすればよいですか?
データセットとラベルが期待される形式に準拠していることを確認してください。アノテーションが正確で高品質であることを検証してください。問題が発生した場合は、ベストプラクティスについてデータ収集とアノテーションガイドを参照してください。データセット固有のガイダンスについては、ドキュメントのデータセットセクションを確認してください。