Ánh xạ đối tượng VisionEye View sử dụng Ultralytics YOLO11 🚀
Ánh xạ đối tượng VisionEye là gì?
Ultralytics YOLO11 VisionEye cung cấp khả năng cho máy tính xác định và xác định chính xác các đối tượng, mô phỏng độ chính xác quan sát của mắt người. Chức năng này cho phép máy tính phân biệt và tập trung vào các đối tượng cụ thể, giống như cách mắt người quan sát các chi tiết từ một góc nhìn cụ thể.
Ánh Xạ VisionEye sử dụng Ultralytics YOLO
# Monitor objects position with visioneye
yolo solutions visioneye show=True
# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# 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("visioneye_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo11n.pt", # use any model that Ultralytics support, i.e, YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
vision_point=(50, 50), # the point, where vision will view objects and draw tracks
)
# 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 = visioneye(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
VisionEye
Các đối số
Đây là bảng với VisionEye
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. |
vision_point |
tuple[int, int] |
(20, 20) |
Điểm mà tầm nhìn sẽ theo dõi các đối tượng và vẽ đường dẫn bằng Giải pháp VisionEye. |
Bạn cũng có thể sử dụng nhiều track
các tham số trong VisionEye
giải pháp:
Đố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, một số đối số trực quan hóa được hỗ trợ, như được liệt kê dưới đây:
Đố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ách VisionEye Hoạt Động
VisionEye hoạt động bằng cách thiết lập một điểm nhìn cố định trong khung hình và vẽ các đường thẳng từ điểm này đến các đối tượng được phát hiện. Điều này mô phỏng cách thị giác của con người tập trung vào nhiều đối tượng từ một điểm nhìn duy nhất. Giải pháp này sử dụng theo dõi đối tượng để duy trì việc xác định nhất quán các đối tượng trên các khung hình, tạo ra một biểu diễn trực quan về mối quan hệ không gian giữa người quan sát (điểm nhìn) và các đối tượng trong cảnh.
Hàm process
method trong lớp VisionEye thực hiện một số hoạt động chính:
- Trích xuất các track (bounding box, class và mask) từ hình ảnh đầu vào
- Tạo một trình chú thích để vẽ các hộp giới hạn và nhãn
- Đối với mỗi đối tượng được phát hiện, vẽ một nhãn hộp và tạo một đường tầm nhìn từ điểm tầm nhìn
- Trả về hình ảnh được chú thích với thống kê theo dõi
Phương pháp này đặc biệt hữu ích cho các ứng dụng yêu cầu nhận biết không gian và trực quan hóa mối quan hệ giữa các đối tượng, chẳng hạn như hệ thống giám sát, điều hướng tự động và các ứng dụng tương tác.
Các ứng dụng của VisionEye
Ánh xạ đối tượng VisionEye có nhiều ứng dụng thực tế trong nhiều ngành công nghiệp khác nhau:
- An ninh và Giám sát: Giám sát nhiều đối tượng quan tâm từ một vị trí camera cố định
- Phân tích bán lẻ: Theo dõi các kiểu di chuyển của khách hàng liên quan đến cách trưng bày sản phẩm trong cửa hàng
- Phân tích thể thao: Phân tích vị trí và chuyển động của người chơi từ góc nhìn của huấn luyện viên
- Phương Tiện Tự Hành: Trực quan hóa cách một chiếc xe "nhìn thấy" và ưu tiên các đối tượng trong môi trường của nó
- Tương tác người-máy: Tạo ra các giao diện trực quan hơn, phản hồi các mối quan hệ không gian
Bằng cách kết hợp VisionEye với các giải pháp Ultralytics khác như tính toán khoảng cách hoặc ước tính tốc độ, bạn có thể xây dựng các hệ thống toàn diện không chỉ theo dõi các đối tượng mà còn hiểu các mối quan hệ không gian và hành vi của chúng.
Lưu ý
Nếu có bất kỳ thắc mắc nào, vui lòng đăng câu hỏi của bạn trong Mục Vấn đề của Ultralytics hoặc mục thảo luận được đề cập bên dưới.
Câu hỏi thường gặp
Làm cách nào để bắt đầu sử dụng VisionEye Object Mapping với Ultralytics YOLO11?
Để bắt đầu sử dụng VisionEye Object Mapping với Ultralytics YOLO11, trước tiên, bạn cần cài đặt gói Ultralytics YOLO qua pip. Sau đó, bạn có thể sử dụng mã mẫu được cung cấp trong tài liệu để thiết lập phát hiện đối tượng với VisionEye. Dưới đây là một ví dụ đơn giản để giúp bạn bắt đầu:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# 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("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init vision eye object
visioneye = solutions.VisionEye(
show=True, # display the output
model="yolo11n.pt", # use any model that Ultralytics support, i.e, YOLOv10
classes=[0, 2], # generate visioneye view for specific classes
)
# 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 = visioneye(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
Tại sao tôi nên sử dụng Ultralytics YOLO11 để ánh xạ và theo dõi đối tượng?
Ultralytics YOLO11 nổi tiếng về tốc độ, độ chính xác và dễ tích hợp, khiến nó trở thành lựa chọn hàng đầu cho việc ánh xạ và theo dõi đối tượng. Các ưu điểm chính bao gồm:
- Hiệu suất vượt trội: Mang lại độ chính xác cao trong việc phát hiện đối tượng theo thời gian thực.
- Tính linh hoạt: Hỗ trợ nhiều tác vụ khác nhau như phát hiện, theo dõi và tính toán khoảng cách.
- Cộng đồng và Hỗ trợ: Tài liệu phong phú và cộng đồng GitHub năng động để khắc phục sự cố và cải tiến.
- Dễ sử dụng: API trực quan đơn giản hóa các tác vụ phức tạp, cho phép triển khai và lặp lại nhanh chóng.
Để biết thêm thông tin về các ứng dụng và lợi ích, hãy xem tài liệu Ultralytics YOLO11.
Làm thế nào để tích hợp VisionEye với các công cụ học máy khác như Comet hoặc ClearML?
Ultralytics YOLO11 có thể tích hợp liền mạch với các công cụ máy học khác nhau như Comet và ClearML, tăng cường khả năng theo dõi thử nghiệm, cộng tác và tái tạo. Hãy làm theo các hướng dẫn chi tiết về cách sử dụng YOLOv5 với Comet và tích hợp YOLO11 với ClearML để bắt đầu.
Để khám phá thêm và xem các ví dụ tích hợp, hãy xem Hướng Dẫn Tích Hợp Ultralytics của chúng tôi.