Ultralytics YOLO26を使用したアナリティクス#
Ultralytics YOLO26によるアナリティクスでは、物体検出とトラッキングの結果をリアルタイムチャートに変換できるため、動画のフレームごとに物体数がどのように変化するかを確認できます。このガイドでは、4種類のデータ可視化(折れ線グラフ、棒グラフ、円グラフ、面グラフ)について説明し、共通のPythonおよびCLIの例を使ってそれらを切り替える方法を示します。
Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts
ビジュアルサンプル#
| 折れ線グラフ | 棒グラフ | 円グラフ |
|---|---|---|
![]() | ![]() | ![]() |
検出データを可視化する理由#
- 折れ線グラフは、短期および長期にわたる変化の追跡や、同じ期間における複数グループの変化の比較に適しています。
- 棒グラフは、異なるカテゴリ間の数量を比較したり、カテゴリとその数値との関係を示したりするのに適しています。
- 円グラフは、カテゴリ間の割合を表したり、全体に占める各部分を示したりするのに効果的です。
- 面グラフは折れ線グラフの下部を塗りつぶすため、時間の経過に伴うクラスごとの物体数をひと目で読み取りやすくなります。
アナリティクスグラフの生成#
動画を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の引数#
以下は、アナリティクスの引数をまとめた表です。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパスです。 |
analytics_type | str | 'line' | グラフの種類です。line、bar、area、またはpieを指定します。 |
line_width | int | 2 | ソリューションが描画するボックス、キーポイント、カウントの線の太さです。 |
verbose | bool | True | 入力形状、クラス数、処理速度をフレームごとにログに記録する機能を有効にします。トラッキング処理自体は常にサイレントです。 |
Analyticsソリューションでは、さまざまなtrack引数も利用できます。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'botsort.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ソリューションは、物体検出とトラッキングの結果からこれらの可視化を簡単に生成できるため、視覚データから意味のある洞察を抽出しやすくなります。
FAQ#
Ultralytics YOLO26 Analyticsを使用して折れ線グラフを作成するには、次の手順に従います。
- YOLO26モデルを読み込み、動画ファイルを開きます。
Analyticsクラスをanalytics_type="line"で初期化します。- 動画フレームを反復処理し、各フレームでソリューションを呼び出して、物体数などのデータで折れ線グラフを更新します。
- チャートを保存するため、
results.plot_imを出力動画に書き込みます。
上記のPython例を出発点として使用してください。この例にはフレームループ全体がすでに実装されており、折れ線グラフがデフォルトの
analytics_typeです。棒グラフの作成にUltralytics YOLO26を使用すると、次のような利点があります。
- リアルタイムデータ可視化:物体検出の結果を棒グラフにシームレスに統合し、動的に更新できます。
- 使いやすさ:シンプルなAPIと関数により、データの実装と可視化を簡単に行えます。
- カスタマイズ性:タイトル、ラベル、色などを要件に合わせてカスタマイズできます。
- 効率性:大量のデータを効率的に処理し、動画処理中にプロットをリアルタイムで更新できます。
棒グラフを生成するには、上記のPython例で
analytics_type="bar"を設定します。残りのフレームループは同じです。プレビューについては、Visual Samplesセクションを参照してください。Ultralytics YOLO26は、次の理由から円グラフの作成に適しています。
- 物体検出との統合:物体検出の結果を円グラフに直接統合し、すぐに洞察を得られます。
- 使いやすいAPI:最小限のコードで簡単に設定して使用できます。
- カスタマイズ可能:色、ラベルなど、さまざまなカスタマイズオプションを利用できます。
- リアルタイム更新:データをリアルタイムで処理および可視化できるため、動画アナリティクスプロジェクトに適しています。
円グラフを生成するには、上記のPython例で
analytics_type="pie"を設定します。詳細については、ガイドのVisual Samplesセクションを参照してください。はい。トラッキングは
Analyticsソリューションに組み込まれており、複数の物体をリアルタイムで追跡し、各フレームで追跡対象のデータに基づいてチャートを更新します。そのため、折れ線グラフ、棒グラフ、円グラフ、面グラフのすべてに最新のカウントが反映されます。上記のPython例のフレームループは、まさにこの処理を行います。基盤となるトラッキング機能については、Trackingセクションを参照してください。Ultralytics YOLO26がOpenCVやTensorFlowなどの他の物体検出ソリューションと異なる点は、複数あります。
- 最先端の精度:YOLO26は、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、分類タスクで優れた精度を提供します。
- 使いやすさ:ユーザーフレンドリーなAPIにより、大規模なコーディングなしで迅速に実装および統合できます。
- リアルタイム性能:高速な推論向けに最適化されており、リアルタイムアプリケーションに適しています。
- 多様な用途:マルチオブジェクトトラッキング、カスタムモデルのトレーニング、ONNX、TensorRT、CoreMLなどのさまざまな形式へのエクスポートをサポートします。
- 包括的なドキュメント:あらゆる手順をユーザーに案内する、充実したドキュメントとブログリソースを提供しています。
より詳細な比較やユースケースについては、Ultralytics Blogをご覧ください。


