Link to this sectionÁnh xạ đối tượng theo góc nhìn VisionEye sử dụng Ultralytics YOLO26 🚀#
Link to this sectionÁnh xạ đối tượng VisionEye là gì?#
Ultralytics YOLO26 VisionEye cung cấp khả năng cho máy tính xác định và định vị 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 nhận diện 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 nhất định.
# 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]"Link to this sectionCác đối số của VisionEye#
Dưới đây là bảng các đối số của VisionEye:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
model | str | None | Đường dẫn đến tệp model Ultralytics YOLO. |
vision_point | tuple[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ại | Mặc định | Mô tả |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Chỉ định thuật toán tracking 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. |
conf | float | 0.1 | Thiế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ả. |
iou | float | 0.7 | Thiết lập ngưỡng Intersection over Union (IoU) để lọc các phát hiện chồ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 đã 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 của các đối tượng được theo dõi. |
device | str | None | Chỉ định thiết bị để thực hiện suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng 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 model. |
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ại | Mặc định | Mô tả |
|---|---|---|---|
show | bool | False | Nếu 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 cho 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_width | int or None | None | Chỉ định độ dày đường của bounding box. Nếu None, độ dày đường được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp khả năng tùy chỉnh trực quan để rõ ràng hơn. |
show_conf | bool | True | Hiể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_labels | bool | True | Hiể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. |
Link to this sectionCá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 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 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 này sử dụng theo dõi đối tượng để duy trì nhận dạng 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ố thao tác chính:
- Trích xuất các track (hộp bao, lớp và mặt nạ) từ hình ảnh đầu vào
- Tạo một annotator để vẽ các hộp bao 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 nhìn từ điểm nhìn
- 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.
Link to this sectionCá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 Ultralytics khác như tính 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 đối tượng mà còn hiểu được các mối quan hệ không gian và hành vi của chúng.
Link to this sectionLưu ý#
Đối với bất kỳ thắc mắc nào, vui lòng đăng câu hỏi của bạn trong Phần Issue của Ultralytics hoặc phần thảo luận được đề cập bên dưới.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionLàm thế nào để tôi bắt đầu sử dụng Ánh xạ đối tượng VisionEye với Ultralytics YOLO26?#
Để bắt đầu sử dụng Ánh xạ đối tượng VisionEye với Ultralytics YOLO26, trước hết, bạn cần cài đặt gói Ultralytics YOLO thông 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à 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 windowsLink to this sectionTại sao tôi nên sử dụng Ultralytics YOLO26 để ánh xạ và theo dõi đối tượng?#
Ultralytics YOLO26 nổi tiếng với 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 cho việc ánh xạ và theo dõi đối tượng. Những ưu điểm chính bao gồm:
- 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.
- 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.
- 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.
- 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.
Link to this sectionLàm cách 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 YOLO26 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, giúp nâng cao khả năng 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ề cách sử dụng YOLOv5 với Comet và tích hợp YOLO26 với ClearML để bắt đầu.
Để khám phá thêm và xem các ví dụ tích hợp, hãy kiểm tra Hướng dẫn Tích hợp Ultralytics.