Bỏ qua nội dung

Tính toán khoảng cách bằng cách sử dụng Ultralytics YOLO11

Tính toán khoảng cách là gì?

Đo khoảng cách giữa hai đối tượng được gọi là tính toán khoảng cách trong một không gian xác định. Trong trường hợp của Ultralytics YOLO11 , trọng tâm hộp giới hạn được sử dụng để tính toán khoảng cách cho các hộp giới hạn được người dùng đánh dấu.



Đồng hồ: Tính toán khoảng cách bằng cách sử dụng Ultralytics YOLO11

Hình ảnh

Tính toán khoảng cách bằng cách sử dụng Ultralytics YOLO11
Ultralytics YOLO11 Tính toán khoảng cách

Ưu điểm của tính toán khoảng cách?

  • Độ chính xác định vị: Nâng cao độ chính xác trong định vị không gian trong các tác vụ thị giác máy tính .
  • Ước tính kích thước: Cho phép ước tính kích thước đối tượng để hiểu rõ hơn về ngữ cảnh.
  • Hiểu bối cảnh: Cải thiện khả năng hiểu bối cảnh 3D để đưa ra quyết định tốt hơn trong các ứng dụng như xe tự hành và hệ thống giám sát.
  • Tránh va chạm: Cho phép hệ thống phát hiện các va chạm tiềm ẩn bằng cách theo dõi khoảng cách giữa các vật thể chuyển động.
  • Phân tích không gian: Tạo điều kiện thuận lợi cho việc phân tích các mối quan hệ và tương tác của đối tượng trong môi trường được giám sát.
Tính toán khoảng cách
  • Nhấp vào bất kỳ hai hộp giới hạn nào bằng cách nhấp chuột trái để tính toán khoảng cách
  • Nhấp chuột phải sẽ xóa tất cả các điểm đã vẽ
  • Có thể sử dụng chuột trái để vẽ điểm
Khoảng cách là ước tính
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data,
which lacks information about the object's depth.

Tính toán khoảng cách bằng cách 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("distance_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize distance calculation object
distancecalculator = solutions.DistanceCalculation(
    model="yolo11n.pt",  # path to the YOLO11 model file.
    show=True,  # display the output
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = distancecalculator(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

DistanceCalculation() Lập luận

Đây là một bảng với DistanceCalculation 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.

Bạn cũng có thể sử dụng nhiều track các lập luận trong DistanceCalculation 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, các đối số trực quan sau đây cũng khả dụng:

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.

Chi tiết triển khai

Các DistanceCalculation lớp học hoạt động bằng cách theo dõi các đối tượng trên các khung video và tính toán khoảng cách Euclid giữa các tâm của các hộp giới hạn đã chọn. Khi bạn nhấp vào hai đối tượng, giải pháp:

  1. Trích xuất các tâm điểm (điểm trung tâm) của các hộp giới hạn đã chọn
  2. Tính toán khoảng cách Euclid giữa các tâm này theo pixel
  3. Hiển thị khoảng cách trên khung với đường kết nối giữa các đối tượng

Việc thực hiện sử dụng mouse_event_for_distance phương pháp xử lý tương tác chuột, cho phép người dùng chọn đối tượng và xóa các lựa chọn khi cần. process phương pháp này xử lý từng khung hình, theo dõi đối tượng và tính toán khoảng cách.

Ứng dụng

Tính toán khoảng cách với YOLO11 có nhiều ứng dụng thực tế:

  • Phân tích bán lẻ: Đo lường mức độ gần gũi của khách hàng với sản phẩm và phân tích hiệu quả bố trí cửa hàng
  • An toàn công nghiệp: Theo dõi khoảng cách an toàn giữa công nhân và máy móc
  • Quản lý giao thông: Phân tích khoảng cách giữa các xe và phát hiện tình trạng bám đuôi xe khác
  • Phân tích thể thao: Tính toán khoảng cách giữa người chơi, quả bóng và các vị trí quan trọng trên sân
  • Chăm sóc sức khỏe: Đảm bảo khoảng cách thích hợp ở khu vực chờ và theo dõi chuyển động của bệnh nhân
  • Robot: Cho phép robot duy trì khoảng cách thích hợp với chướng ngại vật và con người

CÂU HỎI THƯỜNG GẶP

Làm thế nào để tính toán khoảng cách giữa các đối tượng bằng cách sử dụng Ultralytics YOLO11 ?

Để tính khoảng cách giữa các đối tượng bằng cách sử dụng Ultralytics YOLO11, bạn cần xác định tâm hộp giới hạn của các đối tượng được phát hiện. Quá trình này bao gồm việc khởi tạo DistanceCalculation lớp từ Ultralytics ' solutions mô-đun và sử dụng đầu ra theo dõi của mô hình để tính toán khoảng cách.

Những lợi thế của việc sử dụng tính toán khoảng cách với Ultralytics YOLO11 ?

Sử dụng tính toán khoảng cách với Ultralytics YOLO11 cung cấp một số lợi thế:

  • Độ chính xác định vị: Cung cấp vị trí không gian chính xác cho các đối tượng.
  • Ước tính kích thước: Giúp ước tính kích thước vật lý, góp phần nâng cao hiểu biết về ngữ cảnh.
  • Hiểu biết về bối cảnh: Nâng cao khả năng hiểu biết về bối cảnh 3D, hỗ trợ cải thiện khả năng ra quyết định trong các ứng dụng như lái xe tự động và giám sát.
  • Xử lý thời gian thực: Thực hiện các phép tính ngay lập tức, phù hợp để phân tích video trực tiếp.
  • Khả năng tích hợp: Hoạt động liền mạch với các YOLO11 các giải pháp như theo dõi đối tượngước tính tốc độ .

Tôi có thể thực hiện tính toán khoảng cách trong luồng video thời gian thực với Ultralytics YOLO11 ?

Có, bạn có thể thực hiện tính toán khoảng cách trong luồng video thời gian thực với Ultralytics YOLO11 . Quá trình này bao gồm việc chụp các khung hình video bằng cách sử dụng MởCV, đang chạy YOLO11 phát hiện đối tượngvà sử dụng DistanceCalculation lớp để tính toán khoảng cách giữa các đối tượng trong các khung liên tiếp. Để biết cách triển khai chi tiết, hãy xem ví dụ về luồng video.

Làm thế nào để xóa các điểm được vẽ trong quá trình tính toán khoảng cách bằng cách sử dụng Ultralytics YOLO11 ?

Để xóa các điểm được vẽ trong quá trình tính toán khoảng cách bằng Ultralytics YOLO11 , bạn có thể sử dụng nhấp chuột phải. Hành động này sẽ xóa tất cả các điểm bạn đã vẽ. Để biết thêm chi tiết, hãy tham khảo phần ghi chú bên dưới ví dụ tính toán khoảng cách .

Những đối số chính để khởi tạo lớp DistanceCalculation trong Ultralytics YOLO11 ?

Các đối số chính để khởi tạo DistanceCalculation lớp học trong Ultralytics YOLO11 bao gồm:

  • model: Đường dẫn đến YOLO11 tập tin mô hình.
  • tracker: Thuật toán theo dõi cần sử dụng (mặc định là 'botsort.yaml').
  • conf: Ngưỡng tin cậy để phát hiện.
  • show: Cờ để hiển thị đầu ra.

Để biết danh sách đầy đủ và các giá trị mặc định, hãy xem các đối số của DistanceCalculation .

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

Bình luận