Link to this sectionYOLOに関する一般的な問題のトラブルシューティング#
Link to this sectionはじめに#
このガイドは、UltralyticsプロジェクトでYOLO26を使用する際に発生する一般的な問題のトラブルシューティングを行うための包括的なサポートとして役立ちます。適切なガイダンスがあれば、こうした問題を簡単に解決でき、プロジェクトの不要な遅延を防ぎ、計画通りに進めることができます。
Watch: Ultralytics YOLO26 Common Issues | Installation Errors, Model Training Issues
Link to this section一般的な問題#
Link to this sectionインストールエラー#
インストールエラーは、互換性のないバージョン、依存関係の欠落、不適切な環境設定など、さまざまな理由で発生する可能性があります。まずは、以下を確認してください。
- 推奨されているPython 3.8以降を使用していること。
- 正しいバージョンのPyTorch(1.8以降)がインストールされていることを確認すること。
- 競合を避けるために仮想環境の使用を検討すること。
- 公式インストールガイドにステップバイステップで従うこと。
さらに、ユーザーが遭遇した一般的なインストール問題と、それぞれの解決策を以下に示します。
-
インポートエラーまたは依存関係の問題 - YOLO26のインポート中にエラーが発生する場合や、依存関係に関連する問題がある場合は、以下のトラブルシューティング手順を検討してください。
-
クリーンインストール: 場合によっては、クリーンインストールを行うことで予期しない問題が解決することがあります。特に、アップデートによってファイルツリー構造や機能が変更される可能性があるUltralyticsのようなライブラリでは有効です。
-
定期的なアップデート: ライブラリの最新バージョンを使用していることを確認してください。古いバージョンは最近のアップデートと互換性がない可能性があり、潜在的な競合や問題を引き起こす可能性があります。
-
依存関係の確認: 必要なすべての依存関係が正しくインストールされており、互換性のあるバージョンであることを確認してください。
-
変更点の確認: 初期の古いバージョンをクローンまたはインストールした場合、重要なアップデートによってライブラリの構造や機能が影響を受ける可能性があることに注意してください。主要な変更点を理解するために、常に公式ドキュメントや変更履歴を参照してください。
-
ライブラリと依存関係を最新の状態に保つことは、スムーズでエラーのない体験のために非常に重要であることを忘れないでください。
-
-
GPUでのYOLO26の実行 - GPUでYOLO26を実行する際に問題が発生する場合は、以下のトラブルシューティング手順を検討してください。
-
CUDAの互換性とインストールの確認: GPUがCUDAに対応していること、およびCUDAが正しくインストールされていることを確認してください。
nvidia-smiコマンドを使用して、NVIDIA GPUの状態とCUDAバージョンを確認します。 -
PyTorchとCUDAの統合の確認: Pythonターミナルで
import torch; print(torch.cuda.is_available())を実行し、PyTorchがCUDAを利用できることを確認してください。'True'が返されれば、PyTorchはCUDAを使用する設定になっています。 -
GPU互換性の確認: cuDNN 9.11.0以降、Turing以前のGPUアーキテクチャおよび演算能力(SM) < 7.5のサポートは廃止されました。そのため、1080Tiなどの古いGPUを使用している場合は、古いバージョンのCUDA/cuDNNに対してビルドされたPyTorchのバージョンを使用する必要があるかもしれません。これを確認するには、以下を実行してください:
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}") -
環境のアクティベーション: 必要なパッケージがすべてインストールされている正しい環境にいることを確認してください。
-
パッケージのアップデート: 古いパッケージはGPUと互換性がない可能性があります。常に最新の状態に保ってください。
-
プログラム設定: プログラムやコードでGPUの使用が指定されているかを確認してください。YOLO26では、これは設定や構成ファイル内にある場合があります。
-
Link to this sectionモデルトレーニングの問題#
このセクションでは、トレーニング中に直面する一般的な問題とその説明、および解決策について説明します。
Link to this section設定の確認#
問題: モデルトレーニング中に .yaml ファイルの設定が正しく適用されているかどうかわからない。
解決策: .yaml ファイルの設定は、 model.train() 関数を使用するときに適用される必要があります。これらの設定が正しく適用されていることを確認するには、以下の手順に従ってください。
-
.yaml設定ファイルへのパスが正しいことを確認します。 -
Make sure you pass the path to your
.yamlfile as thedataargument when callingmodel.train(), as shown below:model.train(data="/path/to/your/data.yaml", batch=4)
Link to this sectionマルチGPUによるトレーニングの加速#
問題: シングルGPUではトレーニングが遅く、複数のGPUを使用してプロセスを高速化したい。
解決策: batch size を増やすことでトレーニングを加速できますが、GPUのメモリ容量を考慮することが重要です。複数のGPUでトレーニングを高速化するには、以下の手順に従ってください。
-
複数のGPUが利用可能であることを確認します。
-
device引数をGPUインデックスのリスト(例:device=[0,1,2,3])に設定します。 -
メモリ制限を超えずに複数の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, device=[0, 1, 2, 3])
Link to this section継続的な監視パラメータ#
問題: loss以外に、トレーニング中に継続的に監視すべきパラメータを知りたい。
解決策: lossは監視すべき重要な指標ですが、モデルのパフォーマンス最適化のために他の指標を追跡することも不可欠です。トレーニング中に監視すべき重要な指標には以下が含まれます。
- 適合率
- 再現率
- Mean Average Precision (mAP)
これらの指標は、トレーニングログからアクセスするか、TensorBoardやwandbなどの可視化ツールを使用して取得できます。これらの指標に基づいてEarly Stoppingを実装することで、より良い結果を得ることができます。
Link to this sectionトレーニングの進捗を追跡するツール#
問題: トレーニングの進捗を追跡するためのツールについて推奨事項を探している。
解決策: トレーニングの進捗を追跡・可視化するには、以下のツールを検討してください。
- TensorBoard: TensorBoardは、lossやaccuracyなどのトレーニング指標を可視化するための人気のある選択肢です。YOLO26のトレーニングプロセスと統合できます。
- Comet: Cometは、実験の追跡と比較のための広範なツールキットを提供します。指標、ハイパーパラメータ、さらにはモデルの重みまで追跡できます。YOLOモデルとの統合も簡単で、実験サイクルの全体像を把握できます。
- Ultralytics Platform: Ultralytics Platformは、YOLOモデルを追跡するための専用環境を提供しており、指標やデータセットの管理、チームとのコラボレーションを一元的に行えるプラットフォームです。YOLOに特化しているため、よりカスタマイズされた追跡オプションが提供されます。
これらのツールにはそれぞれ独自の利点があるため、選択する際はプロジェクトの特定のニーズを考慮することをお勧めします。
Link to this sectionトレーニングがGPUで行われているか確認する方法#
問題: トレーニングログの 'device' 値が 'null' であり、GPUでトレーニングが行われているかどうかわからない。
解決策: 'device' 値が 'null' であるということは、トレーニングプロセスが利用可能なGPUを自動的に使用するように設定されていることを意味します(これがデフォルトの動作です)。特定のGPUでトレーニングが行われるようにするには、.yaml設定ファイルで 'device' 値を手動でGPUインデックス(例:最初のGPUなら '0')に設定します。
device: 0これにより、トレーニングプロセスが明示的に指定されたGPUに割り当てられます。CPUでトレーニングしたい場合は、 'device' を 'cpu' に設定してください。
トレーニングの進捗を効果的に監視するために、 'runs' フォルダ内のログと指標を注視してください。
Link to this section効果的なモデルトレーニングのための重要な考慮事項#
モデルトレーニングに関連する問題に直面している場合は、以下の点に留意してください。
データセットの形式とラベル
- 重要性: すべてのmachine learningモデルの基盤は、学習に使用されるデータの品質と形式にあります。
- 推奨事項: カスタムデータセットとその関連ラベルが期待される形式に従っていることを確認してください。アノテーションが正確であり、高品質であることを検証することが重要です。不正確または低品質なアノテーションはモデルの学習プロセスを妨げ、予測できない結果につながる可能性があります。
モデルの収束
- 重要性: モデルの収束を達成することで、モデルがtraining dataから十分に学習したことを保証できます。
- 推奨事項: モデルを「ゼロから」トレーニングする場合、モデルが満足のいく収束レベルに達することが重要です。これには、既存のモデルをファインチューニングする場合と比較して、より多くのepochsを使用したより長いトレーニング期間が必要になる場合があります。
Learning Rate とバッチサイズ
- 重要性: これらのハイパーパラメータは、トレーニング中にモデルがどのように重みを更新するかを決定する上で極めて重要な役割を果たします。
- 推奨事項: 選択した学習率とバッチサイズが特定のデータセットにとって最適であるかどうかを定期的に評価してください。データセットの特性と調和していないパラメータは、モデルのパフォーマンスを低下させる可能性があります。
クラス分布
- 重要性: データセット内のクラスの分布は、モデルの予測傾向に影響を与える可能性があります。
- 推奨事項: データセット内のクラス分布を定期的に評価してください。クラスの不均衡がある場合、モデルがより頻繁なクラスに対してバイアスを持つリスクがあります。このバイアスは混同行列に現れる可能性があり、モデルが過半数のクラスを主に予測するようになるかもしれません。
事前学習済みウェイトとのクロスチェック
- 重要性: 事前学習済みウェイトを活用することで、特にデータが限られている場合に、モデルトレーニングの堅実な出発点を提供できます。
- 推奨事項: 診断ステップとして、同じデータを使用してモデルをトレーニングし、事前学習済みのウェイトで初期化することを検討してください。このアプローチで正常な混同行列が得られる場合、「ゼロから」トレーニングしたモデルにはさらなるトレーニングや調整が必要である可能性があることを示唆しています。
Link to this sectionモデル予測に関連する問題#
このセクションでは、モデル予測中に発生する一般的な問題について説明します。
Link to this sectionYOLO26カスタムモデルでバウンディングボックス予測を取得する#
問題: カスタム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 -
ファイル名: 予測中の画像のファイル名を取得するには、予測ループ内のresultオブジェクトから直接画像ファイルパスにアクセスしてください。
Link to this sectionYOLO26予測におけるオブジェクトのフィルタリング#
問題: Ultralyticsライブラリを使用してYOLO26を実行する際、予測結果の中で特定のオブジェクトのみをフィルタリングして表示する方法に問題がある。
解決策: 特定のクラスを検出するには、classes引数を使用して出力に含めたいクラスを指定します。例えば、車のみを検出するには( 'cars' がクラスインデックス2であると仮定):
yolo task=segment mode=predict model=yolo26n-seg.pt source='path/to/car.mp4' show=True classes=2Link to this sectionYOLO26における精度指標の理解#
問題: YOLO26におけるボックス精度、マスク精度、およびconfusion matrix精度の違いに関する混乱。
解決策: ボックス精度は、IoU(Intersection over Union)を指標として使用し、予測されたバウンディングボックスの精度を実際の正解ボックスと比較して測定します。マスク精度は、予測されたセグメンテーションマスクと正解マスクの一致をピクセル単位のオブジェクト分類で評価します。一方、混同行列の精度は、すべてのクラスにわたる全体的な分類精度に焦点を当てており、予測の幾何学的な精度は考慮されません。bounding boxは、クラス予測が間違っていても幾何学的に正確(真陽性)である可能性があり、ボックス精度と混同行列の精度との間に差異が生じることに注意することが重要です。これらの指標はモデルのパフォーマンスの異なる側面を評価するものであり、さまざまなタスクにおいて異なる評価指標が必要であることを反映しています。
Link to this sectionYOLO26におけるオブジェクト寸法の抽出#
問題: 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}")Link to this sectionデプロイメントの課題#
Link to this sectionGPUデプロイメントの問題#
問題: マルチGPU環境でモデルをデプロイすると、予期しないメモリ使用量やGPU間での一貫性のない結果など、予期しない動作が発生することがあります。
解決策: デフォルトのGPU初期化を確認してください。PyTorchなどの一部のフレームワークでは、指定されたGPUに移行する前に、デフォルトのGPUでCUDA操作を初期化する場合があります。予期しないデフォルトの初期化を回避するには、デプロイメントと予測中にGPUを直接指定してください。次に、ツールを使用してGPU使用率とメモリ使用量を監視し、リアルタイムで異常を特定してください。また、フレームワークまたはライブラリの最新バージョンを使用していることを確認してください。
Link to this sectionモデル変換/エクスポートの問題#
問題: 機械学習モデルをさまざまな形式やプラットフォームに変換またはエクスポートするプロセス中に、ユーザーはエラーや予期しない動作に遭遇することがあります。
解決策:
- 互換性チェック: 互いに互換性のあるバージョンのライブラリとフレームワークを使用していることを確認してください。バージョンの不一致は、変換中に予期しないエラーを引き起こす可能性があります。
- 環境のリセット: JupyterやColabなどのインタラクティブな環境を使用している場合は、重要な変更やインストールを行った後に環境を再起動することを検討してください。クリーンな開始により、根本的な問題が解決することがあります。
- 公式ドキュメント: 変換に使用しているツールやライブラリの公式ドキュメントを常に参照してください。多くの場合、モデルエクスポートに関する特定のガイドラインやベストプラクティスが記載されています。
- コミュニティサポート: 他のユーザーから報告された類似の問題について、ライブラリやフレームワークの公式リポジトリを確認してください。メンテナーやコミュニティがディスカッションスレッドで解決策や回避策を提供している場合があります。
- 定期的なアップデート: ツールやライブラリの最新バージョンを使用していることを確認してください。開発者は、既知のバグを修正したり機能を改善したりするアップデートを頻繁にリリースしています。
- 段階的なテスト: 全面的な変換を実行する前に、より小さなモデルやデータセットでプロセスをテストし、潜在的な問題を早期に特定してください。
Link to this sectionコミュニティとサポート#
志を同じくする人々のコミュニティと交流することは、YOLO26を使用する上でのあなたの経験と成功を大幅に向上させます。以下に、役立つ可能性のあるチャンネルやリソースをいくつか紹介します。
Link to this sectionヘルプを得るためのフォーラムとチャンネル#
GitHub Issues: GitHub上のYOLO26リポジトリにはIssuesタブがあり、そこで質問をしたり、バグを報告したり、新機能を提案したりできます。コミュニティやメンテナがここで活発に活動しており、具体的な問題の解決策を得るのに最適な場所です。
Ultralytics Discordサーバー: UltralyticsにはDiscordサーバーがあり、他のユーザーや開発者と交流することができます。
Link to this section公式ドキュメントとリソース#
Ultralytics YOLO26ドキュメント: 公式ドキュメントでは、YOLO26の包括的な概要に加え、インストール、使用方法、トラブルシューティングに関するガイドを提供しています。
これらのリソースは、YOLO26プロジェクトのトラブルシューティングや改善、そしてYOLO26コミュニティの他のメンバーとの交流において、強固な基盤となります。
Link to this section結論#
トラブルシューティングは開発プロセスに不可欠な要素であり、適切な知識を備えておくことで、問題解決にかかる時間と労力を大幅に削減できます。このガイドは、Ultralyticsエコシステム内のYOLO26モデルのユーザーが直面する最も一般的な課題に対処することを目的としています。これらの一般的な問題を理解し対処することで、プロジェクトの進行を円滑にし、コンピュータビジョンタスクでより良い結果を達成できます。
Ultralyticsコミュニティは貴重なリソースであることを忘れないでください。他の開発者や専門家と関わることで、標準的なドキュメントではカバーされていない追加の知見や解決策を得られるかもしれません。常に学習と実験を続け、経験を共有することで、コミュニティの集合知に貢献してください。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionYOLO26のインストールエラーを解決するにはどうすればよいですか?#
インストールエラーは、多くの場合、互換性の問題や依存関係の欠如が原因です。Python 3.8以降を使用し、PyTorch 1.8以降がインストールされていることを確認してください。競合を避けるために仮想環境を使用することをお勧めします。ステップバイステップのインストールガイドについては、公式インストールガイドに従ってください。インポートエラーが発生した場合は、クリーンインストールを試みるか、ライブラリを最新バージョンに更新してください。
Link to this section単一のGPUでYOLO26モデルの学習が遅いのはなぜですか?#
単一のGPUでの学習は、バッチサイズが大きすぎるか、メモリが不足しているために遅くなる可能性があります。学習を高速化するには、複数のGPUを使用してください。システムで複数のGPUが利用可能であることを確認し、device引数(例: device=[0,1,2,3])を設定してください。メモリ制限を超えずにGPUを最大限に活用できるよう、バッチサイズを適宜増やしてください。コマンド例:
model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])Link to this sectionYOLO26モデルがGPUで学習していることを確認するにはどうすればよいですか?#
学習ログの「device」値が「null」と表示される場合、通常、学習プロセスは自動的に利用可能なGPUを使用するように設定されています。特定のGPUを明示的に割り当てるには、.yaml設定ファイルで「device」値を設定します。例えば以下の通りです。
device: 0これにより、学習プロセスが最初のGPUに設定されます。nvidia-smiコマンドを参照して、CUDA設定を確認してください。
Link to this sectionYOLO26モデルの学習の進捗状況を監視・追跡するにはどうすればよいですか?#
学習の進捗状況の追跡と可視化は、TensorBoard、Comet、Ultralytics Platformなどのツールを使用して効率的に管理できます。これらのツールを使用すると、損失(loss)、適合率(precision)、再現率(recall)、mAPなどのメトリクスを記録および可視化できます。これらのメトリクスに基づいて早期終了(early stopping)を実装することも、学習成果を向上させるのに役立ちます。
Link to this sectionYOLO26がデータセットの形式を認識しない場合はどうすればよいですか?#
データセットとラベルが想定される形式に準拠していることを確認してください。アノテーションが正確かつ高品質であることを検証してください。問題がある場合は、ベストプラクティスについてデータ収集とアノテーションガイドを参照してください。データセット固有のガイダンスについては、ドキュメントのデータセット(Datasets)セクションを確認してください。