コンテンツにスキップ

高度なデータ可視化: Ultralytics YOLO11 を使用したヒートマップ 🚀

ヒートマップ入門

Colabでヒートマップを開く

Ultralytics YOLO11で生成されたヒートマップは、複雑なデータを鮮やかな色分けされたマトリックスに変換します。この視覚的なツールは、色のスペクトルを使用してさまざまなデータ値を表現し、暖色系は高い強度を示し、寒色系は低い値を示します。ヒートマップは、複雑なデータパターン、相関関係、および異常を視覚化するのに優れており、多様な分野にわたるデータ解釈へのアクセスしやすく魅力的なアプローチを提供します。



見る: Ultralytics YOLO11を使用したヒートマップ

データ分析にヒートマップを選ぶ理由

  • 直感的なデータ分布の可視化: ヒートマップは、データの集中と分布の理解を簡素化し、複雑なデータセットを理解しやすい視覚形式に変換します。
  • 効率的なパターン検出: データをヒートマップ形式で視覚化することにより、傾向、クラスター、外れ値を簡単に見つけることができ、迅速な分析と洞察が促進されます。
  • 空間分析と意思決定の強化: ヒートマップは、空間的関係を示すのに役立ち、ビジネスインテリジェンス、環境研究、都市計画などの分野での意思決定プロセスを支援します。

現実世界のアプリケーション

輸送 小売
Ultralytics YOLO11 交通量ヒートマップ Ultralytics YOLO11 小売ヒートマップ
Ultralytics YOLO11 交通量ヒートマップ Ultralytics YOLO11 小売ヒートマップ

Ultralytics YOLOを使用したヒートマップ

# Run a heatmap example
yolo solutions heatmap show=True

# Pass a source video
yolo solutions heatmap source="path/to/video.mp4"

# Pass a custom colormap
yolo solutions heatmap colormap=cv2.COLORMAP_INFERNO

# Heatmaps + object counting
yolo solutions heatmap region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"
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))
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# For object counting with heatmap, you can pass region points.
# region_points = [(20, 400), (1080, 400)]                                      # line points
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]              # rectangle region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)]   # polygon points

# Initialize heatmap object
heatmap = solutions.Heatmap(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file
    colormap=cv2.COLORMAP_PARULA,  # colormap of heatmap
    # region=region_points,  # object counting with heatmaps, you can pass region_points
    # classes=[0, 2],  # generate heatmap for specific classes i.e person and car.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = heatmap(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

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

Heatmap() 引数

の表を以下に示します。 Heatmap 引数:

引数 種類 デフォルト 説明
model str None Ultralytics YOLOモデルファイルへのパス。
colormap int cv2.COLORMAP_JET ヒートマップに使用するカラーマップ。
show_in bool True ビデオストリームにカウントを表示するかどうかを制御するフラグ。
show_out bool True ビデオストリーム上にアウトカウントを表示するかどうかを制御するフラグ。
region list '[(20, 400), (1260, 400)]' カウント領域を定義する点のリスト。

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

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

さらに、サポートされている可視化引数は以下のとおりです。

引数 種類 デフォルト 説明
show bool False もし True)は、アノテーションが付けられた画像またはビデオをウィンドウに表示します。開発またはテスト中に、視覚的なフィードバックを即座に得るのに役立ちます。
line_width None or int None バウンディングボックスの線の太さを指定します。もし None場合、線の太さは画像サイズに基づいて自動的に調整されます。明確にするための視覚的なカスタマイズを提供します。
show_conf bool True ラベルとともに、検出ごとの信頼度スコアを表示します。各検出に対するモデルの確実性についての洞察が得られます。
show_labels bool True 検出された各オブジェクトのラベルを視覚的な出力に表示します。検出されたオブジェクトをすぐに理解できます。

ヒートマップ COLORMAP

カラーマップ名 説明
cv::COLORMAP_AUTUMN 秋のカラーマップ
cv::COLORMAP_BONE 骨のカラーマップ
cv::COLORMAP_JET ジェットカラーマップ
cv::COLORMAP_WINTER Winterカラーマップ
cv::COLORMAP_RAINBOW レインボーカラーマップ
cv::COLORMAP_OCEAN 海洋カラーマップ
cv::COLORMAP_SUMMER サマーカラーマップ
cv::COLORMAP_SPRING スプリングカラーマップ
cv::COLORMAP_COOL クールなカラーマップ
cv::COLORMAP_HSV HSV(色相、彩度、明度)カラーマップ
cv::COLORMAP_PINK ピンクのカラーマップ
cv::COLORMAP_HOT ホットカラーマップ
cv::COLORMAP_PARULA Parulaカラーマップ
cv::COLORMAP_MAGMA Magmaカラーマップ
cv::COLORMAP_INFERNO Infernoカラーマップ
cv::COLORMAP_PLASMA プラズマカラーマップ
cv::COLORMAP_VIRIDIS Viridisカラーマップ
cv::COLORMAP_CIVIDIS Cividisカラーマップ
cv::COLORMAP_TWILIGHT Twilight カラーマップ
cv::COLORMAP_TWILIGHT_SHIFTED シフトされたトワイライトカラーマップ
cv::COLORMAP_TURBO Turbo カラーマップ
cv::COLORMAP_DEEPGREEN 深緑色のカラーマップ

これらのカラーマップは、異なる色の表現でデータを視覚化するためによく使用されます。

Ultralytics YOLO11におけるヒートマップの仕組み

Ultralytics YOLO11のヒートマップソリューションは、ObjectCounterクラスを拡張して、ビデオストリーム内の動きのパターンを生成および視覚化します。初期化されると、ソリューションは、オブジェクトがフレーム内を移動するにつれて更新される空白のヒートマップレイヤーを作成します。

検出された各オブジェクトに対するソリューション:

  1. YOLO11の追跡機能を使用して、フレーム間でオブジェクトを追跡します
  2. オブジェクトの位置でのヒートマップの強度を更新します
  3. 選択したカラーマップを適用して、強度値を可視化します。
  4. 色付きのヒートマップを元のフレームに重ねます

その結果、時間の経過とともに構築される動的な視覚化が実現し、ビデオデータ内の交通パターン、群衆の動き、またはその他の空間的挙動が明らかになります。

よくある質問

Ultralytics YOLO11は、どのようにヒートマップを生成し、それにはどのような利点がありますか?

Ultralytics YOLO11 は、複雑なデータを色分けされたマトリックスに変換することにより、ヒートマップを生成します。ここでは、異なる色相がデータの強度を表します。ヒートマップを使用すると、データ内のパターン、相関関係、および異常を簡単に視覚化できます。暖色系の色相は高い値を、寒色系の色相は低い値を表します。主な利点には、データ分布の直感的な視覚化、効率的なパターン検出、および意思決定のための高度な空間分析が含まれます。詳細および構成オプションについては、ヒートマップの構成セクションを参照してください。

Ultralytics YOLO11を使用して、オブジェクトの追跡とヒートマップの生成を同時に実行できますか?

はい、Ultralytics YOLO11は、オブジェクト追跡とヒートマップ生成を同時にサポートしています。これは、次の方法で実現できます。 Heatmap オブジェクト追跡モデルと統合されたソリューション。そのためには、ヒートマップオブジェクトを初期化し、YOLO11の追跡機能を使用する必要があります。簡単な例を次に示します。

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo11n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

詳細なガイダンスについては、トラッキングモードのページをご確認ください。

Ultralytics YOLO11 のヒートマップは、OpenCV や Matplotlib のような他のデータ可視化ツールと何が違うのですか?

Ultralytics YOLO11 ヒートマップは、オブジェクト検出および追跡モデルとの統合のために特別に設計されており、リアルタイムデータ分析のためのエンドツーエンドのソリューションを提供します。OpenCV や Matplotlib などの一般的な可視化ツールとは異なり、YOLO11 ヒートマップはパフォーマンスと自動処理に最適化されており、永続的な追跡、減衰率の調整、リアルタイムビデオオーバーレイなどの機能をサポートしています。YOLO11 のユニークな機能の詳細については、Ultralytics YOLO11 の概要をご覧ください。

Ultralytics YOLO11 を使用して、ヒートマップで特定のオブジェクトクラスのみを視覚化するにはどうすればよいですか?

特定のオブジェクトクラスを視覚化するには、 track() YOLOモデルのメソッド。たとえば、クラスインデックスが0と2の車と人物のみを可視化したい場合は、以下のように設定できます。 classes パラメータを適宜調整してください。

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo11n.pt", classes=[0, 2])

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

データ分析におけるヒートマップ生成に、企業がUltralytics YOLO11を選ぶべきなのはなぜですか?

Ultralytics YOLO11 は、高度な物体検出とリアルタイムヒートマップ生成のシームレスな統合を提供し、データをより効果的に視覚化したい企業にとって理想的な選択肢となります。主な利点には、直感的なデータ分布の視覚化、効率的なパターン検出、より良い意思決定のための高度な空間分析が含まれます。さらに、YOLO11 の永続的な追跡、カスタマイズ可能なカラーマップ、およびさまざまなエクスポート形式のサポートなどの最先端機能により、包括的なデータ分析において TensorFlow や OpenCV などの他のツールよりも優れています。ビジネスアプリケーションの詳細については、Ultralytics Plans をご覧ください。



📅 1年前に作成 ✏️ 4か月前に更新

コメント