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ải Bán lẻ
Bản đồ nhiệt giao thông vận tải Ultralytics YOLO11 Bản đồ nhiệt bán lẻ Ultralytics YOLO11
Bản đồ nhiệt giao thông vận tải Ultralytics YOLO11 Bả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ại Mặc định Mô tả
model str None Đường dẫn đến Tệp Mô hình Ultralytics YOLO.
colormap int cv2.COLORMAP_JET Bảng màu để sử dụng cho bản đồ nhiệt.
show_in bool True Cờ để kiểm soát việc có hiển thị số lượng trong luồng video hay không.
show_out bool True Cờ để 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.
region list '[(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ại Mặc định Mô tả
tracker str 'botsort.yaml' Chỉ định thuật toán theo dõi để sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml.
conf float 0.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ả.
iou float 0.5 Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện trùng lặp.
classes list None Lọ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.
verbose bool True Kiể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.
device str None Chỉ đị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ại Mặc định Mô tả
show bool False Nế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_width None or int None Chỉ đị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_conf bool True Hiể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_labels bool True Hiể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àu Mô tả
cv::COLORMAP_AUTUMN Bảng màu mùa thu
cv::COLORMAP_BONE Bản đồ màu xương
cv::COLORMAP_JET Bảng màu Jet
cv::COLORMAP_WINTER Bản đồ màu mùa đông
cv::COLORMAP_RAINBOW Bản đồ màu cầu vồng
cv::COLORMAP_OCEAN Bảng màu đại dương
cv::COLORMAP_SUMMER Bản đồ màu mùa hè
cv::COLORMAP_SPRING Bản đồ màu Spring
cv::COLORMAP_COOL Bản đồ màu sắc mát mẻ
cv::COLORMAP_HSV Bản đồ màu HSV (Hue, Saturation, Value)
cv::COLORMAP_PINK Bảng màu hồng
cv::COLORMAP_HOT Bản đồ màu nóng
cv::COLORMAP_PARULA Bảng màu Parula
cv::COLORMAP_MAGMA Bản đồ màu Magma
cv::COLORMAP_INFERNO Bảng màu Inferno
cv::COLORMAP_PLASMA Bảng màu Plasma
cv::COLORMAP_VIRIDIS Bảng màu Viridis
cv::COLORMAP_CIVIDIS Bảng màu Cividis
cv::COLORMAP_TWILIGHT Bảng màu Twilight
cv::COLORMAP_TWILIGHT_SHIFTED Bảng màu Shifted Twilight
cv::COLORMAP_TURBO Bảng màu Turbo
cv::COLORMAP_DEEPGREEN Bả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 bản đồ nhiệt Ultralytics YOLO11 khác biệt so với các công cụ trực quan hóa dữ liệu khác như các công cụ từ OpenCV hoặc Matplotlib?

Heatmap của Ultralytics YOLO11 được thiết kế đặc biệt để tích hợp với các mô hình theo dõiphát hiện đối tượng, cung cấp một 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 thông thường như OpenCV hoặc Matplotlib, heatmap của YOLO11 đượ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ề các tính năng độc đáo của YOLO11, hãy truy cập Giới thiệu về Ultralytics YOLO11.

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 nâng cao và tạo bản đồ nhiệt theo thời gian thực, biến nó trở thành một 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, các tính năng tiên tiến của YOLO11 như theo dõi liên tục, bản đồ màu tùy chỉnh và hỗ trợ nhiều định dạng xuất khác nhau làm cho nó vượt trội so với 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.



📅 Đã tạo 1 năm trước ✏️ Cập nhật 4 tháng trước

Bình luận