Meet YOLO26: next-gen vision AI.

Link to this sectionBản đồ nhiệt theo dõi đối tượng với Ultralytics YOLO26#

Open Heatmaps In Colab

Giải pháp Heatmap trong Ultralytics YOLO26 theo dõi các đối tượng qua các khung hình video và phủ cường độ chuyển động tích lũy của chúng lên mỗi khung hình, vì vậy các khu vực bận rộn sẽ sáng lên với tông màu ấm trong khi các khu vực yên tĩnh vẫn giữ tông màu lạnh. Được xây dựng dựa trên theo dõi đối tượng của YOLO26, nó biến bất kỳ video nào thành bản đồ hoạt động không gian giúp tiết lộ lưu lượng giao thông, sự di chuyển của đám đông và các khu vực lưu trú chỉ với một lệnh gọi Python hoặc lệnh CLI duy nhất.



Watch: Heatmaps using Ultralytics YOLO26

Link to this sectionTại sao nên sử dụng bản đồ nhiệt cho phân tích video?#

  • Nhận diện nhanh các mô hình hoạt động: Cường độ tích tụ tại bất cứ nơi nào các đối tượng được theo dõi dành thời gian, vì vậy các làn đường lưu lượng cao, các kệ hàng phổ biến hoặc các nút thắt đám đông sẽ nổi bật mà không cần xem xét thủ công từng khung hình.
  • Tích hợp sẵn tính năng theo dõi: Giải pháp chạy tính năng phát hiện và theo dõi của YOLO26 bên trong, vì vậy không cần quy trình theo dõi riêng biệt để kết nối.
  • Đếm đối tượng trong cùng một quy trình: Truyền một region (vùng) để đếm các đối tượng đi vào và đi ra khỏi khu vực trong khi bản đồ nhiệt đang được tạo, kết hợp hai tác vụ phân tích trong một lần chạy.

Link to this sectionCác ứng dụng thực tế#

Giao thôngBán lẻ
Lớp phủ bản đồ nhiệt Ultralytics YOLO hiển thị mật độ giao thông phương tiệnLớp phủ bản đồ nhiệt Ultralytics YOLO hiển thị chuyển động của khách hàng bán lẻ
Bản đồ nhiệt giao thông vận tải Ultralytics YOLOBản đồ nhiệt bán lẻ Ultralytics YOLO

Link to this sectionCách tạo bản đồ nhiệt với Ultralytics YOLO#

Chạy giải pháp Heatmap trên nguồn video từ CLI hoặc Python. Ví dụ Python dưới đây ghi các khung hình đã xử lý vào một tệp video đầu ra:

Heatmap sử dụng 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)]"

Link to this sectionCác đối số của Heatmap()#

Dưới đây là bảng các đối số của Heatmap:

Đối sốLoạiMặc địnhMô tả
modelstrNoneĐường dẫn đến tệp model Ultralytics YOLO.
colormapintcv2.COLORMAP_DEEPGREENBản đồ màu (colormap) để sử dụng cho bản đồ nhiệt.
show_inboolTrueCờ để kiểm soát việc hiển thị số lượng đếm vào trên luồng video.
show_outboolTrueCờ để kiểm soát việc hiển thị số lượng đếm ra trên luồng video.
regionlist hoặc dictNoneCác điểm xác định vùng quan tâm, có thể là danh sách các bộ (x, y) hoặc một dictionary ánh xạ tên vùng tới danh sách các điểm cho nhiều vùng (chỉ áp dụng cho RegionCounter). Khi là None, các giải pháp yêu cầu một vùng sẽ quay về giá trị mặc định được định nghĩa trước.

Bạn cũng có thể áp dụng các đối số track khác nhau trong giải pháp Heatmap.

Đối sốLoạiMặc địnhMô tả
trackerstr'botsort.yaml'Chỉ định thuật toán tracking cần sử dụng. Các tùy chọn tích hợp sẵn: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Thiết lập ngưỡng tin cậy cho các phát hiện; các giá trị thấp hơn cho phép nhiều đối tượng được theo dõi hơn nhưng có thể bao gồm các kết quả dương tính giả.
ioufloat0.7Thiết lập ngưỡng Intersection over Union (IoU) để lọc các phát hiện chồng lấp.
classeslistNoneLọc kết quả theo chỉ số lớp. Ví dụ, classes=[0, 2, 3] chỉ theo dõi các lớp đã chỉ định.
verboseboolTrueKiểm soát việc hiển thị kết quả theo dõi, cung cấp đầu ra trực quan của các đối tượng được theo dõi.
devicestrNoneChỉ định thiết bị để thực hiện suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng chọn giữa CPU, một GPU cụ thể, hoặc các thiết bị tính toán khác để thực thi model.

Ngoài ra, các đối số trực quan hóa được hỗ trợ được liệt kê dưới đây:

Đối sốLoạiMặc địnhMô tả
showboolFalseNếu True, hiển thị các hình ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích cho phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc kiểm thử.
line_widthint or NoneNoneChỉ định độ dày đường của bounding box. Nếu None, độ dày đường được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp khả năng tùy chỉnh trực quan để rõ ràng hơn.
show_confboolTrueHiển thị điểm số tin cậy (confidence score) cho mỗi phát hiện cùng với nhãn. Cung cấp thông tin chi tiết về độ chắc chắn của model đối với từng phát hiện.
show_labelsboolTrueHiển thị nhãn cho mỗi phát hiện trong đầu ra hình ảnh. Cung cấp khả năng nhận biết tức thì các đối tượng được phát hiện.

Link to this sectionBảng màu (Colormaps) cho bản đồ nhiệt#

Đối số colormap chấp nhận bất kỳ OpenCV colormap nào. Truyền hằng số từ mô-đun cv2, ví dụ colormap=cv2.COLORMAP_INFERNO:

Tên ColormapMô tả
cv2.COLORMAP_AUTUMNBản đồ màu Autumn
cv2.COLORMAP_BONEBản đồ màu Bone
cv2.COLORMAP_JETBản đồ màu Jet
cv2.COLORMAP_WINTERBản đồ màu Winter
cv2.COLORMAP_RAINBOWBản đồ màu Rainbow
cv2.COLORMAP_OCEANBản đồ màu Ocean
cv2.COLORMAP_SUMMERBản đồ màu Summer
cv2.COLORMAP_SPRINGBản đồ màu Spring
cv2.COLORMAP_COOLBản đồ màu Cool
cv2.COLORMAP_HSVBản đồ màu HSV (Hue, Saturation, Value)
cv2.COLORMAP_PINKBản đồ màu Pink
cv2.COLORMAP_HOTBản đồ màu Hot
cv2.COLORMAP_PARULABản đồ màu Parula
cv2.COLORMAP_MAGMABản đồ màu Magma
cv2.COLORMAP_INFERNOBản đồ màu Inferno
cv2.COLORMAP_PLASMABản đồ màu Plasma
cv2.COLORMAP_VIRIDISBản đồ màu Viridis
cv2.COLORMAP_CIVIDISBản đồ màu Cividis
cv2.COLORMAP_TWILIGHTBản đồ màu Twilight
cv2.COLORMAP_TWILIGHT_SHIFTEDBản đồ màu Twilight Shifted
cv2.COLORMAP_TURBOBản đồ màu Turbo
cv2.COLORMAP_DEEPGREENBản đồ màu Deep Green

Link to this sectionCách thức hoạt động của bản đồ nhiệt#

Giải pháp Heatmap mở rộng lớp ObjectCounter. Ở khung hình được xử lý đầu tiên, nó tạo ra một lớp cường độ trống khớp với kích thước khung hình. Sau đó, mỗi khung hình được xử lý theo hai bước:

  1. Tính năng theo dõi của YOLO26 phát hiện và bám sát mọi đối tượng trong khung hình
  2. Đối với mỗi đối tượng được theo dõi, cường độ bản đồ nhiệt tăng lên trong một vùng tròn tập trung tại hộp bao (bounding box) của nó

Mỗi khung hình một lần, lớp cường độ tích lũy được chuẩn hóa, tô màu với colormap đã chọn và trộn với khung hình gốc. Lớp phủ xuất hiện ngay khi có ít nhất một đối tượng được theo dõi; các khung hình không có đối tượng được theo dõi sẽ hiển thị mà không có lớp phủ bản đồ nhiệt.

Kết quả là một hình ảnh trực quan động tích tụ theo thời gian, tiết lộ các mô hình giao thông, chuyển động của đám đông hoặc các hành vi không gian khác trong dữ liệu video của bạn. Khi một region được thiết lập, giải pháp cũng đếm các đối tượng đi vào và đi ra khỏi khu vực đó trong khi bản đồ nhiệt được tạo.

Link to this sectionKết luận#

Giải pháp bản đồ nhiệt Ultralytics YOLO26 biến kết quả theo dõi đối tượng thành một lớp phủ hoạt động trực quan với chỉ một vài dòng mã. Để đi xa hơn, hãy kết hợp nó với đếm đối tượng, khám phá các Giải pháp Ultralytics khác hoặc đọc về chế độ theo dõi cơ bản.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionUltralytics YOLO26 tạo bản đồ nhiệt từ video như thế nào?#

Ultralytics YOLO26 tạo bản đồ nhiệt bằng cách theo dõi các đối tượng qua các khung hình video và tích lũy giá trị cường độ tại vị trí của mỗi đối tượng được theo dõi, sau đó tô màu kết quả và trộn nó với khung hình gốc. Các khu vực nơi đối tượng xuất hiện thường xuyên hoặc dừng lại lâu sẽ tạo ra cường độ cao hơn và hiển thị bằng các tông màu ấm. Để biết các tùy chọn cấu hình, hãy tham khảo phần Heatmap() Arguments.

Link to this sectionLàm cách nào để lưu đầu ra bản đồ nhiệt vào tệp video?#

Sử dụng cv2.VideoWriter của OpenCV và ghi results.plot_im cho mỗi khung hình được xử lý, như được hiển thị trong ví dụ chính. Thuộc tính plot_im chứa khung hình đã được áp dụng lớp phủ bản đồ nhiệt.

Link to this sectionTôi có thể kết hợp bản đồ nhiệt với việc đếm đối tượng không?#

Có. Truyền đối số region vào Heatmap() với các điểm đường, hình chữ nhật hoặc đa giác, và giải pháp sẽ đếm các đối tượng đi vào và đi ra khỏi khu vực đó trong khi bản đồ nhiệt được tạo. Kết quả trả về bao gồm in_count, out_count và số lượng theo từng lớp. Xem hướng dẫn đếm đối tượng để biết chi tiết cấu hình vùng.

Link to this sectionLàm thế nào tôi có thể chỉ trực quan hóa các lớp đối tượng cụ thể trong heatmap bằng Ultralytics YOLO26?#

Truyền đối số classes vào Heatmap() với các chỉ số lớp mà bạn muốn giữ lại. Ví dụ: classes=[0, 2] xây dựng bản đồ nhiệt chỉ từ người và xe hơi (chỉ số lớp COCO 0 và 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()

Link to this sectionĐiều gì làm cho các heatmap của Ultralytics YOLO26 khác biệt so với các công cụ trực quan hóa dữ liệu khác như OpenCV hoặc Matplotlib?#

Các bản đồ nhiệt Ultralytics YOLO26 tích hợp phát hiện đối tượng, theo dõi, tích lũy cường độ và hiển thị lớp phủ vào một lệnh gọi duy nhất, trong khi các công cụ chung như OpenCV hoặc Matplotlib yêu cầu bạn tự xây dựng quy trình đó. Giải pháp xử lý các luồng video trong thời gian thực và hỗ trợ theo dõi bền bỉ cùng các colormap có thể tùy chỉnh. Để biết chi tiết về mô hình cơ bản, hãy xem trang mô hình YOLO26.

Bình luận