حساب المسافة باستخدام Ultralytics YOLOv8 🚀
ما هو حساب المسافة؟
يعرف قياس الفجوة بين كائنين بحساب المسافة داخل مساحة محددة. في حالة Ultralytics YOLOv8، يتم استخدام سنترويد المربع المحيط لحساب المسافة للمربعات المحيطة التي يبرزها المستخدم.
شاهد: حساب المسافة باستخدام Ultralytics YOLOv8
صور
حساب المسافة باستخدام Ultralytics YOLOv8 |
---|
مزايا حساب المسافة؟
- دقة التعريب: يعزز تحديد المواقع المكانية بدقة في مهام رؤية الكمبيوتر.
- تقدير الحجم: يسمح بتقدير الأحجام المادية لفهم السياق بشكل أفضل.
- فهم المشهد: يساهم في فهم 3D للبيئة لتحسين عملية صنع القرار.
حساب المسافة
- انقر فوق أي مربعين محيطين مع النقر بالماوس الأيسر لحساب المسافة
حساب المسافة باستخدام YOLOv8 مثل
from ultralytics import YOLO
from ultralytics.solutions import distance_calculation
import cv2
model = YOLO("yolov8n.pt")
names = model.model.names
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
dist_obj = distance_calculation.DistanceCalculation()
dist_obj.set_args(names=names, view_img=True)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = dist_obj.start_process(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
ملاحظه
- سيؤدي النقر بزر الماوس الأيمن إلى حذف جميع النقاط المرسومة
- يمكن استخدام النقر بزر الماوس الأيسر لرسم النقاط
الحجج الاختيارية set_args
اسم | نوع | افتراضي | وصف |
---|---|---|---|
names |
dict |
None |
أسماء الفصول |
view_img |
bool |
False |
إطارات العرض مع التهم |
line_thickness |
int |
2 |
زيادة سمك الصناديق المحيطة |
line_color |
RGB |
(255, 255, 0) |
لون الخط لتعيين النقطات الوسطى على مربعين محيطين |
centroid_color |
RGB |
(255, 0, 255) |
لون النقطه الوسطى لكل مربع محيط |
الحجج model.track
اسم | نوع | افتراضي | وصف |
---|---|---|---|
source |
im0 |
None |
الدليل المصدر للصور أو مقاطع الفيديو |
persist |
bool |
False |
المسارات المستمرة بين الإطارات |
tracker |
str |
botsort.yaml |
طريقة التتبع "bytetrack" أو "botsort" |
conf |
float |
0.3 |
عتبة الثقة |
iou |
float |
0.5 |
عتبة IOU |
classes |
list |
None |
تصفية النتائج حسب الفئة ، أي الفئات = 0 ، أو الفئات = [0،2،3] |
verbose |
bool |
True |
عرض نتائج تعقب الكائن |