콘텐츠로 건너뛰기

고급 데이터 시각화: 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 겹치는 검출을 필터링하기 위한 IoU (Intersection over Union) 임계값을 설정합니다.
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 Jet 컬러 맵
cv::COLORMAP_WINTER Winter 색상 맵
cv::COLORMAP_RAINBOW 무지개 색상 맵
cv::COLORMAP_OCEAN 해양 색상 맵
cv::COLORMAP_SUMMER 여름 색상 맵
cv::COLORMAP_SPRING Spring 컬러 맵
cv::COLORMAP_COOL Cool color map
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 황혼 색상 맵
cv::COLORMAP_TWILIGHT_SHIFTED 이동된 Twilight 색상 맵
cv::COLORMAP_TURBO Turbo 컬러 맵
cv::COLORMAP_DEEPGREEN 짙은 녹색 색상 맵

이러한 컬러맵은 다양한 색상 표현으로 데이터를 시각화하는 데 일반적으로 사용됩니다.

Ultralytics YOLO11에서 히트맵은 어떻게 작동하나요?

Ultralytics YOLO11의 히트맵 솔루션ObjectCounter 클래스를 확장하여 비디오 스트림에서 움직임 패턴을 생성하고 시각화합니다. 초기화되면 이 솔루션은 객체가 프레임을 통해 이동할 때 업데이트되는 빈 히트맵 레이어를 생성합니다.

감지된 각 객체에 대한 솔루션:

  1. YOLO11의 추적 기능을 사용하여 프레임 간에 객체를 추적합니다.
  2. 객체 위치에서 히트맵 강도를 업데이트합니다.
  3. 선택한 컬러맵을 적용하여 강도 값을 시각화합니다.
  4. 원본 프레임에 컬러 히트맵을 오버레이합니다.

그 결과 시간이 지남에 따라 구축되어 비디오 데이터에서 트래픽 패턴, 군중 이동 또는 기타 공간적 동작을 드러내는 동적 시각화가 생성됩니다.

FAQ

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개월 전에 업데이트됨

댓글