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
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 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:
- 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
- Cập nhật cường độ heatmap tại vị trí của đối tượng
- Áp dụng một bảng màu đã chọn để trực quan hóa các giá trị cường độ
- 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õi và phá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.