Chuyển đến nội dung

Trực quan hóa dữ liệu nâng cao: Bản đồ nhiệt sử dụng Ultralytics YOLO26 🚀

Giới thiệu về Heatmap

Mở Bản Đồ Nhiệt Trong Colab

Bản đồ nhiệt được tạo bằng Ultralytics YOLO26 biến đổi dữ liệu phức tạp thành một ma trận sống động, được mã hóa màu. Công cụ trực quan này sử dụng một phổ màu để biểu thị các giá trị dữ liệu khác nhau, trong đó các sắc thái ấm hơn cho thấy cường độ cao hơn và các tông màu lạnh hơn biểu thị các giá trị thấp hơn. Bản đồ nhiệt vượt trội trong việc trực quan hóa các mẫu dữ liệu phức tạp, mối tương quan và các điểm bất thường, mang đến một phương pháp tiếp cận dễ tiếp cận và hấp dẫn để diễn giải dữ liệu trên nhiều lĩnh vực khác nhau.



Xem: Bản đồ nhiệt sử dụng Ultralytics YOLO26

Tại sao nên chọn Bản đồ Nhiệt để Phân tích Dữ liệu?

  • Trực quan hóa phân phối dữ liệu trực quan: Bản đồ nhiệt đơn giản hóa việc hiểu sự tập trung và phân phối dữ liệu, chuyển đổi các tập dữ liệu phức tạp thành các định dạng trực quan dễ hiểu.
  • Phát hiện mẫu hiệu quả: Bằng cách trực quan hóa dữ liệu ở định dạng bản đồ nhiệt, việc phát hiện các xu hướng, cụm và giá trị ngoại lệ trở nên dễ dàng hơn, tạo điều kiện cho việc phân tích và hiểu biết sâu sắc nhanh hơn.
  • Nâng cao phân tích không gian và ra quyết định: Bản đồ nhiệt đóng vai trò quan trọng trong việc minh họa các mối quan hệ không gian, hỗ trợ quá trình ra quyết định trong các lĩnh vực như tình báo kinh doanh, nghiên cứu môi trường và quy hoạch đô thị.

Các ứng dụng thực tế

Giao thông vận tảiBán lẻ
Bản đồ nhiệt giao thông Ultralytics YOLO26Bản đồ nhiệt bán lẻ Ultralytics YOLO26
Bản đồ nhiệt giao thông Ultralytics YOLO26Bản đồ nhiệt bán lẻ Ultralytics YOLO26

Bản đồ nhiệt 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)]"
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="yolo26n.pt",  # path to the YOLO26 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, e.g., 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() Các đối số

Đây là bảng với Heatmap các đối số:

Đối sốLoạiMặc địnhMô tả
modelstrNoneĐường dẫn đến tệp mô hình Ultralytics YOLO.
colormapintcv2.COLORMAP_JETBảng màu để sử dụng cho bản đồ nhiệt.
show_inboolTrueCờ để kiểm soát việc có hiển thị số lượng trong luồng video hay không.
show_outboolTrueCờ để kiểm soát việc có hiển thị số lượng đối tượng đếm được trên luồng video hay không.
regionlist'[(20, 400), (1260, 400)]'Danh sách các điểm xác định vùng đếm.

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

Đối sốLoạiMặc địnhMô tả
trackerstr'botsort.yaml'Chỉ định thuật toán theo dõi để sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml.
conffloat0.1Đặt ngưỡng tin cậy cho các phát hiện; giá trị thấp hơn cho phép theo dõi nhiều đối tượng hơn nhưng có thể bao gồm các kết quả dương tính giả.
ioufloat0.7Đặt ngưỡng Intersection over Union (IoU) để lọc các detect chồng chéo.
classeslistNoneLọc kết quả theo chỉ số lớp. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các lớp được 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 về các đối tượng được theo dõi.
devicestrNoneChỉ định thiết bị cho suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng lựa 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 mô hình.

Ngoài ra, các đối số hiển thị được hỗ trợ được liệt kê bên dưới:

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

COLORMAP của bản đồ nhiệt

Tên Bảng màuMô tả
cv::COLORMAP_AUTUMNBảng màu mùa thu
cv::COLORMAP_BONEBản đồ màu xương
cv::COLORMAP_JETBảng màu Jet
cv::COLORMAP_WINTERBản đồ màu mùa đông
cv::COLORMAP_RAINBOWBản đồ màu cầu vồng
cv::COLORMAP_OCEANBảng màu đại dương
cv::COLORMAP_SUMMERBản đồ màu mùa hè
cv::COLORMAP_SPRINGBản đồ màu Spring
cv::COLORMAP_COOLBản đồ màu sắc mát mẻ
cv::COLORMAP_HSVBản đồ màu HSV (Hue, Saturation, Value)
cv::COLORMAP_PINKBảng màu hồng
cv::COLORMAP_HOTBản đồ màu nóng
cv::COLORMAP_PARULABảng màu Parula
cv::COLORMAP_MAGMABản đồ màu Magma
cv::COLORMAP_INFERNOBảng màu Inferno
cv::COLORMAP_PLASMABảng màu Plasma
cv::COLORMAP_VIRIDISBảng màu Viridis
cv::COLORMAP_CIVIDISBảng màu Cividis
cv::COLORMAP_TWILIGHTBảng màu Twilight
cv::COLORMAP_TWILIGHT_SHIFTEDBảng màu Shifted Twilight
cv::COLORMAP_TURBOBảng màu Turbo
cv::COLORMAP_DEEPGREENBảng màu Deep Green

Các bảng màu này thường được sử dụng để trực quan hóa dữ liệu với các biểu diễn màu khác nhau.

Bản đồ nhiệt hoạt động như thế nào trong Ultralytics YOLO26

Giải pháp bản đồ nhiệt trong Ultralytics YOLO26 mở rộng lớp ObjectCounter để tạo và trực quan hóa các mẫu chuyển động trong luồng video. Khi được khởi tạo, giải pháp sẽ tạo một lớp bản đồ nhiệt trống được cập nhật khi các đối tượng di chuyển qua khung hình.

Đối với mỗi đối tượng được phát hiện, giải pháp:

  1. track đối tượng qua các khung hình bằng khả năng tracking của YOLO26
  2. Cập nhật cường độ heatmap tại vị trí của đối tượng
  3. Áp dụng một bảng màu đã chọn để trực quan hóa các giá trị cường độ
  4. Lớp phủ heatmap màu lên khung hình gốc

Kết quả là một hình ảnh trực quan động được xây dựng theo thời gian, tiết lộ các kiểu lưu lượng truy cập, 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.

Câu hỏi thường gặp

Ultralytics YOLO26 tạo bản đồ nhiệt như thế nào và lợi ích của chúng là gì?

Ultralytics YOLO26 tạo bản đồ nhiệt bằng cách biến đổi dữ liệu phức tạp thành một ma trận mã hóa màu, trong đó các sắc thái khác nhau biểu thị cường độ dữ liệu. Bản đồ nhiệt giúp dễ dàng trực quan hóa các mẫu, mối tương quan và điểm bất thường trong dữ liệu. Các sắc thái ấm hơn cho thấy giá trị cao hơn, trong khi các tông màu lạnh hơn biểu thị giá trị thấp hơn. Các lợi ích chính bao gồm trực quan hóa phân phối dữ liệu trực quan, detect mẫu hiệu quả và phân tích không gian nâng cao để đưa ra quyết định. Để biết thêm chi tiết và các tùy chọn cấu hình, hãy tham khảo phần Cấu hình bản đồ nhiệt.

Tôi có thể sử dụng Ultralytics YOLO26 để track đối tượng và tạo bản đồ nhiệt đồng thời không?

Có, Ultralytics YOLO26 hỗ trợ track đối tượng và tạo bản đồ nhiệt đồng thời. Điều này có thể đạt được thông qua Heatmap giải pháp tích hợp với các mô hình track đối tượng. Để làm như vậy, bạn cần khởi tạo đối tượng bản đồ nhiệt và sử dụng khả năng tracking của YOLO26. Dưới đây là một ví dụ đơn giản:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo26n.pt")

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

Để được hướng dẫn thêm, hãy xem trang Chế Độ Theo Dõi.

Điều gì làm cho bản đồ nhiệt 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ư của OpenCV hay Matplotlib?

Bản đồ nhiệt Ultralytics YOLO26 được thiết kế đặc biệt để tích hợp với các mô hình detect đối tượng và track, cung cấp giải pháp toàn diện cho phân tích dữ liệu thời gian thực. Không giống như các công cụ trực quan hóa chung như OpenCV hoặc Matplotlib, bản đồ nhiệt YOLO26 được tối ưu hóa về hiệu suất và xử lý tự động, hỗ trợ các tính năng như persistent tracking, điều chỉnh hệ số suy giảm và lớp phủ video thời gian thực. Để biết thêm thông tin về các tính năng độc đáo của YOLO26, hãy truy cập Giới thiệu Ultralytics YOLO26.

Làm cách nào để tôi có thể chỉ trực quan hóa các lớp đối tượng cụ thể trong bản đồ nhiệt bằng Ultralytics YOLO26?

Bạn có thể trực quan hóa các lớp đối tượng cụ thể bằng cách chỉ định các lớp mong muốn trong track() phương thức của mô hình YOLO. Ví dụ: nếu bạn chỉ muốn hiển thị xe hơi và người (giả sử chỉ số lớp của chúng là 0 và 2), bạn có thể đặt classes tham số cho phù hợp.

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()

Tại sao các doanh nghiệp nên chọn Ultralytics YOLO26 để tạo bản đồ nhiệt trong phân tích dữ liệu?

Ultralytics YOLO26 cung cấp khả năng tích hợp liền mạch giữa detect đối tượng nâng cao và tạo bản đồ nhiệt thời gian thực, biến nó thành lựa chọn lý tưởng cho các doanh nghiệp muốn trực quan hóa dữ liệu hiệu quả hơn. Các ưu điểm chính bao gồm trực quan hóa phân phối dữ liệu trực quan, detect mẫu hiệu quả và phân tích không gian nâng cao để đưa ra quyết định tốt hơn. Ngoài ra, các tính năng tiên tiến của YOLO26 như persistent tracking, bản đồ màu tùy chỉnh và hỗ trợ nhiều định dạng xuất khác nhau giúp nó vượt trội hơn các công cụ khác như TensorFlow và OpenCV trong phân tích dữ liệu toàn diện. Tìm hiểu thêm về các ứng dụng kinh doanh tại Kế hoạch Ultralytics.



📅 Được tạo 2 năm trước ✏️ Cập nhật 7 ngày trước
glenn-jocherRizwanMunawarRizwanMunawarMatthewNoycepderrengerUltralyticsAssistantIvorZhu331AyushExelYOLOv5-Magic

Bình luận