Phân tích sử dụng Ultralytics YOLO11
Giới thiệu
Hướng dẫn này cung cấp tổng quan toàn diện về ba loại hình trực quan hóa dữ liệu cơ bản: biểu đồ đường, biểu đồ thanh và biểu đồ hình tròn. Mỗi phần bao gồm hướng dẫn từng bước và đoạn mã về cách tạo các hình ảnh trực quan này bằng cách sử dụng Python .
Xem: Cách tạo Biểu đồ phân tích bằng cách sử dụng Ultralytics | Biểu đồ đường, Biểu đồ thanh, Biểu đồ diện tích và Biểu đồ tròn
Mẫu hình ảnh
Biểu đồ đường | Cốt truyện quán bar | Biểu đồ hình tròn |
---|---|---|
Tại sao đồ thị lại quan trọng
- Biểu đồ đường lý tưởng để theo dõi các thay đổi trong thời gian ngắn và dài và để 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 đồ thanh phù hợp để so sánh số lượng trên 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 đồ hình tròn có 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 tổng thể.
Ví dụ về Analytics
yolo solutions analytics show=True
# pass the source
yolo solutions analytics source="path/to/video/file.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
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("Path/to/video/file.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))
# Video writer
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1920, 1080), # This is fixed
)
# Init analytics
analytics = solutions.Analytics(
show=True, # Display the output
analytics_type="line", # Pass the analytics type, could be "pie", "bar" or "area".
model="yolo11n.pt", # Path to the YOLO11 model file
# classes=[0, 2], # If you want to count specific classes i.e person and car with COCO pretrained model.
)
# Process video
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
Lý lẽ Analytics
Đây là bảng với Analytics
Lập luận:
Tên | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
analytics_type | str | line | Kiểu biểu đồ như "đường", "thanh", "diện tích", "hình tròn" |
model | str | None | Đường dẫn đến Ultralytics YOLO Tệp mẫu |
line_width | int | 2 | Độ dày dòng cho các hộp giới hạn. |
show | bool | False | Gắn cờ để kiểm soát việc có hiển thị luồng video hay không. |
Lập luận model.track
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
source | str | None | Chỉ định thư mục nguồn cho hình ảnh hoặc video. Hỗ trợ đường dẫn tệp và URL. |
persist | bool | False | Cho phép theo dõi liên tục các đối tượng giữa các khung hình, duy trì ID trên các chuỗi video. |
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 việ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 Giao điểm trên Liên hợp (IoU) để lọc các phát hiện chồng chéo. |
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 hình ảnh trực quan về các đối tượng được theo dõi. |
Kết thú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 đồ thanh và biểu đồ hình 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 dữ liệu của mình rõ ràng và hiệu quả hơn.
FAQ
Làm thế nào để tôi tạo biểu đồ đường bằng cách sử dụng Ultralytics Phân tích YOLO11?
Để tạo biểu đồ đường bằng cách sử dụng Ultralytics YOLO11 Analytics, hãy làm theo các bước sau:
- Tải mô hình YOLO11 và mở tệp video của bạn.
- Khởi tạo
Analytics
lớp với kiểu được đặt thành "dòng". - Lặp qua các khung 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/file.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,
(1920, 1080), # 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
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
Để biết thêm chi tiết về cách định cấu hình Analytics
lớp học, ghé thăm Phân tích sử dụng Ultralytics YOLO11 📊 phần.
Lợi ích của việc sử dụng là gì? Ultralytics YOLO11 để tạo biểu đồ thanh?
Sử dụng Ultralytics YOLO11 dùng để tạo biểu đồ thanh mang lại một số lợi ích sau:
- Trực quan hóa dữ liệu theo 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 đồ thanh để cập nhật động.
- Dễ sử dụng: API và các chức năng đơn giản giúp việc triển khai và trực quan hóa dữ liệu trở nên đơn giản.
- Tùy chỉnh: Tùy chỉnh tiêu đề, nhãn, màu sắc và hơn thế nữa để 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 lớn dữ liệu và cập nhật cốt truyện trong thời gian thực trong quá trình xử lý video.
Sử dụng ví dụ sau để tạo biểu đồ thanh:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("Path/to/video/file.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,
(1920, 1080), # 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
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # 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 Bar Plot trong hướng dẫn.
Tại sao tôi nên sử dụng Ultralytics YOLO11 để tạo biểu đồ hình tròn trong các dự án trực quan hóa dữ liệu của tôi?
Ultralytics YOLO11 là lựa chọn tuyệt vời để tạo biểu đồ hình tròn vì:
- 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 đồ hình tròn để có thông tin chi tiết ngay lập tức.
- API thân thiện với người dùng: Đơn giản để thiết lập và sử dụng với mã tối thiểu.
- Có thể tùy chỉnh: Các tùy chọn tùy chỉnh khác nhau 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, 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/file.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,
(1920, 1080), # 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
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # 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 đồ hình tròn trong hướng dẫn.
Có thể Ultralytics YOLO11 có thể được sử dụng để theo dõi các đối tượng và cập nhật hình ảnh động không?
Đúng, Ultralytics YOLO11 có thể được sử dụng để theo dõi các đố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 theo thời gian thực và có thể cập nhật nhiều trực quan hóa khác nhau như biểu đồ đường, biểu đồ thanh 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ề theo dõi và cập nhật biểu đồ đường:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("Path/to/video/file.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,
(1920, 1080), # 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
im0 = analytics.process_data(im0, frame_count) # update analytics graph every frame
out.write(im0) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
Để tìm hiểu về chức năng hoàn chỉnh, hãy xem phần Theo dõi .
Điều gì làm cho Ultralytics YOLO11 có gì 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 YOLO11 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 tiên tiến : YOLO11 cung cấp độ chính xác vượt trội trong các nhiệm vụ phát hiện, phân đoạn và phân loại đối tượng.
- 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 mã hóa mở rộng.
- 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 với các ứng dụng thời gian thực.
- Ứng dụng đa dạng: Hỗ trợ các tác vụ khác nhau bao gồm theo dõi đa đối tượng, đào tạo mô hình tùy chỉnh và xuất sang các định dạng khác nhau như ONNX, TensorRTvà CoreML.
- Tài liệu toàn diện: Tài liệu mở rộng và tài nguyên blog để hướng dẫn người dùng qua từng bước.
Để biết thêm thông tin so sánh chi tiết và trường hợp sử dụng, hãy khám phá Ultralytics Tin tức.