고급 데이터 시각화: 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 클래스를 확장하여 비디오 스트림에서 움직임 패턴을 생성하고 시각화합니다. 초기화되면 이 솔루션은 객체가 프레임을 통해 이동할 때 업데이트되는 빈 히트맵 레이어를 생성합니다.
감지된 각 객체에 대한 솔루션:
- YOLO11의 추적 기능을 사용하여 프레임 간에 객체를 추적합니다.
- 객체 위치에서 히트맵 강도를 업데이트합니다.
- 선택한 컬러맵을 적용하여 강도 값을 시각화합니다.
- 원본 프레임에 컬러 히트맵을 오버레이합니다.
그 결과 시간이 지남에 따라 구축되어 비디오 데이터에서 트래픽 패턴, 군중 이동 또는 기타 공간적 동작을 드러내는 동적 시각화가 생성됩니다.
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에서 비즈니스 애플리케이션에 대해 자세히 알아보세요.