YOLO Vision 2026:

Ánh xạ đối tượng theo góc nhìn VisionEye sử dụng Ultralytics YOLO26 🚀#

Ánh xạ đối tượng VisionEye là gì?#

Ultralytics YOLO26 VisionEye cung cấp khả năng giúp máy tính nhận diện 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. Tính năng này cho phép máy tính nhận diện và tập trung vào các đối tượng cụ thể, tương tự cách mắt người quan sát các chi tiết từ một góc nhìn nhất định.

VisionEye object mapping with YOLO tracking

Ánh xạ đối tượng với YOLO26#

VisionEye cố định một điểm quan sát trong khung hình và vẽ một tia từ điểm đó đến từng đối tượng được theo dõi, giúp bạn trực quan hóa cảnh quan nhìn từ một góc nhìn duy nhất. Đặt vision_point thành tọa độ pixel của người quan sát, sau đó chạy giải pháp trên video của bạn bằng Python API hoặc CLI.

Á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]"

Đối số VisionEye#

Dưới đây là bảng chứa các đối số của VisionEye:

Đối sốLoạiMặc địnhMô tả
modelstrNoneĐường dẫn đến tệp model Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)Điểm mà tại đó thị giác sẽ theo dõi các đối tượng và vẽ đường đi sử dụng Giải pháp VisionEye.

Bạn cũng có thể sử dụng các đối số track khác nhau trong giải pháp VisionEye:

Đối sốLoạiMặc địnhMô tả
trackerstr'tracktrack.yaml'Chỉ định thuật toán theo dõi cần sử dụng. Các tùy chọn tích hợp sẵn: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Thiết lập ngưỡng tin cậy cho các phát hiện; các giá trị thấp hơn cho phép nhiều đối tượng được theo dõi hơn nhưng có thể bao gồm các kết quả dương tính giả.
ioufloat0.7Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện trùng lặp.
classeslistNoneLọc kết quả theo chỉ mục lớp. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các lớp được chỉ định.
verboseboolTrueKiểm soát việc hiển thị kết quả theo dõi, cung cấp đầu ra trực quan của các đối tượng được theo dõi.
devicestrNoneChỉ đị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, 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ư liệt kê dưới đây:

Đối sốLoạiMặc địnhMô tả
showboolFalseNếu là True, hiển thị các hình ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích để nhận phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc kiểm thử.
line_widthint or NoneNoneChỉ định độ dày đường viền của các hộp bao. Nếu là None, độ dày đường viền được tự động điều chỉnh dựa trên kích thước ảnh. Cung cấp khả năng tùy chỉnh trực quan để dễ quan sát.
show_confboolTrueHiển thị điểm số tin cậy (confidence score) cho mỗi phát hiện cùng với nhãn. Cung cấp thông tin chi tiết về độ chắc chắn của model đối với từng phát hiện.
show_labelsboolTrueHiển thị nhãn cho mỗi phát hiện trong đầu ra hình ảnh. Cung cấp khả năng nhận biết tức thì 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. Quá trình 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 góc nhìn duy nhất. Giải pháp sử dụng object tracking để duy trì nhận diện nhất quán các đối tượng qua 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.

Phương thức process trong lớp VisionEye thực hiện một số hoạt động chính:

  1. Trích xuất các track (hộp bao, lớp và mặt nạ) từ hình ảnh đầu vào
  2. Tạo một annotator để vẽ các hộp bao và nhãn
  3. Đố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 nhìn từ điểm nhìn
  4. Trả về hình ảnh đã được chú thích kèm theo các 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à trực quan hóa mối quan hệ đố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.

Các ứng dụng của VisionEye#

Ánh xạ đối tượng VisionEye có nhiều ứng dụng thực tế trong các 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 mô hình di chuyển của khách hàng liên quan đến các trưng bày tại 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ủ 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 phương tiện "nhìn" 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 theo mối quan hệ không gian

Bằng cách kết hợp VisionEye với các giải pháp khác của Ultralytics như distance calculation hoặc speed estimation, bạn có thể xây dựng các hệ thống toàn diện không chỉ theo dõi đối tượng mà còn hiểu được mối quan hệ không gian và hành vi của chúng.

Câu hỏi thường gặp#

  • Để bắt đầu sử dụng VisionEye Object Mapping với Ultralytics YOLO26, trước tiên bạn cần cài đặt gói Ultralytics YOLO thông qua pip. Sau đó, bạn có thể sử dụng mã nguồn mẫu được cung cấp trong tài liệu để thiết lập object detection 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="yolo26n.pt",  # use any model that Ultralytics supports, e.g., 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
  • Ultralytics YOLO26 nổi tiếng về tốc độ, độ chính xác và tính dễ tích hợp, biến đây 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:

    1. Hiệu suất tiên tiến: Mang lại độ chính xác cao trong phát hiện đối tượng thời gian thực.
    2. Tính linh hoạt: Hỗ trợ các tác vụ đa dạng 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 phong phú và cộng đồng GitHub tích cực để xử lý sự cố và nâng cao chức năng.
    4. Dễ sử dụng: API trực quan giúp đơ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 YOLO26.

  • Ultralytics YOLO26 có thể tích hợp mượt mà với nhiều công cụ machine learning khác nhau như Comet và ClearML, giúp nâng cao việc theo dõi thử nghiệm, cộng tác và tính tái lập. Hãy làm theo các hướng dẫn chi tiết về how to use YOLOv5 with Cometintegrate YOLO26 with ClearML để bắt đầu.

    Để khám phá thêm và xem các ví dụ tích hợp, hãy tham khảo Hướng dẫn Tích hợp Ultralytics.

Bình luận