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 |
---|
Ư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.
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
Tính toán khoảng cách bằng cách sử dụng YOLO11 Ví dụ
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
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
video_writer = cv2.VideoWriter("distance_calculation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init distance-calculation obj
distance = solutions.DistanceCalculation(model="yolo11n.pt", show=True)
# 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
im0 = distance.calculate(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Ghi 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.
Lập luận DistanceCalculation()
Name |
Type |
Default |
Sự miêu tả |
---|---|---|---|
model |
str |
None |
Đường dẫn đến Ultralytics YOLO Tệp mẫu |
line_width |
int |
2 |
Độ dày của đường cho hộp giới hạn. |
show |
bool |
False |
Đánh dấu để kiểm soát việc hiển thị luồng video hay không. |
Lập luận model.track
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
source |
str |
None |
Chỉ định thư mục nguồn cho hình ảnh hoặc video. Hỗ trợ đường dẫn tệp và URL. |
persist |
bool |
False |
Cho phép theo dõi liên tục các đối tượng giữa các khung hình, duy trì ID trên các chuỗi video. |
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. |
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 các đầu ra theo dõi của mô hình để tính toán khoảng cách. Bạn có thể tham khảo phần triển khai trong ví dụ 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.
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 tệp mô hình.show
: Cờ để chỉ ra liệu luồng video có được hiển thị hay không.line_width
: Độ dày của khung giới hạn và các đường vẽ trên hình ảnh.
Để biết danh sách đầy đủ và các giá trị mặc định, hãy xem các đối số của DistanceCalculation .