高度なデータ可視化: 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クラスを拡張して、ビデオストリーム内の動きのパターンを生成および視覚化します。初期化されると、ソリューションは、オブジェクトがフレーム内を移動するにつれて更新される空白のヒートマップレイヤーを作成します。
検出された各オブジェクトに対するソリューション:
- YOLO11の追跡機能を使用して、フレーム間でオブジェクトを追跡します
- オブジェクトの位置でのヒートマップの強度を更新します
- 選択したカラーマップを適用して、強度値を可視化します。
- 色付きのヒートマップを元のフレームに重ねます
その結果、時間の経過とともに構築される動的な視覚化が実現し、ビデオデータ内の交通パターン、群衆の動き、またはその他の空間的挙動が明らかになります。
よくある質問
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 をご覧ください。