Bỏ qua nội dung

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 View Object Mapping với Object Tracking sử dụng Ultralytics YOLO11

VisionEye Mapping 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 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:

  1. 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
  2. Tạo một chú thích để vẽ các hộp giới hạn và nhãn
  3. Đố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
  4. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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 Comettí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.

📅 Được tạo ra cách đây 1 năm ✏️ Đã cập nhật cách đây 5 ngày

Bình luận