コンテンツにスキップ

Ultralytics YOLO26を使用した分析

はじめに

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



見る: Ultralyticsを使用して分析グラフを生成する方法 | 折れ線グラフ、棒グラフ、面グラフ、円グラフ

視覚的なサンプル

折れ線グラフ棒グラフ円グラフ
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
import cv2

from ultralytics import solutions

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

# Video writer
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(
    "analytics_output.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

# Initialize analytics object
analytics = solutions.Analytics(
    show=True,  # display the output
    analytics_type="line",  # pass the analytics type, could be "pie", "bar" or "area".
    model="yolo26n.pt",  # path to the YOLO26 model file
    # classes=[0, 2],  # display analytics for specific detection classes
)

# Process video
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

        # print(results)  # access the output

        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()  # destroy all opened windows

Analytics 引数

以下は、Analytics引数の概要表です。

引数種類デフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパス。
analytics_typestr'line'グラフの種類、すなわち、 line, bar, area、または pie.

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

引数種類デフォルト説明
trackerstr'botsort.yaml'使用する追跡アルゴリズムを指定します。例: bytetrack.yaml または botsort.yaml.
conffloat0.1検出の信頼度閾値を設定します。低い値を設定すると、より多くのオブジェクトを追跡できますが、誤検出が含まれる可能性があります。
ioufloat0.7重複する検出をフィルタリングするためのIntersection over Union (IoU) 閾値を設定します。
classeslistNoneクラスインデックスで結果をフィルタリングします。例: classes=[0, 2, 3] 指定されたクラスのみを追跡します。
verboseboolTrue追跡結果の表示を制御し、追跡されたオブジェクトの視覚的な出力を提供します。
devicestrNone推論に使用するデバイスを指定します(例: cpu, cuda:0 または 0)。モデル実行のために、CPU、特定のGPU、またはその他の計算デバイスを選択できます。

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

引数種類デフォルト説明
showboolFalseもし True)は、アノテーションが付けられた画像またはビデオをウィンドウに表示します。開発またはテスト中に、視覚的なフィードバックを即座に得るのに役立ちます。
line_widthint or NoneNoneバウンディングボックスの線の太さを指定します。もし None場合、線の太さは画像サイズに基づいて自動的に調整されます。明確にするための視覚的なカスタマイズを提供します。

結論

効果的なデータ分析には、さまざまな種類の視覚化をいつ、どのように使用するかを理解することが不可欠です。折れ線グラフ、棒グラフ、円グラフは、データのストーリーをより明確かつ効果的に伝えるのに役立つ基本的なツールです。Ultralytics YOLO26 Analyticsソリューションは、オブジェクトdetectおよびtracking結果からこれらの視覚化を生成する合理化された方法を提供し、視覚データから意味のある洞察を抽出しやすくします。

よくある質問

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

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

  1. YOLO26モデルをロードし、ビデオファイルを開きます。
  2. 以下の初期化 Analytics タイプが "line" に設定されたクラス。
  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はオブジェクトをtrackし、視覚化を動的に更新するために使用できますか?

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

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

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は、OpenCVTensorFlowのような他のオブジェクトdetectソリューションと何が異なりますか?

Ultralytics YOLO26は、OpenCVやTensorFlowのような他のオブジェクトdetectソリューションとは、いくつかの理由で際立っています。

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

より詳細な比較やユースケースについては、Ultralytics Blogをご覧ください。



📅 1年前に作成 ✏️ 5日前に更新
glenn-jocherRizwanMunawarMatthewNoycelakshanthadUltralyticsAssistantIvorZhu331

コメント