Meet YOLO26: next-gen vision AI.

Link to this sectionPhân tích sử dụng Ultralytics YOLO26#

Link to this sectionGiới thiệu#

Hướng dẫn này cung cấp cái nhìn tổng quan toàn diện về ba loại trực quan hóa dữ liệu cơ bản: biểu đồ đường, biểu đồ cột và biểu đồ tròn. Mỗi phần bao gồm các hướng dẫn từng bước và đoạn mã để tạo các biểu đồ này bằng Python.



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

Link to this sectionMẫu hình ảnh trực quan#

Biểu đồ đườngBiểu đồ cộtBiểu đồ tròn
Biểu đồ đường phân tích YOLO cho theo dõi đối tượngBiểu đồ cột phân tích YOLO cho đếm số lượng phát hiệnBiểu đồ tròn phân tích YOLO cho phân phối lớp

Link to this sectionTại sao các biểu đồ lại quan trọng#

  • Biểu đồ đường rất lý tưởng để theo dõi những thay đổi trong thời gian ngắn và dài, cũng như để so sánh sự thay đổi của nhiều nhóm trong cùng một khoảng thời gian.
  • Ngược lại, biểu đồ cột phù hợp để so sánh định lượng giữa các danh mục khác nhau và hiển thị mối quan hệ giữa một danh mục với giá trị số của nó.
  • Cuối cùng, biểu đồ tròn hiệu quả để minh họa tỷ lệ giữa các danh mục và hiển thị các phần của một tổng thể.
Phân tích sử dụng Ultralytics YOLO
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Link to this sectionCác đối số của Analytics#

Dưới đây là bảng phác thảo các đối số của Analytics:

Đối sốLoạiMặc địnhMô tả
modelstrNoneĐường dẫn đến tệp model Ultralytics YOLO.
analytics_typestr'line'Loại biểu đồ, ví dụ: line, bar, area, hoặc pie.

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

Đố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 sau đây cũng được hỗ trợ:

Đố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.

Link to this sectionKết luận#

Việc hiểu khi nào và làm thế nào để sử dụng các loại trực quan hóa khác nhau là rất quan trọng để phân tích dữ liệu hiệu quả. Biểu đồ đường, biểu đồ cột và biểu đồ tròn là những công cụ cơ bản giúp bạn truyền tải câu chuyện của dữ liệu một cách rõ ràng và hiệu quả hơn. Giải pháp Analytics của Ultralytics YOLO26 cung cấp phương pháp hợp lý để tạo các trực quan hóa này từ kết quả phát hiện đối tượng và theo dõi của bạn, giúp dễ dàng trích xuất những thông tin chi tiết có ý nghĩa từ dữ liệu hình ảnh.

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

Link to this sectionLàm thế nào để tạo biểu đồ đường bằng Analytics của Ultralytics YOLO26?#

Để tạo biểu đồ đường bằng Analytics của Ultralytics YOLO26, hãy thực hiện các bước sau:

  1. Tải một model YOLO26 và mở tệp video của bạn.
  2. Khởi tạo lớp Analytics với loại (type) được đặt là "line."
  3. Lặp qua các khung hình video, cập nhật biểu đồ đường với dữ liệu liên quan, chẳng hạn như số lượng đối tượng mỗi khung hình.
  4. Lưu video đầu ra hiển thị biểu đồ đường.

Ví dụ:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Để biết thêm chi tiết về cách cấu hình lớp Analytics, hãy truy cập phần Phân tích sử dụng Ultralytics YOLO26.

Link to this sectionLợi ích của việc sử dụng Ultralytics YOLO26 để tạo biểu đồ cột là gì?#

Sử dụng Ultralytics YOLO26 để tạo biểu đồ cột mang lại một số lợi ích:

  1. Trực quan hóa dữ liệu thời gian thực: Tích hợp liền mạch kết quả phát hiện đối tượng vào biểu đồ cột để cập nhật động.
  2. Dễ sử dụng: API và các hàm đơn giản giúp việc triển khai và trực quan hóa dữ liệu trở nên dễ dàng.
  3. Tùy chỉnh: Tùy chỉnh tiêu đề, nhãn, màu sắc và nhiều thông số khác để phù hợp với yêu cầu cụ thể của bạn.
  4. Hiệu suất: Xử lý hiệu quả lượng dữ liệu lớn và cập nhật biểu đồ theo thời gian thực trong quá trình xử lý video.

Sử dụng ví dụ sau để tạo biểu đồ cột:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Để tìm hiểu thêm, hãy truy cập phần Biểu đồ cột trong hướng dẫn.

Link to this sectionTại sao tôi nên sử dụng Ultralytics YOLO26 để tạo biểu đồ tròn trong các dự án trực quan hóa dữ liệu của mình?#

Ultralytics YOLO26 là lựa chọn tuyệt vời để tạo biểu đồ tròn vì:

  1. Tích hợp với phát hiện đối tượng: Tích hợp trực tiếp kết quả phát hiện đối tượng vào biểu đồ tròn để có thông tin chi tiết ngay lập tức.
  2. API thân thiện với người dùng: Dễ dàng thiết lập và sử dụng với mã nguồn tối thiểu.
  3. Khả năng tùy chỉnh: Nhiều tùy chọn tùy chỉnh cho màu sắc, nhãn và hơn thế nữa.
  4. Cập nhật thời gian thực: Xử lý và trực quan hóa dữ liệu theo thời gian thực, rất lý tưởng cho các dự án phân tích video.

Dưới đây là một ví dụ nhanh:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Để biết thêm thông tin, hãy tham khảo phần Biểu đồ tròn trong hướng dẫn.

Link to this sectionUltralytics YOLO26 có thể được sử dụng để theo dõi đối tượng và cập nhật trực quan hóa một cách động không?#

Có, Ultralytics YOLO26 có thể được sử dụng để theo dõi đối tượng và cập nhật trực quan hóa một cách động. Nó hỗ trợ theo dõi nhiều đối tượng trong thời gian thực và có thể cập nhật các trực quan hóa khác nhau như biểu đồ đường, biểu đồ cột và biểu đồ tròn dựa trên dữ liệu của đối tượng được theo dõi.

Ví dụ về theo dõi và cập nhật biểu đồ đường:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Để tìm hiểu về chức năng đầy đủ, hãy xem phần Theo dõi.

Link to this sectionĐiều gì làm cho Ultralytics YOLO26 khác biệt so với các giải pháp phát hiện đối tượng khác như OpenCVTensorFlow?#

Ultralytics YOLO26 nổi bật so với các giải pháp phát hiện đối tượng khác như OpenCV và TensorFlow vì nhiều lý do:

  1. Độ chính xác hàng đầu: YOLO26 cung cấp độ chính xác vượt trội trong các tác vụ phát hiện đối tượng, phân đoạn cá thể, phân đoạn ngữ nghĩaphân loại.
  2. Dễ sử dụng: API thân thiện với người dùng cho phép triển khai và tích hợp nhanh chóng mà không cần lập trình phức tạp.
  3. Hiệu suất thời gian thực: Được tối ưu hóa cho suy luận tốc độ cao, phù hợp cho các ứng dụng thời gian thực.
  4. Ứng dụng đa dạng: Hỗ trợ nhiều tác vụ bao gồm theo dõi đa đối tượng, huấn luyện model tùy chỉnh và xuất sang các định dạng khác nhau như ONNX, TensorRT và CoreML.
  5. Tài liệu toàn diện: Tài liệu phong phú và tài nguyên blog hướng dẫn người dùng qua từng bước.

Để biết thêm các so sánh và trường hợp sử dụng chi tiết, hãy khám phá Blog Ultralytics của chúng tôi.

Bình luận