Ultralytics YOLO26による分析#
Ultralytics YOLO26による分析では、物体検出とトラッキングの結果をリアルタイムのグラフに変換し、動画の各フレームでオブジェクト数がどのように変化するかを確認できます。このガイドでは、折れ線グラフ、棒グラフ、円グラフ、面グラフという4種類のデータ可視化を取り上げ、共通のPythonおよびCLIの例を使ってそれらを切り替える方法を説明します。
視聴: Ultralytics で分析グラフを作成する方法 | 折れ線グラフ、棒グラフ、面グラフ、円グラフ
視覚的なサンプル#
| 折れ線グラフ | 棒グラフ | 円グラフ |
|---|---|---|
![]() | ![]() | ![]() |
検出データを可視化する理由#
- 折れ線グラフは、短期・長期にわたる変化の追跡や、同じ期間における複数グループの変化の比較に適しています。
- 棒グラフは、異なるカテゴリ間の数量の比較や、カテゴリとその数値との関係の表示に適しています。
- 円グラフは、カテゴリ間の割合を示し、全体に対する各部分の比率を表すのに効果的です。
- 面グラフは折れ線グラフの下を塗りつぶすため、クラスごとのオブジェクト数の経時変化をひと目で読み取りやすくなります。
分析グラフの生成#
動画をAnalyticsソリューションに渡し、analytics_typeでグラフを選択します。このソリューションはすべてのフレームで検出とトラッキングを実行し、(デフォルトで)1280×720のグラフを描画します。このグラフは出力動画に直接書き込めます。1つの引数で"line"、"bar"、"pie"、"area"を切り替えられます。
yolo solutions analytics show=True
# Pass the source
yolo solutions analytics source="path/to/video.mp4"
# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True
# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True
# Generate the area plots
yolo solutions analytics analytics_type="area" show=TrueAnalyticsの引数#
以下は、Analyticsの引数をまとめた表です。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパスです。 |
analytics_type | str | 'line' | グラフの種類です。line、bar、area、pieを指定できます。 |
figsize | tuple[float, float] | (12.8, 7.2) | Analytics のチャートで使用するインチ単位の図のサイズです。(12.8, 7.2) は1280×720のフレームを描画します。 |
line_width | int | 2 | Solutionが描画するボックス、キーポイント、カウント表示の線幅です。 |
verbose | bool | True | 各フレームの入力shape、クラス数、処理速度を記録するSolutionのログを有効にします。トラッキング呼び出し自体は常にログを出力しません。 |
Analyticsソリューションでは、さまざまなtrack引数も活用できます。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | 使用するトラッキングアルゴリズムを指定します。組み込みのオプション:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.25 | 検出の信頼度しきい値を設定します。値を低くすると、より多くの物体を追跡できますが、誤検出が含まれる可能性があります。 |
iou | float | 0.7 | 重複する検出をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。 |
classes | list | None | クラスインデックスで結果をフィルタリングします。たとえば、classes=[0, 2, 3]を指定すると、指定したクラスのみを追跡します。 |
device | str | None | 推論に使用するデバイスを指定します(例:cpu、cuda:0、0)。モデル実行に使用するCPU、特定のGPU、その他の計算デバイスを選択できます。 |
imgsz | int or tuple | 640 | 推論時の入力画像サイズです。正方形の場合は整数、または(height, width)のペアを指定します。形状はモデルのストライドに合わせて調整されます。 |
max_det | int | 300 | トラッキング前にフレームごとに保持する検出の最大数です。混雑したシーンでソリューションが処理する物体数を制限します。 |
quantize | int or str | None | 推論精度:PyTorchおよびTorchScriptモデルでは16(FP16)または32/未設定(FP32)を使用します。他の形式では、アーティファクトとランタイムで選択された精度で計算されます。非推奨のhalfフラグに代わるものです。 |
さらに、次の可視化引数がサポートされています。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | Trueの場合、注釈付き画像または動画をウィンドウに表示します。開発やテスト中にすぐ視覚的なフィードバックを得るのに便利です。 |
結論#
データ分析を効果的に行うには、さまざまな可視化の種類をいつ、どのように使うかを理解することが重要です。折れ線グラフ、棒グラフ、円グラフは、データの内容をより明確かつ効果的に伝えるための基本的なツールです。Ultralytics YOLO26 Analyticsソリューションを使うと、物体検出とトラッキングの結果からこれらの可視化を簡単に生成でき、視覚データから有意義な知見を得やすくなります。
よくある質問#
Ultralytics YOLO26 Analyticsを使って折れ線グラフを作成するには、次の手順に従ってください。
- YOLO26モデルを読み込み、動画ファイルを開きます。
analytics_type="line"を指定してAnalyticsクラスを初期化します。- 動画のフレームを順に処理し、各フレームでソリューションを呼び出して、オブジェクト数などのデータで折れ線グラフを更新します。
- グラフを保存するため、
results.plot_imを出力動画に書き込みます。
まずは上記のPythonの例をご利用ください。この例にはフレーム処理ループがすでに実装されており、デフォルトの
analytics_typeは折れ線グラフです。棒グラフの作成にUltralytics YOLO26を使うと、いくつかのメリットがあります。
- リアルタイムのデータ可視化: 物体検出の結果を棒グラフにシームレスに統合し、動的に更新できます。
- 使いやすさ: シンプルなAPIと関数により、データの実装と可視化を簡単に行えます。
- カスタマイズ: タイトル、ラベル、色などを要件に合わせてカスタマイズできます。
- 効率性: 大量のデータを効率的に処理し、動画処理中にグラフをリアルタイムで更新できます。
棒グラフを生成するには、上記のPythonの例で
analytics_type="bar"を設定します。残りのフレーム処理ループは同じです。プレビューについては、視覚的なサンプルのセクションをご覧ください。Ultralytics YOLO26は、次の理由から円グラフの作成に最適です。
- 物体検出との統合: 物体検出の結果を円グラフに直接統合し、すぐに知見を得られます。
- 使いやすいAPI: 最小限のコードで簡単に設定して使用できます。
- カスタマイズ性: 色やラベルなど、さまざまなカスタマイズオプションを利用できます。
- リアルタイム更新: データをリアルタイムで処理・可視化できるため、動画分析プロジェクトに最適です。
円グラフを生成するには、上記のPythonの例で
analytics_type="pie"を設定します。詳しくは、ガイドの視覚的なサンプルのセクションをご覧ください。はい。トラッキングは
Analyticsソリューションに組み込まれています。このソリューションは複数のオブジェクトをリアルタイムで追跡し、30フレームごとに追跡対象のデータを使ってグラフを更新するため、折れ線グラフ、棒グラフ、円グラフ、面グラフのいずれにも最新のカウントが反映されます。これは、上記のPythonの例のフレーム処理ループで行われている処理です。基盤となるトラッキング機能については、トラッキングのセクションをご覧ください。Ultralytics YOLO26がOpenCVやTensorFlowなどの他の物体検出ソリューションと異なる点は、いくつかあります。
- 最先端の精度: YOLO26は、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、分類の各タスクで優れた精度を実現します。
- 使いやすさ: ユーザーフレンドリーなAPIにより、複雑なコーディングを必要とせず、迅速に実装して統合できます。
- リアルタイム性能: 高速な推論向けに最適化されており、リアルタイムアプリケーションに適しています。
- 多様な用途: マルチオブジェクトトラッキング、カスタムモデルのトレーニング、ONNX、TensorRT、CoreMLなどのさまざまな形式へのエクスポートをサポートします。
- 充実したドキュメント: ユーザーをあらゆる段階でサポートする、豊富なドキュメントとブログ記事を用意しています。
詳しい比較やユースケースについては、Ultralytics Blogをご覧ください。


