TrackZone sử dụng Ultralytics YOLO11
TrackZone là gì?
TrackZone chuyên giám sát các đối tượng trong các khu vực được chỉ định của 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 tính năng 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. Các thuật toán tiên tiến và công nghệ học sâu của YOLO11 khiến nó trở thành một 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 đám đông và giám sát.
Xem: Cách Theo Dõi Các Đối Tượng trong Vùng Sử Dụng Ultralytics YOLO11 | TrackZone 🚀
Ưu điểm của tính năng 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 những hiểu biết sâu sắc 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ế.
- Cải Thiện Hiệu Quả: Bằng cách thu hẹp phạm vi theo dõi xuống các vùng được xác định, TrackZone giúp giảm tải tính toán, đảm bảo xử lý nhanh hơn và hiệu suất tối ưu.
- Nâng cao tính bảo mật: Theo dõi theo vùng giúp 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 các 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 có thể 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 tích hợp và khả năng mở rộng liền mạch.
Các ứng dụng thực tế
Nông nghiệp | Giao thông vận tải |
---|---|
![]() |
![]() |
Theo dõi Cây trồng trên Đồng ruộng Sử dụng Ultralytics YOLO11 | Theo dõi Phương tiện trên Đường bằng Ultralytics YOLO11 |
TrackZone sử dụng Ultralytics YOLO
# Run a trackzone example
yolo solutions trackzone show=True
# Pass a source video
yolo solutions trackzone show=True source="path/to/video.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.mp4")
assert cap.isOpened(), "Error reading video file"
# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
# 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("trackzone_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", # use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
# line_width=2, # adjust the line width for bounding boxes and text display
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = trackzone(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
TrackZone
Các đối số
Đây là bảng với TrackZone
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. |
region |
list |
'[(20, 400), (1260, 400)]' |
Danh sách các điểm xác định vùng đếm. |
Giải pháp TrackZone bao gồm hỗ trợ cho track
tham số:
Đố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. |
Hơn nữa, các tùy chọn trực quan hóa sau đây có sẵn:
Đố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. |
Câu hỏi thường gặp
Làm cách nào để theo dõi các đối tượng trong một khu vực hoặc vùng cụ thể của khung hình video bằng Ultralytics YOLO11?
Việc theo dõi các đối tượng trong một khu vực hoặc vùng được xác định của 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. Cách tiếp cận này đảm bảo phân tích hiệu quả và kết quả chính xác, làm cho nó trở nên 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.mp4" show=True
Làm thế nào để sử dụng TrackZone trong Python với Ultralytics YOLO11?
Chỉ với một vài dòng code, bạn có thể thiết lập theo dõi đối tượng trong các khu vực 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.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
results = trackzone(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Làm cách nào để định cấu hình các điểm vùng để xử lý video bằng Ultralytics TrackZone?
Việc cấu hình các điểm vùng để xử lý video bằng Ultralytics TrackZone rất đơ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 một script Python, cho phép kiểm soát chính xác các khu vực bạn muốn giám sát.
# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
# Initialize trackzone
trackzone = solutions.TrackZone(
show=True, # display the output
region=region_points, # pass region points
)