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 hình ảnh trực quan này bằng cách sử dụng Python.
Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts
Link to this sectionMẫu trực quan#
| Biểu đồ đường | Biểu đồ cột | Biểu đồ tròn |
|---|---|---|
![]() | ![]() | ![]() |
Link to this sectionTại sao biểu đồ lại quan trọng#
- Biểu đồ đường rất lý tưởng để theo dõi những thay đổi trong khoảng thời gian ngắn và dài, cũng như so sánh các thay đổi cho nhiều nhóm trong cùng một khoảng thời gian.
- Mặt khác, biểu đồ cột phù hợp để so sánh số 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à giá trị số của nó.
- Cuối cùng, biểu đồ tròn có hiệu quả trong việc 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ể.
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=TrueLink to this sectionCác đối số Analytics#
Dưới đây là bảng mô tả các đối số của Analytics:
| Tham số | Loại | Mặc định | Mô tả |
|---|---|---|---|
model | str | None | Đường dẫn đến tệp mô hình Ultralytics YOLO. |
analytics_type | str | '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.
| Tham số | Loại | Mặc định | Mô tả |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Chỉ định thuật toán theo dõi cần sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml. |
conf | float | 0.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ả. |
iou | float | 0.7 | Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện chồng lấp. |
classes | list | None | Lọc kết quả theo chỉ mục 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 cho các đối tượng được theo dõi. |
device | str | None | Chỉ định thiết bị để 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 mô hình. |
Ngoài ra, các đối số trực quan hóa sau đây cũng được hỗ trợ:
| Tham số | Loại | Mặc định | Mô tả |
|---|---|---|---|
show | bool | False | Nế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 hình ảnh tức thì trong quá trình phát triển hoặc kiểm tra. |
line_width | int or None | None | Chỉ định độ dày đường của khung bao. Nếu là None, độ dày đường sẽ đượ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 để đảm bảo độ rõ nét. |
Link to this sectionKết luận#
Hiểu rõ 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 có thể giúp bạn truyền tải câu chuyện về dữ liệu của mình một cách rõ ràng và hiệu quả hơn. Giải pháp Phân tích Ultralytics YOLO26 cung cấp cách thức hợp lý để tạo các hình ảnh trực quan này từ kết quả phát hiện đối tượng và theo dõi của bạn, giúp việc trích xuất thông tin chi tiết từ dữ liệu trực quan trở nên dễ dàng hơn.
Link to this sectionCâu hỏi thường gặp (FAQ)#
Link to this sectionLàm thế nào để tạo biểu đồ đường sử dụng Phân tích Ultralytics YOLO26?#
Để tạo biểu đồ đường sử dụng Phân tích Ultralytics YOLO26, hãy thực hiện theo các bước sau:
- Tải mô hình YOLO26 và mở tệp video của bạn.
- Khởi tạo lớp
Analyticsvới loại được đặt là "line." - 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 trên mỗi khung hình.
- 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 nhiều lợi ích:
- Trực quan hóa dữ liệu thời gian thực: Tích hợp liền mạch các kết quả phát hiện đối tượng vào biểu đồ cột để cập nhật động.
- 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.
- Tùy chỉnh: Tùy chỉnh tiêu đề, nhãn, màu sắc và nhiều tùy chọn khác để phù hợp với yêu cầu cụ thể của bạn.
- Hiệu quả: Xử lý hiệu quả lượng dữ liệu lớn và cập nhật biểu đồ trong 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à một lựa chọn tuyệt vời để tạo biểu đồ tròn vì:
- Tích hợp với Phát hiện đối tượng: Tích hợp trực tiếp các kết quả phát hiện đối tượng vào biểu đồ tròn để có thông tin chi tiết tức thì.
- 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 giản.
- Có thể 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.
- Cập nhật thời gian thực: Xử lý và trực quan hóa dữ liệu trong thời gian thực, điều này 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 nhiều loại 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 các đối tượng được theo dõi.
Ví dụ về việc 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ư OpenCV và TensorFlow?#
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:
- Độ 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ĩa và phân loại.
- 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.
- 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.
- Ứ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 mô hình tùy chỉnh và xuất sang các định dạng khác nhau như ONNX, TensorRT và CoreML.
- 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.
Để có các so sánh chi tiết hơn và các trường hợp sử dụng, hãy khám phá Blog Ultralytics của chúng tôi.


