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ể.
Mẫu
Tầm nhìnChế độ xem mắt | VisionEye View với tính năng theo dõi đối tượng | VisionEye View với tính toán khoảng cách |
---|---|---|
VisionEye View Object Mapping sử dụng Ultralytics YOLO11 | VisionEye View Object Mapping với Object Tracking sử dụng Ultralytics YOLO11 | VisionEye View với tính toán khoảng cách sử dụng Ultralytics YOLO11 |
Lập bản đồ đối tượng VisionEye sử dụng YOLO11
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
model = YOLO("yolo11n.pt")
names = model.model.names
cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter("visioneye-pinpoint.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))
center_point = (-10, h)
while True:
ret, im0 = cap.read()
if not ret:
print("Video frame is empty or video processing has been successfully completed.")
break
results = model.predict(im0)
boxes = results[0].boxes.xyxy.cpu()
clss = results[0].boxes.cls.cpu().tolist()
annotator = Annotator(im0, line_width=2)
for box, cls in zip(boxes, clss):
annotator.box_label(box, label=names[int(cls)], color=colors(int(cls)))
annotator.visioneye(box, center_point)
out.write(im0)
cv2.imshow("visioneye-pinpoint", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
out.release()
cap.release()
cv2.destroyAllWindows()
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter("visioneye-pinpoint.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))
center_point = (-10, h)
while True:
ret, im0 = cap.read()
if not ret:
print("Video frame is empty or video processing has been successfully completed.")
break
annotator = Annotator(im0, line_width=2)
results = model.track(im0, persist=True)
boxes = results[0].boxes.xyxy.cpu()
if results[0].boxes.id is not None:
track_ids = results[0].boxes.id.int().cpu().tolist()
for box, track_id in zip(boxes, track_ids):
annotator.box_label(box, label=str(track_id), color=colors(int(track_id)))
annotator.visioneye(box, center_point)
out.write(im0)
cv2.imshow("visioneye-pinpoint", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
out.release()
cap.release()
cv2.destroyAllWindows()
import math
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("Path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter("visioneye-distance-calculation.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))
center_point = (0, h)
pixel_per_meter = 10
txt_color, txt_background, bbox_clr = ((0, 0, 0), (255, 255, 255), (255, 0, 255))
while True:
ret, im0 = cap.read()
if not ret:
print("Video frame is empty or video processing has been successfully completed.")
break
annotator = Annotator(im0, line_width=2)
results = model.track(im0, persist=True)
boxes = results[0].boxes.xyxy.cpu()
if results[0].boxes.id is not None:
track_ids = results[0].boxes.id.int().cpu().tolist()
for box, track_id in zip(boxes, track_ids):
annotator.box_label(box, label=str(track_id), color=bbox_clr)
annotator.visioneye(box, center_point)
x1, y1 = int((box[0] + box[2]) // 2), int((box[1] + box[3]) // 2) # Bounding box centroid
distance = (math.sqrt((x1 - center_point[0]) ** 2 + (y1 - center_point[1]) ** 2)) / pixel_per_meter
text_size, _ = cv2.getTextSize(f"Distance: {distance:.2f} m", cv2.FONT_HERSHEY_SIMPLEX, 1.2, 3)
cv2.rectangle(im0, (x1, y1 - text_size[1] - 10), (x1 + text_size[0] + 10, y1), txt_background, -1)
cv2.putText(im0, f"Distance: {distance:.2f} m", (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 1.2, txt_color, 3)
out.write(im0)
cv2.imshow("visioneye-distance-calculation", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
out.release()
cap.release()
cv2.destroyAllWindows()
visioneye
Lập luận
Tên | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
color | tuple | (235, 219, 11) | Màu trung tâm đường và đối tượng |
pin_color | tuple | (255, 0, 255) | VisionEye xác định màu sắc |
Ghi
Đối với bất kỳ câu hỏi nào, vui lòng gửi câu hỏi của bạn trong Ultralytics Phần vấn đề hoặc phần thảo luận được đề cập bên dưới.
FAQ
Làm thế nào để tôi bắt đầu sử dụng VisionEye Object Mapping với Ultralytics YOLO11 là gì?
Để bắt đầu sử dụng VisionEye Object Mapping với Ultralytics YOLO11, trước 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 YOLO
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
while True:
ret, frame = cap.read()
if not ret:
break
results = model.predict(frame)
for result in results:
# Perform custom logic with result
pass
cv2.imshow("visioneye", frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Các tính năng chính của khả năng theo dõi đối tượng của VisionEye là gì? Ultralytics YOLO11 là gì?
Theo dõi đối tượng của VisionEye với Ultralytics YOLO11 cho phép người dùng theo dõi chuyển động của các vật thể trong một khung hình video. Các tính năng chính bao gồm:
- Theo dõi đối tượng thời gian thực: Theo kịp các đối tượng khi chúng di chuyển.
- Nhận dạng đối tượng : Sử dụng thuật toán phát hiện mạnh mẽ của YOLO11.
- Tính toán khoảng cách: Tính toán khoảng cách giữa các đối tượng và các điểm được chỉ định.
- Chú thích và Trực quan hóa: Cung cấp các điểm đánh dấu trực quan cho các đối tượng được theo dõi.
Dưới đây là một đoạn mã ngắn gọn thể hiện theo dõi với VisionEye:
import cv2
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
while True:
ret, frame = cap.read()
if not ret:
break
results = model.track(frame, persist=True)
for result in results:
# Annotate and visualize tracking
pass
cv2.imshow("visioneye-tracking", frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Để có hướng dẫn toàn diện, hãy truy cập Bản đồ đối tượng VisionEye với Theo dõi đối tượng.
Làm thế nào tôi có thể tính toán khoảng cách bằng mô hình YOLO11 của VisionEye?
Tính toán khoảng cách với VisionEye và Ultralytics YOLO11 liên quan đến việc xác định khoảng cách của các đối tượng được phát hiện từ một điểm cụ thể trong khung. Nó tăng cường khả năng phân tích không gian, hữu ích trong các ứng dụng như lái xe tự động và giám sát.
Dưới đây là một ví dụ đơn giản:
import math
import cv2
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
center_point = (0, 480) # Example center point
pixel_per_meter = 10
while True:
ret, frame = cap.read()
if not ret:
break
results = model.track(frame, persist=True)
for result in results:
# Calculate distance logic
distances = [
(math.sqrt((box[0] - center_point[0]) ** 2 + (box[1] - center_point[1]) ** 2)) / pixel_per_meter
for box in results
]
cv2.imshow("visioneye-distance", frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Để được hướng dẫn chi tiết, hãy tham khảo VisionEye với Tính toán Khoảng cách.
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 hiện đạ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ợ các 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 đang hoạt độ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ô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 kiểm tra Ultralytics Hướng dẫn tích hợp.