حساب المسافة باستخدام Ultralytics YOLO11
ما هو حساب المسافة؟
يُعرف قياس الفجوة بين جسمين بحساب المسافة بين جسمين ضمن مساحة محددة. في حالة Ultralytics YOLO11، يتم استخدام مركز المربع المحدود لحساب المسافة للمربعات المحدودة التي حددها المستخدم.
شاهد: حساب المسافة باستخدام Ultralytics YOLO11
المرئيات
حساب المسافة باستخدام Ultralytics YOLO11 |
---|
![]() |
مزايا حساب المسافة؟
- دقة تحديد المواقع: يعزز دقة تحديد المواقع المكانية في مهام الرؤية الحاسوبية.
- تقدير الحجم: يسمح بتقدير حجم الجسم لفهم سياقي أفضل.
- فهم المشهد: يحسّن فهم المشهد ثلاثي الأبعاد لاتخاذ قرارات أفضل في تطبيقات مثل المركبات ذاتية القيادة وأنظمة المراقبة.
- تفادي الاصطدام: تمكين الأنظمة من اكتشاف التصادمات المحتملة من خلال مراقبة المسافات بين الأجسام المتحركة.
- التحليل المكاني: يسهل تحليل علاقات الكائنات والتفاعلات داخل البيئة المراقبة.
حساب المسافة
- انقر فوق أي مربعين محددين بالنقر بالماوس الأيسر لحساب المسافة
- سيؤدي النقر بالزر الأيمن بالماوس إلى حذف جميع النقاط المرسومة
- يمكن استخدام النقر بالماوس الأيسر للماوس لرسم النقاط
المسافة تقديرية
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.
حساب المسافة باستخدام 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()
الحجج
إليك الجدول الذي يحتوي على DistanceCalculation
الحجج
الجدال | النوع | افتراضي | الوصف |
---|---|---|---|
model |
str |
None |
المسار إلى ملف نموذج Ultralytics YOLO Model File. |
يمكنك أيضًا الاستفادة من العديد من track
الحجج في DistanceCalculation
الحل.
الجدال | النوع | افتراضي | الوصف |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
يحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال, bytetrack.yaml أو botsort.yaml . |
conf |
float |
0.3 |
تعيين عتبة الثقة للاكتشافات؛ تسمح القيم المنخفضة بتتبع المزيد من الكائنات ولكنها قد تتضمن نتائج إيجابية كاذبة. |
iou |
float |
0.5 |
يضبط عتبة التقاطع على الاتحاد (IoU) لتصفية الاكتشافات المتداخلة. |
classes |
list |
None |
تصفية النتائج حسب فهرس الفئة. على سبيل المثال, classes=[0, 2, 3] يتتبع الفئات المحددة فقط. |
verbose |
bool |
True |
يتحكم في عرض نتائج التتبع، مما يوفر إخراجًا مرئيًا للأجسام المتعقبة. |
device |
str |
None |
يحدد جهاز الاستدلال (على سبيل المثال, cpu , cuda:0 أو 0 ). يسمح للمستخدمين بالاختيار بين CPU ، أو جهاز GPU معين، أو أجهزة حوسبة أخرى لتنفيذ النموذج. |
علاوة على ذلك، تتوفر وسائط التصور التالية:
الجدال | النوع | افتراضي | الوصف |
---|---|---|---|
show |
bool |
False |
إذا كان True يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للتعليقات المرئية الفورية أثناء التطوير أو الاختبار. |
line_width |
None or int |
None |
يحدد عرض خط المربعات المحدودة. إذا كان None ، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح. |
تفاصيل التنفيذ
إن DistanceCalculation
يعمل الفصل عن طريق تتبُّع الأجسام عبر إطارات الفيديو وحساب المسافة الإقليدية بين مراكز المربعات المحدَّدة. عندما تنقر على كائنين، فإن الحل:
- استخراج مركزيات (نقاط مركزية) المربعات المحدودة المحددة
- حساب المسافة الإقليدية بين هذه المراكز بالبكسل
- يعرض المسافة على الإطار مع وجود خط توصيل بين الأجسام
يستخدم التنفيذ mouse_event_for_distance
للتعامل مع تفاعلات الماوس، مما يسمح للمستخدمين بتحديد الكائنات ومسح التحديدات حسب الحاجة. إن process
يعالج معالجة كل إطار بإطار، وتتبع الأجسام، وحساب المسافات.
التطبيقات
حساب المسافات باستخدام YOLO11 له العديد من التطبيقات العملية:
- تحليلات البيع بالتجزئة: قياس مدى قرب العميل من المنتجات وتحليل فعالية تخطيط المتجر
- السلامة الصناعية: مراقبة المسافات الآمنة بين العمال والآلات
- إدارة حركة المرور: تحليل التباعد بين المركبات والكشف عن التجاوز الخلفي
- التحليل الرياضي: احسب المسافات بين اللاعبين والكرة ومواقع الملعب الرئيسية
- الرعاية الصحية: التأكد من التباعد المناسب في مناطق الانتظار ومراقبة حركة المرضى
- الروبوتات: تمكين الروبوتات من الحفاظ على مسافات مناسبة من العوائق والأشخاص
الأسئلة الشائعة
كيف يمكنني حساب المسافات بين الأجسام باستخدام Ultralytics YOLO11 ؟
لحساب المسافات بين الأجسام باستخدام Ultralytics YOLO11فإنك تحتاج إلى تحديد مركزيات المربع المحدود للأجسام المكتشفة. تتضمن هذه العملية تهيئة DistanceCalculation
فئة من Ultralytics' solutions
واستخدام مخرجات تتبع النموذج لحساب المسافات.
ما هي مزايا استخدام حساب المسافة مع Ultralytics YOLO11 ؟
يوفر استخدام حساب المسافة مع Ultralytics YOLO11 العديد من المزايا:
- دقة تحديد المواقع: يوفر تحديداً دقيقاً للموقع المكاني للأجسام.
- تقدير الحجم: يساعد في تقدير الأحجام المادية، مما يساهم في فهم سياقي أفضل.
- فهم المشهد: يعزز فهم المشهد ثلاثي الأبعاد، مما يساعد على تحسين عملية اتخاذ القرار في تطبيقات مثل القيادة الذاتية والمراقبة.
- المعالجة في الوقت الحقيقي: إجراء العمليات الحسابية أثناء التنقل، مما يجعلها مناسبة لتحليل الفيديو المباشر.
- قدرات التكامل: يعمل بسلاسة مع حلول YOLO11 الأخرى مثل تتبع الأجسام وتقدير السرعة.
هل يمكنني إجراء حساب المسافة في تدفقات الفيديو في الوقت الفعلي باستخدام Ultralytics YOLO11 ؟
نعم، يمكنك إجراء حساب المسافة في تدفقات الفيديو في الوقت الفعلي باستخدام Ultralytics YOLO11 . تتضمن العملية التقاط إطارات الفيديو باستخدام OpenCVالجري YOLO11 اكتشاف الأجسام، وباستخدام DistanceCalculation
لحساب المسافات بين الأجسام في الإطارات المتتالية. للحصول على تطبيق مفصّل، راجع مثال على دفق الفيديو.
كيف يمكنني حذف النقاط المرسومة أثناء حساب المسافة باستخدام Ultralytics YOLO11 ؟
لحذف النقاط المرسومة أثناء حساب المسافة باستخدام Ultralytics YOLO11 ، يمكنك استخدام النقر بزر الفأرة الأيمن. سيؤدي هذا الإجراء إلى مسح جميع النقاط التي رسمتها. لمزيد من التفاصيل، راجع قسم الملاحظات تحت مثال حساب المسافة.
ما هي الوسيطات الرئيسية لتهيئة فئة DistanceCalculation في Ultralytics YOLO11 ؟
الوسيطات الرئيسية لتهيئة DistanceCalculation
فئة في Ultralytics YOLO11 ما يلي:
model
: المسار إلى ملف نموذج YOLO11 .tracker
: خوارزمية التتبع المراد استخدامها (الافتراضي هو 'botsort.yaml').conf
: عتبة الثقة للاكتشافات.show
: علم لعرض الإخراج.
للاطلاع على قائمة شاملة والقيم الافتراضية، راجع وسيطات DistanceCalculation.