حساب المسافة باستخدام Ultralytics YOLOv8
ما هو حساب المسافة؟
يعرف قياس الفجوة بين كائنين بحساب المسافة داخل مساحة محددة. في حالة Ultralytics YOLOv8، يتم استخدام سنترويد المربع المحيط لحساب المسافة للمربعات المحيطة التي يبرزها المستخدم.
شاهد: حساب المسافة باستخدام Ultralytics YOLOv8
صور
حساب المسافة باستخدام Ultralytics YOLOv8 |
---|
مزايا حساب المسافة؟
- دقة التعريب: يعزز تحديد المواقع المكانية بدقة في مهام رؤية الكمبيوتر.
- تقدير الحجم: يسمح بتقدير الأحجام المادية لفهم السياق بشكل أفضل.
- فهم المشهد: يساهم في فهم 3D للبيئة لتحسين عملية صنع القرار.
حساب المسافة
- انقر فوق أي مربعين محيطين مع النقر بالماوس الأيسر لحساب المسافة
حساب المسافة باستخدام YOLOv8 مثل
import cv2
from ultralytics import YOLO, solutions
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 = solutions.DistanceCalculation(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()
ملاحظه
- سيؤدي النقر بزر الماوس الأيمن إلى حذف جميع النقاط المرسومة
- يمكن استخدام النقر بزر الماوس الأيسر لرسم النقاط
الحجج DistanceCalculation()
Name |
Type |
Default |
وصف |
---|---|---|---|
names |
dict |
None |
قاموس أسماء الفئات. |
pixels_per_meter |
int |
10 |
عامل التحويل من بكسل إلى متر. |
view_img |
bool |
False |
علامة للإشارة إلى ما إذا كان ينبغي عرض دفق الفيديو. |
line_thickness |
int |
2 |
سماكة الخطوط المرسومة على الصورة. |
line_color |
tuple |
(255, 255, 0) |
لون الخطوط المرسومة على الصورة (تنسيق BGR). |
centroid_color |
tuple |
(255, 0, 255) |
لون الوسطيات المرسومة (تنسيق BGR). |
الحجج 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 |
عرض نتائج تعقب الكائن |
الأسئلة المتداولة
كيف يمكنني حساب المسافات بين الأجسام باستخدام Ultralytics YOLOv8 ؟
لحساب المسافات بين الأجسام باستخدام Ultralytics YOLOv8فإنك تحتاج إلى تحديد مركزيات المربع المحدود للأجسام المكتشفة. تتضمن هذه العملية تهيئة DistanceCalculation
فئة من Ultralytics' solutions
واستخدام مخرجات تتبع النموذج لحساب المسافات. يمكنك الرجوع إلى التنفيذ في مثال لحساب المسافة.
ما هي مزايا استخدام حساب المسافة مع Ultralytics YOLOv8 ؟
يوفر استخدام حساب المسافة مع Ultralytics YOLOv8 العديد من المزايا:
- دقة تحديد المواقع: يوفر تحديداً دقيقاً للموقع المكاني للأجسام.
- تقدير الحجم: يساعد في تقدير الأحجام المادية، مما يساهم في فهم سياقي أفضل.
- فهم المشهد: يعزز فهم المشهد ثلاثي الأبعاد، مما يساعد على تحسين عملية اتخاذ القرار في تطبيقات مثل القيادة الذاتية والمراقبة.
هل يمكنني إجراء حساب المسافة في تدفقات الفيديو في الوقت الفعلي باستخدام Ultralytics YOLOv8 ؟
نعم، يمكنك إجراء حساب المسافة في تدفقات الفيديو في الوقت الفعلي باستخدام Ultralytics YOLOv8 . وتتضمن العملية التقاط إطارات الفيديو باستخدام OpenCV، وتشغيل YOLOv8 الكشف عن الكائنات، واستخدام DistanceCalculation
لحساب المسافات بين الأجسام في الإطارات المتتالية. للحصول على تطبيق مفصّل، راجع مثال على دفق الفيديو.
كيف يمكنني حذف النقاط المرسومة أثناء حساب المسافة باستخدام Ultralytics YOLOv8 ؟
لحذف النقاط المرسومة أثناء حساب المسافة باستخدام Ultralytics YOLOv8 ، يمكنك استخدام النقر بزر الفأرة الأيمن. سيؤدي هذا الإجراء إلى مسح جميع النقاط التي رسمتها. لمزيد من التفاصيل، راجع قسم الملاحظات تحت مثال حساب المسافة.
ما هي الوسيطات الرئيسية لتهيئة فئة DistanceCalculation في Ultralytics YOLOv8 ؟
الوسيطات الرئيسية لتهيئة DistanceCalculation
فئة في Ultralytics YOLOv8 ما يلي:
names
: قاموس تعيين مؤشرات الفئات إلى أسماء الفئات.pixels_per_meter
: عامل التحويل من بكسل إلى متر.view_img
: علامة للإشارة إلى ما إذا كان ينبغي عرض دفق الفيديو.line_thickness
: سماكة الخطوط المرسومة على الصورة.line_color
: لون الخطوط المرسومة على الصورة (تنسيق BGR).centroid_color
: لون الوسطيات (تنسيق BGR).
للاطلاع على قائمة شاملة والقيم الافتراضية، راجع وسيطات DistanceCalculation.
تم الإنشاء 2024-01-05، تم التحديث 2024-07-14
المؤلفون: RizwanMunawar (5)، Glenn-jocher (7)، IvorZhu331 (1)، AyushExel (1)