Bỏ qua nội dung

TrackZone sử dụng Ultralytics YOLO11

TrackZone là gì?

TrackZone chuyên theo dõi các đối tượng trong các khu vực được chỉ định của một khung hình thay vì toàn bộ khung hình. Được xây dựng trên Ultralytics YOLO11 , nó tích hợp phát hiện và theo dõi đối tượng cụ thể trong các vùng cho video và nguồn cấp dữ liệu camera trực tiếp. YOLO11 Các thuật toán tiên tiến và công nghệ học sâu khiến sản phẩm trở thành lựa chọn hoàn hảo cho các trường hợp sử dụng thời gian thực, cung cấp khả năng theo dõi đối tượng chính xác và hiệu quả trong các ứng dụng như giám sát và theo dõi đám đông.

Ưu điểm của Theo dõi Đối tượng trong Vùng (TrackZone)

  • Phân tích có mục tiêu: Theo dõi các đối tượng trong các khu vực cụ thể cho phép có được thông tin chi tiết tập trung hơn, cho phép giám sát và phân tích chính xác các khu vực quan tâm, chẳng hạn như điểm vào hoặc khu vực hạn chế.
  • Nâng cao hiệu quả: Bằng cách thu hẹp phạm vi theo dõi vào các vùng được xác định, TrackZone giảm chi phí tính toán, đảm bảo xử lý nhanh hơn và hiệu suất tối ưu.
  • Tăng cường bảo mật: Theo dõi theo khu vực cải thiện khả năng giám sát bằng cách theo dõi các khu vực quan trọng, hỗ trợ phát hiện sớm hoạt động bất thường hoặc vi phạm an ninh.
  • Giải pháp có khả năng mở rộng: Khả năng tập trung vào các khu vực cụ thể giúp TrackZone thích ứng với nhiều tình huống khác nhau, từ không gian bán lẻ đến môi trường công nghiệp, đảm bảo khả năng tích hợp và mở rộng liền mạch.

Ứng dụng trong thế giới thực

Nông nghiệp Vận tải
Theo dõi cây trồng trong lĩnh vực sử dụng Ultralytics YOLO11 Theo dõi phương tiện trên đường bằng cách sử dụng Ultralytics YOLO11
Theo dõi cây trồng trong lĩnh vực sử dụng Ultralytics YOLO11 Theo dõi phương tiện trên đường bằng cách sử dụng Ultralytics YOLO11

TrackZone sử dụng YOLO11 Ví dụ

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video/file.mp4"

# Pass region coordinates
yolo solutions trackzone show=True region=[(150, 150), (1130, 150), (1130, 570), (150, 570)]
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))

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init TrackZone (Object Tracking in Zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # Display the output
    region=region_points,  # Pass region points
    model="yolo11n.pt",  # You can use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # Adjust the line width for bounding boxes and text display
    # classes=[0, 2],  # If you want to count specific classes i.e. person and car with COCO pretrained model.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    im0 = trackzone.trackzone(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Lý lẽ TrackZone

Đây là một bảng với TrackZone lập luận:

Tên Kiểu Mặc định Sự miêu tả
model str None Đường dẫn đến Ultralytics YOLO Tệp mẫu
region list [(150, 150), (1130, 150), (1130, 570), (150, 570)] Danh sách các điểm xác định vùng theo dõi đối tượng.
line_width int 2 Độ dày của đường cho hộp giới hạn.
show bool False Đánh dấu để kiểm soát việ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.

CÂU HỎI THƯỜNG GẶP

Làm thế nào để tôi theo dõi các đối tượng trong một khu vực hoặc vùng cụ thể của một khung hình video bằng cách sử dụng Ultralytics YOLO11 ?

Việc theo dõi các đối tượng trong một khu vực hoặc vùng xác định của một khung hình video rất đơn giản với Ultralytics YOLO11 . Chỉ cần sử dụng lệnh được cung cấp bên dưới để bắt đầu theo dõi. Phương pháp này đảm bảo phân tích hiệu quả và kết quả chính xác, lý tưởng cho các ứng dụng như giám sát, quản lý đám đông hoặc bất kỳ tình huống nào yêu cầu theo dõi theo vùng.

yolo solutions trackzone source="path/to/video/file.mp4" show=True

Làm thế nào tôi có thể sử dụng TrackZone trong Python với Ultralytics YOLO11 ?

Chỉ với một vài dòng mã, bạn có thể thiết lập tính năng theo dõi đối tượng trong các vùng cụ thể, giúp dễ dàng tích hợp vào các dự án của bạn.

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))

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init TrackZone (Object Tracking in Zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # Display the output
    region=region_points,  # Pass region points
    model="yolo11n.pt",
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    im0 = trackzone.trackzone(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Làm thế nào để cấu hình các điểm vùng để xử lý video bằng cách sử dụng Ultralytics TrackZone là gì?

Cấu hình các điểm vùng để xử lý video với Ultralytics TrackZone đơn giản và có thể tùy chỉnh. Bạn có thể trực tiếp xác định và điều chỉnh các vùng thông qua Python kịch bản, cho phép kiểm soát chính xác các khu vực bạn muốn theo dõi.

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Init TrackZone (Object Tracking in Zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # Display the output
    region=region_points,  # Pass region points
)
📅 Được tạo cách đây 8 ngày ✏️ Đã cập nhật cách đây 8 ngày

Bình luận