Meet YOLO26: next-gen vision AI.

Link to this sectionتتبع المناطق (TrackZone) باستخدام Ultralytics YOLO26#

Link to this sectionما هو TrackZone؟#

افتح TrackZone في Colab

تتخصص TrackZone في مراقبة الكائنات داخل مناطق محددة من الإطار بدلاً من الإطار بأكمله. تم بناؤها على Ultralytics YOLO26، وهي تدمج بين اكتشاف الكائنات والتتبع خصيصاً داخل المناطق لمقاطع الفيديو وخلاصات الكاميرا المباشرة. تجعل خوارزميات YOLO26 المتقدمة وتقنيات التعلم العميق منها خياراً مثالياً لحالات الاستخدام في الوقت الفعلي، حيث توفر تتبعاً دقيقاً وفعالاً للكائنات في تطبيقات مثل مراقبة الحشود والمراقبة الأمنية.



Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀

Link to this sectionمزايا تتبع الكائنات في المناطق (TrackZone)#

  • تحليل مستهدف: يسمح تتبع الكائنات داخل مناطق محددة بالحصول على رؤى أكثر تركيزاً، مما يتيح مراقبة وتحليلاً دقيقاً للمناطق ذات الأهمية، مثل نقاط الدخول أو المناطق المقيدة.
  • تقليل عبء العمل اللاحق: من خلال تجاهل الكائنات الموجودة خارج المنطقة، تزيل TrackZone الاكتشافات غير ذات الصلة بحيث يكون هناك عدد أقل من الكائنات التي يجب عدّها أو تسجيلها أو إصدار تنبيهات بشأنها في المنطق الذي تبنيه فوقها. لا يزال الاكتشاف يعمل على إطار كامل الحجم مقنع بدلاً من قص ضيق للمنطقة، لذا فإن الفائدة هي مخرجات أكثر نظافة وتركيزاً بدلاً من استنتاج أسرع للنموذج.
  • أمن معزز: يعمل التتبع المعتمد على المناطق على تحسين المراقبة من خلال مراقبة المناطق الحرجة، مما يساعد في الكشف المبكر عن الأنشطة غير العادية أو الخروقات الأمنية.
  • حلول قابلة للتوسع: تجعل القدرة على التركيز على مناطق محددة TrackZone قابلاً للتكيف مع سيناريوهات مختلفة، بدءاً من مساحات التجزئة وصولاً إلى الإعدادات الصناعية، مما يضمن تكاملاً سلساً وقابلية للتوسع.

Link to this sectionتطبيقات العالم الحقيقي#

الزراعةالنقل
تتبع النباتات في الحقل باستخدام Ultralytics YOLO26تتبع المركبات على الطريق باستخدام Ultralytics YOLO26
تتبع النباتات في الحقل باستخدام Ultralytics YOLO26تتبع المركبات على الطريق باستخدام Ultralytics YOLO26
TrackZone باستخدام Ultralytics YOLO
# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone source="path/to/video.mp4" show=True

# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"

يعتمد TrackZone على قائمة region لمعرفة أي جزء من الإطار يجب مراقبته. قم بتعريف المضلع ليتناسب مع المنطقة المادية التي تهتم بها (الأبواب، البوابات، إلخ)، واحتفظ بخيار show=True مفعلاً أثناء التهيئة حتى تتمكن من التحقق من توافق التراكب مع بث الفيديو.

تحديد منطقة التتبع
  • كل إدخال في region هو إحداثي بكسل (x, y) في إطار الفيديو. قم بإدراج النقاط بالترتيب الذي يجب أن يتم ربطها به حول محيط المنطقة التي تريد مراقبتها.
  • الإحداثيات مرتبطة بدقة الإطار، لذا فإن منطقة بحجم تغذية 1280×720 لن تتوافق مع 640×480. أبقِ show=True مفعلاً أثناء التهيئة حتى تتمكن من التأكد من أن التراكب يتطابق مع التغذية الخاصة بك.
  • تقوم TrackZone بتقليل النقاط إلى الغلاف المحدب الخاص بها، لذا يتم تبسيط الشكل غير المحدب إلى أصغر مضلع محدب يحتوي على جميع نقاطه. بالنسبة للأشكال غير المحدبة أو عدة مناطق منفصلة، استخدم حل RegionCounter بدلاً من ذلك.
  • إذا حذفت region تماماً، يتم استخدام منطقة افتراضية هي [(75, 75), (565, 75), (565, 285), (75, 285)].

Link to this sectionوسائط TrackZone#

إليك جدول يحتوي على وسائط TrackZone:

الوسيطالنوعالافتراضيالوصف
modelstrNoneالمسار إلى ملف نموذج Ultralytics YOLO.
regionlist أو dictNoneالنقاط التي تحدد منطقة الاهتمام، سواء كانت قائمة من أزواج (x, y) أو قاموس يربط أسماء المناطق بقوائم النقاط لمناطق متعددة (لـ RegionCounter فقط). عند ضبطها على None، تعود الحلول التي تتطلب منطقة إلى القيمة الافتراضية المحددة مسبقاً.

يتضمن حل TrackZone دعماً لبارامترات track:

الوسيطالنوعالافتراضيالوصف
trackerstr'botsort.yaml'يحدد خوارزمية التتبع المطلوب استخدامها. الخيارات المدمجة هي: botsort.yaml و bytetrack.yaml و ocsort.yaml و deepocsort.yaml و fasttrack.yaml و tracktrack.yaml.
conffloat0.1يضبط عتبة الثقة للاكتشافات؛ تسمح القيم المنخفضة بتتبع المزيد من الكائنات ولكنها قد تتضمن إيجابيات كاذبة.
ioufloat0.7يضبط عتبة تقاطع الاتحاد (IoU) لتصفية الاكتشافات المتداخلة.
classeslistNoneيصفي النتائج حسب فهرس الفئة. على سبيل المثال، classes=[0, 2, 3] يتتبع الفئات المحددة فقط.
verboseboolTrueيتحكم في عرض نتائج التتبع، مما يوفر مخرجاً مرئياً للكائنات المتعقبة.
devicestrNoneيحدد الجهاز للاستدلال (على سبيل المثال، cpu أو cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين وحدة المعالجة المركزية، أو وحدة معالجة رسومات محددة، أو أجهزة حوسبة أخرى لتنفيذ النموذج.

علاوة على ذلك، تتوفر خيارات التصور التالية:

الوسيطالنوعالافتراضيالوصف
showboolFalseإذا كان True، فإنه يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار.
line_widthint or NoneNoneيحدد عرض خط صناديق التحديد. إذا كان None، يتم تعديل عرض الخط تلقائياً بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح.
show_confboolTrueيعرض درجة الثقة لكل اكتشاف بجانب التصنيف. يوفر رؤية حول مدى يقين النموذج في كل اكتشاف.
show_labelsboolTrueيعرض تصنيفات كل اكتشاف في المخرجات المرئية. يوفر فهماً فورياً للكائنات المكتشفة.

Link to this sectionعد الكائنات داخل المنطقة#

كل استدعاء للمتتبع يعيد كائن SolutionResults الذي يحتوي سمته total_tracks على عدد الكائنات التي يتم تتبعها حالياً داخل المنطقة. اقرأها في كل إطار لمراقبة الإشغال المباشر، على سبيل المثال لتسجيل مدى انشغال نقطة دخول أو منطقة مقيدة:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
trackzone = solutions.TrackZone(show=False, region=region_points, model="yolo26n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = trackzone(im0)
    print(f"Objects currently in zone: {results.total_tracks}")  # live zone occupancy

cap.release()

Link to this sectionالأسئلة الشائعة#

Link to this sectionكيف يمكنني تتبع الكائنات في منطقة أو نطاق محدد من إطار الفيديو باستخدام Ultralytics YOLO26؟#

يعد تتبع الكائنات في منطقة أو نطاق محدد من إطار الفيديو أمراً مباشراً مع Ultralytics YOLO26. ببساطة، استخدم الأمر الموضح أدناه لبدء التتبع. يضمن هذا النهج تحليلاً فعالاً ونتائج دقيقة، مما يجعله مثالياً لتطبيقات مثل المراقبة، أو إدارة الحشود، أو أي سيناريو يتطلب تتبعاً يعتمد على المناطق.

yolo solutions trackzone source="path/to/video.mp4" show=True

Link to this sectionكيف يمكنني استخدام TrackZone في Python مع Ultralytics YOLO26؟#

باستخدام بضعة أسطر فقط من الكود، يمكنك إعداد تتبع الكائنات في مناطق محددة، مما يسهل دمجه في مشاريعك.

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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 = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

trackzone = solutions.TrackZone(
    show=True, region=[(150, 150), (1130, 150), (1130, 570), (150, 570)], model="yolo26n.pt"
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = trackzone(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Link to this sectionكيف أقوم بتهيئة نقاط المنطقة لمعالجة الفيديو باستخدام Ultralytics TrackZone؟#

تعد تهيئة نقاط المنطقة لمعالجة الفيديو باستخدام Ultralytics TrackZone أمراً بسيطاً وقابلاً للتخصيص. يمكنك تعريف المناطق وتعديلها مباشرة من خلال سكربت Python، مما يسمح بالتحكم الدقيق في المناطق التي ترغب في مراقبتها.

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Initialize trackzone
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
)

تذكر أن TrackZone تقلل النقاط إلى غلافها المحدب، لذا قم بإدراجها بالترتيب حول محيط المنطقة التي تريد مراقبتها.

Link to this sectionمتى يجب أن أستخدم TrackZone بدلاً من ObjectCounter أو RegionCounter؟#

تعمل الحلول الثلاثة جميعها مع المناطق، لكنها تجيب على أسئلة مختلفة:

الحلاستخدمه لـالمخرجات النموذجية
TrackZoneتتبع الكائنات ومراقبة الإشغال المباشر داخل منطقة محدبة واحدةمعرفات التتبع و total_tracks للمنطقة
ObjectCounterعد الكائنات التي تعبر خطاً أو تدخل وتخرج من منطقةإجمالي أعداد الدخول والخروج
RegionCounterعد الكائنات داخل منطقة واحدة أو أكثر عشوائية (بما في ذلك غير المحدبة)أعداد الكائنات لكل منطقة

اختر TrackZone عندما تريد تتبعاً مستمراً داخل منطقة واحدة، وRegionCounter عندما تحتاج إلى مناطق متعددة أو شكلاً غير محدب.

التعليقات