콘텐츠로 건너뛰기

고급 데이터 시각화: Ultralytics YOLO11 🚀을 사용한 히트 맵

히트맵 소개

Colab에서 히트맵 열기

로 생성된 히트맵은 Ultralytics YOLO11 로 생성된 히트맵은 복잡한 데이터를 생생한 색상으로 구분된 매트릭스로 변환합니다. 이 시각적 도구는 다양한 색상 스펙트럼을 사용하여 다양한 데이터 값을 나타내며, 따뜻한 색조는 더 높은 강도를, 차가운 색조는 더 낮은 값을 나타냅니다. 히트맵은 복잡한 데이터 패턴, 상관관계, 이상 징후를 시각화하는 데 탁월하며, 다양한 영역에서 데이터를 해석하는 데 접근하기 쉽고 매력적인 접근 방식을 제공합니다.



Watch: 히트맵을 사용한 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를 클릭하면 이미지 크기에 따라 선 너비가 자동으로 조정됩니다. 선명도를 위한 시각적 사용자 지정 기능을 제공합니다.

히트맵 컬러맵

컬러맵 이름 설명
cv::COLORMAP_AUTUMN 가을 색 지도
cv::COLORMAP_BONE 뼈대 색상 맵
cv::COLORMAP_JET 제트 컬러 맵
cv::COLORMAP_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 파룰라 컬러 맵
cv::COLORMAP_MAGMA 마그마 컬러 맵
cv::COLORMAP_INFERNO 인페르노 컬러 맵
cv::COLORMAP_PLASMA 플라즈마 색상 맵
cv::COLORMAP_VIRIDIS 비리디스 컬러 맵
cv::COLORMAP_CIVIDIS 시비디스 컬러 맵
cv::COLORMAP_TWILIGHT 황혼 컬러 맵
cv::COLORMAP_TWILIGHT_SHIFTED 시프트된 황혼 컬러 맵
cv::COLORMAP_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 요금제에서 확인하세요.

📅1 년 전 생성됨 ✏️ 업데이트됨 5 일 전

댓글