VisionEye View Object Mapping sử dụng Ultralytics YOLO11 🚀
VisionEye Object Mapping là gì?
Ultralytics YOLO11 VisionEye cung cấp khả năng cho máy tính xác định và định vị 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ể.
VisionEye Mapping sử dụng Ultralytics YOLO
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
Lập luận
Đây là một bảng với VisionEye
lập luận:
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
model |
str |
None |
Đường dẫn đến Ultralytics YOLO Tệp mẫu. |
vision_point |
tuple[int, int] |
(50, 50) |
Điểm mà thị giác sẽ theo dõi các vật thể và vẽ đường đi bằng Giải pháp VisionEye. |
Bạn cũng có thể sử dụng nhiều track
các lập luận trong VisionEye
giải pháp:
Lý lẽ | Kiểu | Mặc định | Sự miêu 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 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. |
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 lựa chọn giữa CPU , một cụ thể GPU hoặc các thiết bị tính toán khác để thực hiện mô hình. |
Ngoài ra, một số đối số trực quan được hỗ trợ như được liệt kê dưới đây:
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
show |
bool |
False |
Nếu như True , hiển thị hình ảnh hoặc video có chú thích trong một cửa sổ. Hữu ích cho 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 của đường đượ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õ nét hơn. |
VisionEye hoạt động như thế nào
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 từ điểm này đến các vật thể đượ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 vật thể từ một góc nhìn duy nhất. Giải pháp sử dụng theo dõi vật thể để duy trì nhận dạng nhất quán của các vật thể 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 vật thể trong cảnh.
Các process
phương pháp trong lớp VisionEye thực hiện một số hoạt động chính:
- Trích xuất các bản nhạc (hộp giới hạn, lớp và mặt nạ) từ hình ảnh đầu vào
- Tạo một 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, hãy 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 số liệu thống kê theo dõi
Cách tiếp cận này đặc biệt hữu ích cho các ứng dụng đòi hỏi nhận thức không gian và hình dung 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 cài đặt tương tác.
Ứng dụng của VisionEye
Công nghệ lập bản đồ đố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 : Theo dõi 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 mẫu di chuyển của khách hàng liên quan đến cách trưng bày trong cửa hàng
- Phân tích thể thao : Phân tích vị trí và chuyển động của cầu thủ theo góc nhìn của huấn luyện viên
- Xe tự hành : Hình dung cách xe "nhìn thấy" và ưu tiên các vật thể trong môi trường của nó
- Tương tác giữa người và máy tính : 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 Ultralytics Các giải pháp 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 mối quan hệ không gian và hành vi của chúng.
Ghi chú
Nếu có bất kỳ thắc mắc nào, bạn có thể thoải mái đăng câu hỏi của mình trong Phần vấn đề của Ultralytics hoặc phần thảo luận bên dưới.
CÂU HỎI THƯỜNG GẶP
Làm thế nào để tôi 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 , đầu tiên, bạn sẽ cần phải cài đặt Ultralytics YOLO gói 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. Sau đây là một ví dụ đơn giản để 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 để lập bản đồ và theo dõi đối tượng?
Ultralytics YOLO11 nổi tiếng về tốc độ, độ chính xác và khả năng tích hợp dễ dàng, khiến nó trở thành lựa chọn hàng đầu để lập bản đồ và theo dõi đối tượng. Những lợi thế chính bao gồm:
- Hiệu suất tiên tiến : Mang lại độ chính xác cao trong việc phát hiện vật thể 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 mở rộng và cộng đồng GitHub tích cực hỗ trợ 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ôi có thể 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 nhiều công cụ học máy khác nhau như Comet Và ClearML , tăng cường theo dõi thử nghiệm, cộng tác và khả năng tái tạo. Thực hiện theo 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.
Để biết thêm các ví dụ về khám phá và tích hợp, hãy xem Hướng dẫn tích hợp Ultralytics của chúng tôi.