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 YOLO11 🚀

Giới thiệu về Heatmap

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

Bản đồ nhiệt được tạo bằng Ultralytics YOLO11 chuyển đổi dữ liệu phức tạp thành một ma trận được mã hóa màu sắc sống động. Công cụ trực quan này sử dụng một quang phổ màu sắc để biểu thị các giá trị dữ liệu khác nhau, trong đó các màu ấm hơn biểu thị cường độ cao hơn và các tông màu lạnh hơn biểu thị 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, các mối tương quan và các điểm bất thường, cung cấp 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 các lĩnh vực khác nhau.



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

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 vận tải Ultralytics YOLO11Bản đồ nhiệt bán lẻ Ultralytics YOLO11
Bản đồ nhiệt giao thông vận tải Ultralytics YOLO11Bản đồ nhiệt bán lẻ Ultralytics YOLO11

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="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() 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 một Ultralytics YOLO tập tin mô hình.
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.3Đặ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.5Đặt Giao điểm trên Union ( IoU ) ngưỡng để lọc các phát hiện 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_widthNone or intNoneChỉ đị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.

Cách Heatmap Hoạt Động trong Ultralytics YOLO11

Giải pháp Heatmap trong Ultralytics YOLO11 mở rộng lớp ObjectCounter để tạo và trực quan hóa các kiể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 heatmap 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. Theo dõi đối tượng trên các khung hình bằng cách sử dụng khả năng theo dõi của YOLO11
  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 YOLO11 tạo ra bản đồ nhiệt như thế nào và lợi ích của chúng là gì?

Ultralytics YOLO11 tạo ra bản đồ nhiệt bằng cách chuyển đổi dữ liệu phức tạp thành một ma trận được mã hóa màu, trong đó các sắc thái khác nhau thể hiện cường độ dữ liệu. Bản đồ nhiệt giúp bạn dễ dàng hình dung 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 biểu thị các giá trị cao hơn, trong khi các tông màu lạnh hơn biểu thị các giá trị thấp hơn. Các lợi ích chính bao gồm trực quan hóa trực quan về phân phối dữ liệu, phát hiện mẫu hiệu quả và phân tích không gian nâng cao để ra quyết định. Để biết thêm chi tiết và 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 YOLO11 để thực hiện theo dõi đối tượng và tạo bản đồ nhiệt đồng thời không?

Có, Ultralytics YOLO11 hỗ trợ theo dõi đố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 theo dõi đối tượng. Để thực hiện việc này, bạn cần khởi tạo đối tượng bản đồ nhiệt và sử dụng các khả năng theo dõi của YOLO11. 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="yolo11n.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 Ultralytics YOLO11 bản đồ nhiệt khác với các công cụ trực quan hóa dữ liệu khác như OpenCV hoặc Matplotlib ?

Ultralytics YOLO11 Bản đồ nhiệt được thiết kế đặc biệt để tích hợp với các mô hình phát hiện và theo dõi đối tượng , cung cấp giải pháp toàn diện cho việc phân tích dữ liệu theo 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 , YOLO11 Bản đồ nhiệt được tối ưu hóa cho hiệu suất và xử lý tự động, hỗ trợ các tính năng như theo dõi liên tục, điều chỉnh hệ số suy giảm và lớp phủ video theo thời gian thực. Để biết thêm thông tin về YOLO11 Để biết thêm các tính năng độc đáo của Ultralytics YOLO11 , hãy truy cập phần Giới thiệu .

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

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="yolo11n.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 YOLO11 để tạo bản đồ nhiệt trong phân tích dữ liệu?

Ultralytics YOLO11 cung cấp khả năng tích hợp liền mạch giữa tính năng phát hiện đối tượng tiên tiến và tạo bản đồ nhiệt theo thời gian thực, khiến đây trở 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, phát hiện 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, YOLO11 Các tính năng tiên tiến của như theo dõi liên tục, bản đồ màu có thể tùy chỉnh và hỗ trợ nhiều định dạng xuất khác nhau khiến nó vượt trội hơn các công cụ khác như TensorFlow và OpenCV để 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 Ultralytics Plans .



📅 Được tạo ra cách đây 1 năm ✏️ Đã cập nhật cách đây 6 tháng
glenn-jocherRizwanMunawarMatthewNoyceUltralyticsAssistantIvorZhu331AyushExelYOLOv5-Magic

Bình luận