고급 데이터 시각화: Ultralytics YOLO11 🚀을 사용한 히트 맵
히트맵 소개
로 생성된 히트맵은 Ultralytics YOLO11 로 생성된 히트맵은 복잡한 데이터를 생생한 색상으로 구분된 매트릭스로 변환합니다. 이 시각적 도구는 다양한 색상 스펙트럼을 사용하여 다양한 데이터 값을 나타내며, 따뜻한 색조는 더 높은 강도를, 차가운 색조는 더 낮은 값을 나타냅니다. 히트맵은 복잡한 데이터 패턴, 상관관계, 이상 징후를 시각화하는 데 탁월하며, 다양한 영역에서 데이터를 해석하는 데 접근하기 쉽고 매력적인 접근 방식을 제공합니다.
Watch: 히트맵을 사용한 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 클래스를 확장하여 비디오 스트림의 움직임 패턴을 생성하고 시각화합니다. 이 솔루션은 초기화되면 빈 히트맵 레이어를 생성하여 오브젝트가 프레임을 이동함에 따라 업데이트됩니다.
감지된 각 객체에 대한 솔루션입니다:
- 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 요금제에서 확인하세요.