TrackZone باستخدام Ultralytics YOLO11
ما هو TrackZone؟
تتخصص TrackZone في مراقبة الأجسام داخل مناطق محددة من الإطار بدلاً من الإطار بأكمله. مبنية على Ultralytics YOLO11، فهو يدمج خاصية الكشف عن الأجسام وتتبعها تحديدًا داخل مناطق محددة لمقاطع الفيديو وموجزات الكاميرا المباشرة. YOLO11 الخوارزميات المتقدمة وتقنيات التعلُّم العميق تجعله خيارًا مثاليًا لحالات الاستخدام في الوقت الفعلي، حيث يوفر تتبعًا دقيقًا وفعالًا للأجسام في تطبيقات مثل مراقبة الحشود والمراقبة.
شاهد: كيفية تتبع الكائنات في المنطقة باستخدام Ultralytics YOLO11 | تراك زون 🚀
مزايا تتبع الكائنات في المناطق (TrackZone)
- التحليل المستهدف: يتيح تتبع الأجسام داخل مناطق محددة الحصول على رؤى أكثر تركيزًا، مما يتيح المراقبة والتحليل الدقيق للمناطق ذات الأهمية، مثل نقاط الدخول أو المناطق المحظورة.
- تحسين الكفاءة: من خلال تضييق نطاق التتبع ليقتصر على مناطق محددة، يقلل TrackZone من النفقات الحسابية الزائدة، مما يضمن معالجة أسرع وأداءً أمثل.
- تعزيز الأمن: يعمل تتبع المناطق على تحسين المراقبة من خلال مراقبة المناطق الحساسة، مما يساعد في الكشف المبكر عن أي نشاط غير عادي أو خروقات أمنية.
- حلول قابلة للتطوير: إن القدرة على التركيز على مناطق محددة تجعل TrackZone قابلاً للتكيف مع مختلف السيناريوهات، من مساحات البيع بالتجزئة إلى الإعدادات الصناعية، مما يضمن التكامل السلس وقابلية التوسع.
التطبيقات الواقعية
الزراعة | النقل والمواصلات |
---|---|
![]() |
![]() |
تتبع النباتات في الحقل باستخدام Ultralytics YOLO11 | تتبع المركبات على الطريق باستخدام Ultralytics YOLO11 |
تراك زون باستخدام Ultralytics YOLO
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
# 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("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
show=True, # display the output
region=region_points, # pass region points
model="yolo11n.pt", # use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
# line_width=2, # adjust the line width for bounding boxes and text display
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = trackzone(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the video file
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
TrackZone
الحجج
إليك الجدول الذي يحتوي على TrackZone
الحجج
الجدال | النوع | افتراضي | الوصف |
---|---|---|---|
model |
str |
None |
المسار إلى ملف نموذج Ultralytics YOLO Model File. |
region |
list |
[(20, 400), (1260, 400)] |
قائمة النقاط التي تحدد منطقة العد. |
يتضمن حل TrackZone دعمًا لما يلي track
المعلمات:
الجدال | النوع | افتراضي | الوصف |
---|---|---|---|
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 ، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح. |
الأسئلة الشائعة
كيف يمكنني تتبع الأجسام في منطقة أو منطقة معينة من إطار فيديو باستخدام Ultralytics YOLO11 ؟
يعد تتبع الأجسام في منطقة أو منطقة محددة من إطار الفيديو أمرًا مباشرًا باستخدام Ultralytics YOLO11 . ما عليك سوى استخدام الأمر الوارد أدناه لبدء التتبع. يضمن هذا النهج تحليلاً فعالاً ونتائج دقيقة، مما يجعله مثاليًا لتطبيقات مثل المراقبة أو إدارة الحشود أو أي سيناريو يتطلب تتبع المنطقة.
كيف يمكنني استخدام TrackZone في Python مع Ultralytics YOLO11 ؟
من خلال بضعة أسطر من التعليمات البرمجية، يمكنك إعداد تتبع الكائنات في مناطق محددة، مما يسهل دمجها في مشاريعك.
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))
# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
show=True, # display the output
region=region_points, # pass region points
model="yolo11n.pt",
)
# 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
results = trackzone(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
كيف يمكنني تكوين نقاط المنطقة لمعالجة الفيديو باستخدام 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
)