YOLO Vision 2026:

Ultralytics YOLO26를 이용한 객체 추적 히트맵#

Open Heatmaps In Colab

Ultralytics YOLO26Heatmap solution은 비디오 프레임 전체에서 객체를 추적하고 누적된 움직임 강도를 각 프레임 위에 오버레이하므로, 활발한 영역은 따뜻한 색상으로 빛나고 한적한 영역은 차갑게 유지됩니다. YOLO26 object tracking을 기반으로 구축되어 단 하나의 Python 호출 또는 CLI 명령으로 모든 비디오를 트래픽 흐름, 군중 움직임, 체류 구역을 드러내는 공간 활동 맵으로 변환합니다.



Watch: Heatmaps using Ultralytics YOLO26

비디오 분석에 히트맵을 사용하는 이유는 무엇입니까?#

  • 활동 패턴을 한눈에 파악: 추적된 객체가 머무는 곳마다 강도가 축적되므로, 수동으로 프레임별 검토를 하지 않아도 교통량이 많은 차선, 인기 있는 선반 또는 군중 병목 현상을 쉽게 식별할 수 있습니다.
  • 추적 기능 내장: 이 솔루션은 YOLO26 탐지 및 추적을 내부적으로 실행하므로 별도의 추적 파이프라인을 연결할 필요가 없습니다.
  • 동일 패스에서의 카운팅: region을 전달하여 히트맵이 빌드되는 동안 구역에 진입하고 나가는 객체를 카운트함으로써 두 가지 분석 작업을 한 번의 실행으로 결합합니다.

실제 세계에서의 활용 사례#

교통소매
차량 트래픽 밀도를 보여주는 Ultralytics YOLO 히트맵 오버레이소매점 고객 이동을 보여주는 Ultralytics YOLO 히트맵 오버레이
Ultralytics YOLO 교통 히트맵Ultralytics YOLO 소매점 히트맵

Ultralytics YOLO로 히트맵을 생성하는 방법#

CLI 또는 Python을 사용하여 비디오 소스에서 히트맵 솔루션을 실행하십시오. 다음은 Python 예제이며 처리된 프레임을 출력 비디오 파일로 저장합니다:

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)]"

Heatmap() 인수#

다음은 Heatmap 인수가 포함된 표입니다:

인수유형기본값설명
modelstrNoneUltralytics YOLO 모델 파일 경로입니다.
colormapintcv2.COLORMAP_DEEPGREEN히트맵에 사용할 컬러맵입니다.
show_inboolTrue비디오 스트림에 유입(in) 카운트를 표시할지 여부를 제어하는 플래그입니다.
show_outboolTrue비디오 스트림에 유출(out) 카운트를 표시할지 여부를 제어하는 플래그입니다.
regionlist 또는 dictNone관심 영역을 정의하는 포인트((x, y) 튜플 목록 또는 여러 영역에 대해 영역 이름을 포인트 목록에 매핑하는 사전(RegionCounter 전용)). None일 때, 영역이 필요한 솔루션은 미리 정의된 기본값으로 대체됩니다.

Heatmap 솔루션에서 다양한 track 인수를 적용할 수도 있습니다.

인수유형기본값설명
trackerstr'tracktrack.yaml'사용할 추적 알고리즘을 지정합니다. 기본 제공 옵션: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1탐지에 대한 신뢰도 임계값을 설정합니다. 값이 낮을수록 더 많은 객체가 추적되지만 잘못된 긍정 탐지(false positives)가 포함될 수 있습니다.
ioufloat0.7겹치는 감지를 필터링하기 위한 Intersection over Union (IoU) 임계값을 설정합니다.
classeslistNone클래스 인덱스로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3]은 지정된 클래스만 추적합니다.
verboseboolTrue추적 결과 표시를 제어하여 추적된 객체의 시각적 출력을 제공합니다.
devicestrNone추론용 장치를 지정합니다(예: cpu, cuda:0 또는 0). 사용자가 모델 실행을 위해 CPU, 특정 GPU 또는 기타 컴퓨팅 장치 중에서 선택할 수 있도록 합니다.

또한 지원되는 시각화 인수는 아래에 나열되어 있습니다:

인수유형기본값설명
showboolFalseTrue인 경우, 주석이 달린 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백에 유용합니다.
line_widthint or NoneNone바우딩 박스의 선 두께를 지정합니다. None인 경우, 선 두께가 이미지 크기에 따라 자동으로 조정됩니다. 가독성을 위한 시각적 커스텀을 제공합니다.
show_confboolTrue각 탐지에 대한 신뢰도 점수를 레이블과 함께 표시합니다. 각 탐지에 대한 모델의 확신도를 파악할 수 있습니다.
show_labelsboolTrue시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있도록 합니다.

히트맵 컬러맵#

colormap 인수는 모든 OpenCV colormap을 허용합니다. cv2 모듈에서 상수를 전달합니다(예: colormap=cv2.COLORMAP_INFERNO):

컬러맵 이름설명
cv2.COLORMAP_AUTUMN가을 컬러맵
cv2.COLORMAP_BONE뼈 컬러맵
cv2.COLORMAP_JET제트 컬러맵
cv2.COLORMAP_WINTER겨울 컬러맵
cv2.COLORMAP_RAINBOW무지개 컬러맵
cv2.COLORMAP_OCEAN바다 컬러맵
cv2.COLORMAP_SUMMER여름 컬러맵
cv2.COLORMAP_SPRING봄 컬러맵
cv2.COLORMAP_COOL쿨 컬러맵
cv2.COLORMAP_HSVHSV(색상, 채도, 명도) 컬러맵
cv2.COLORMAP_PINK분홍 컬러맵
cv2.COLORMAP_HOT핫 컬러맵
cv2.COLORMAP_PARULA파룰라 컬러맵
cv2.COLORMAP_MAGMA마그마 컬러맵
cv2.COLORMAP_INFERNO인페르노 컬러맵
cv2.COLORMAP_PLASMA플라즈마 컬러맵
cv2.COLORMAP_VIRIDIS비리디스 컬러맵
cv2.COLORMAP_CIVIDIS시비디스 컬러맵
cv2.COLORMAP_TWILIGHT트와일라잇 컬러맵
cv2.COLORMAP_TWILIGHT_SHIFTED쉬프트된 트와일라잇 컬러맵
cv2.COLORMAP_TURBO터보 컬러맵
cv2.COLORMAP_DEEPGREEN딥그린 컬러맵

히트맵 작동 원리#

Heatmap solutionObjectCounter 클래스를 확장합니다. 처리된 첫 번째 프레임에서 프레임 크기에 일치하는 빈 강도 레이어를 생성합니다. 그 후 각 프레임은 두 단계로 처리됩니다:

  1. YOLO26 추적은 프레임 내의 모든 객체를 탐지하고 추적합니다.
  2. 추적된 각 객체에 대해 히트맵 강도는 경계 상자(BBox) 중심의 원형 영역 내에서 증가합니다.

프레임당 한 번, 누적된 강도 레이어가 정규화되고 선택된 컬러맵으로 색상이 지정된 뒤 원본 프레임과 블렌딩됩니다. 오버레이는 객체가 하나 이상 추적되는 즉시 나타나며, 객체가 없는 프레임에는 히트맵 오버레이가 표시되지 않습니다.

그 결과 시간 지남에 따라 빌드되는 동적 시각화가 생성되어 비디오 데이터의 트래픽 패턴, 군중 이동 또는 기타 공간적 거동이 드러납니다. region이 설정되면, 이 솔루션은 히트맵이 빌드되는 동안 해당 영역에 진입하고 나가는 객체 카운트도 수행합니다.

결론#

Ultralytics YOLO26 Heatmap solution은 몇 줄의 코드로 객체 추적 결과를 직관적인 활동 오버레이로 변환합니다. 더 나아가려면 object counting과 결합하거나, 다른 Ultralytics Solutions를 탐색하거나, 기본 tracking mode에 대해 읽어보십시오.

FAQ#

Ultralytics YOLO26은 비디오에서 어떻게 히트맵을 생성합니까?#

Ultralytics YOLO26은 비디오 프레임 전반에서 객체를 추적하고 각 추적된 객체의 위치에서 강도 값을 누적한 다음 결과를 색상화하고 원본 프레임과 블렌딩하여 히트맵을 생성합니다. 객체가 자주 나타나거나 머무르는 영역은 더 높은 강도가 빌드되어 더 따뜻한 색상으로 렌더링됩니다. 구성 옵션은 Heatmap() Arguments 섹션을 참조하십시오.

히트맵 결과를 비디오 파일로 저장하려면 어떻게 해야 합니까?#

main example에 표시된 대로 OpenCV의 cv2.VideoWriter을 사용하고 처리된 모든 프레임에 대해 results.plot_im을 작성하십시오. plot_im 속성에는 히트맵 오버레이가 이미 적용된 프레임이 포함됩니다.

히트맵을 객체 카운팅과 결합할 수 있습니까?#

예. 선, 사각형 또는 다각형 포인트와 함께 region 인수를 Heatmap()에 전달하면, 솔루션이 히트맵을 빌드하는 동안 해당 영역에 진입하고 나가는 객체를 카운트합니다. 반환된 결과에는 in_count, out_count, 및 클래스별 카운트가 포함됩니다. 영역 구성 세부 정보는 object counting guide를 참조하십시오.

Ultralytics YOLO26을 사용하여 히트맵에서 특정 객체 클래스만 시각화하려면 어떻게 해야 합니까?#

유지하려는 클래스 인덱스와 함께 classes 인수를 Heatmap()에 전달하십시오. 예를 들어, classes=[0, 2]는 사람과 자동차(COCO 클래스 인덱스 0 및 2)에서만 히트맵을 빌드합니다:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo26n.pt", classes=[0, 2])

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

Ultralytics YOLO26 히트맵이 OpenCV나 Matplotlib 같은 다른 데이터 시각화 도구와 다른 점은 무엇입니까?#

Ultralytics YOLO26 히트맵은 object detection, 추적, 강도 누적, 오버레이 렌더링을 단일 호출로 통합하는 반면, OpenCV나 Matplotlib 같은 일반 도구는 해당 파이프라인을 직접 구축해야 합니다. 이 솔루션은 비디오 스트림을 실시간으로 처리하고 지속적인 추적 및 사용자 정의 가능한 컬러맵을 기본 지원합니다. 기본 모델에 대한 세부 정보는 YOLO26 model page를 참조하십시오.

댓글