Skip to main content

Ultralytics YOLO26を使用した分析

はじめに

このガイドでは、3つの基本的なデータ可視化(折れ線グラフ、棒グラフ、円グラフ)の包括的な概要を説明します。各セクションには、Pythonを使用してこれらの可視化を作成するための手順とコードスニペットが含まれています。



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

視覚的サンプル

折れ線グラフ棒グラフ円グラフ
オブジェクト追跡用のYOLO分析折れ線グラフ検出数用のYOLO分析棒グラフクラス分布用のYOLO分析円グラフ

グラフが重要な理由

  • 折れ線グラフは、短期間および長期間にわたる変化を追跡し、同じ期間における複数のグループの変化を比較するのに最適です。
  • 一方、棒グラフは、異なるカテゴリ間で数量を比較し、カテゴリと数値の関係を示すのに適しています。
  • 最後に、円グラフはカテゴリ間の比率を示したり、全体の中の構成要素を示すのに効果的です。
Ultralytics YOLOを使用した分析
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=True

Analytics 引数

分析引数の概要を以下に示す表です:

この表は、YOLOモデルを異なるフォーマットにエクスポートするために利用可能な設定とオプションを詳述しています。これらの設定は、エクスポートされたモデルのパフォーマンス、サイズ、およびさまざまなプラットフォームや環境での互換性を最適化するために不可欠です。適切な設定を行うことで、モデルが意図したアプリケーションにおいて最適な効率でデプロイできる状態になります。引数タイプデフォルト
modelstrNone計数領域を定義するポイントのリスト。
analytics_typestr'line'ヒートマップに使用するカラーマップ。line, bar, area、またはpie.

また、異なるtrack 引数をAnalytics ソリューションで活用することもできます。

この表は、YOLOモデルを異なるフォーマットにエクスポートするために利用可能な設定とオプションを詳述しています。これらの設定は、エクスポートされたモデルのパフォーマンス、サイズ、およびさまざまなプラットフォームや環境での互換性を最適化するために不可欠です。適切な設定を行うことで、モデルが意図したアプリケーションにおいて最適な効率でデプロイできる状態になります。引数タイプデフォルト
trackerstr'botsort.yaml'使用するトラッキングアルゴリズムを指定します(例:`bytetrack.yaml`)。bytetrack.yamlbotsort.yaml.
conffloat0.1検出の信頼度しきい値を設定します。低い値を設定すると、より多くの物体が追跡されますが、偽陽性が含まれる可能性があります。
ioufloat0.7Non-Maximum SuppressionIoU(Intersection over Union)しきい値。重複する検出結果をフィルタリングするために使用されます。
classeslistNoneクラスインデックスによって結果をフィルタリングします。例えば、`classes=[0]` は指定されたクラスのみを追跡します。classes=[0, 2, 3]のみを追跡します。
verboseboolTrueトラッキング結果の表示を制御し、追跡された物体の視覚的な出力を提供します。
devicestrNone推論用のデバイスを指定します(例: cpu, cuda:00)。ユーザーはモデル実行のためにCPU、特定のGPU、またはその他の計算デバイスを選択できます。

さらに、以下の可視化引数もサポートされています:

この表は、YOLOモデルを異なるフォーマットにエクスポートするために利用可能な設定とオプションを詳述しています。これらの設定は、エクスポートされたモデルのパフォーマンス、サイズ、およびさまざまなプラットフォームや環境での互換性を最適化するために不可欠です。適切な設定を行うことで、モデルが意図したアプリケーションにおいて最適な効率でデプロイできる状態になります。引数タイプデフォルト
showboolFalseTrueの場合、注釈付きの画像や動画をウィンドウに表示します。開発やテスト中の即時視覚フィードバックに役立ちます。
line_widthint or NoneNoneバウンディングボックスの線幅を指定します。Noneの場合、線幅は画像サイズに基づいて自動的に調整されます。明瞭さのための視覚的なカスタマイズを提供します。

結論

さまざまな種類の可視化をいつ、どのように使用するかを理解することは、効果的なデータ分析にとって重要です。折れ線グラフ、棒グラフ、円グラフは、データのストーリーをより明確かつ効果的に伝えるための基本的なツールです。Ultralytics YOLO26分析ソリューションは、物体検出および追跡結果からこれらの可視化を生成する効率的な方法を提供し、視覚データから有意義な洞察を容易に抽出できるようにします。

FAQ

Ultralytics YOLO26分析を使用して折れ線グラフを作成するにはどうすればよいですか?

Ultralytics YOLO26分析を使用して折れ線グラフを作成するには、以下の手順に従ってください:

  1. YOLO26モデルをロードし、動画ファイルを開きます。
  2. タイプを「line」に設定してAnalytics クラスを初期化します。
  3. 動画フレームをループ処理し、フレームごとのオブジェクト数などの関連データで折れ線グラフを更新します。
  4. 折れ線グラフを表示する出力動画を保存します。

例:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

クラスの設定に関する詳細は、Analytics クラスのUltralytics YOLO26を使用した分析推論引数

Ultralytics YOLO26を使用して棒グラフを作成する利点は何ですか?

Ultralytics YOLO26を使用して棒グラフを作成することには、いくつかの利点があります:

  1. リアルタイムデータ可視化: 物体検出 結果を棒グラフにシームレスに統合し、動的に更新します。
  2. 使いやすさ: シンプルなAPIと関数により、データの実装と可視化が簡単になります。
  3. カスタマイズ性: タイトル、ラベル、色などをカスタマイズして、特定の要件に合わせることができます。
  4. 効率性: 大量のデータを効率的に処理し、動画処理中にリアルタイムでグラフを更新します。

以下の例を使用して棒グラフを生成してください:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

詳細については、棒グラフ セクションを参照してください。

データ可視化プロジェクトで円グラフを作成するためにUltralytics YOLO26を使用すべき理由は何ですか?

Ultralytics YOLO26が円グラフの作成に最適である理由は以下の通りです:

  1. オブジェクト検出との統合: オブジェクト検出結果を直接円グラフに統合し、即座に洞察を得られます。
  2. 使いやすいAPI: 最小限のコードで簡単にセットアップして使用できます。
  3. カスタマイズ可能: 色、ラベルなどに対する多様なカスタマイズオプションがあります。
  4. リアルタイム更新: データをリアルタイムで処理および可視化でき、動画分析プロジェクトに最適です。

簡単な例を次に示します:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

詳細については、円グラフ セクションを参照してください。

Ultralytics YOLO26を使用してオブジェクトを追跡し、可視化を動的に更新することはできますか?

はい、Ultralytics YOLO26を使用してオブジェクトを追跡し、可視化を動的に更新できます。リアルタイムでの複数オブジェクトの追跡をサポートしており、追跡データに基づいて折れ線グラフ、棒グラフ、円グラフなどのさまざまな可視化を更新できます。

折れ線グラフの追跡と更新の例:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

完全な機能については、トラッキング推論引数

Ultralytics YOLO26と、OpenCVやTensorFlowのような他のオブジェクト検出ソリューションとの違いは何ですか?、ONNXモデル推論に用のKeras形式へのエクスポートを有効にし、?

Ultralytics YOLO26がOpenCVやTensorFlowなどの他のオブジェクト検出ソリューションと異なる点は以下の通りです:

  1. 最先端の推論中の予測品質が向上します。: YOLO26は、オブジェクト検出、セグメンテーション、分類タスクにおいて優れた精度を提供します。
  2. 使いやすさ: 使いやすいAPIにより、広範なコーディングなしで迅速な実装と統合が可能です。
  3. リアルタイムパフォーマンス: 高速な推論に最適化されており、リアルタイムアプリケーションに適しています。
  4. 多様なアプリケーション: 多目的オブジェクト追跡、カスタムモデルのトレーニング、ONNX、TensorRT、CoreMLなどのさまざまな形式へのエクスポートを含む多様なタスクをサポートしています。
  5. 包括的なドキュメント: ユーザーのあらゆるステップをガイドする広範なドキュメントブログリソースを提供しています。

詳細な比較やユースケースについては、当社のUltralytics Blog.

コメント