TrackZone باستخدام Ultralytics YOLO11
ما هو TrackZone؟
تتخصص TrackZone في مراقبة الأجسام داخل مناطق معينة من الإطار بدلاً من الإطار بأكمله. استنادًا إلى Ultralytics YOLO11، فإنه يدمج اكتشاف الأجسام وتتبعها تحديدًا داخل مناطق لمقاطع الفيديو وموجزات الكاميرا الحية. تجعل خوارزميات YOLO11 المتقدمة وتقنيات التعلم العميق خيارًا مثاليًا لحالات الاستخدام في الوقت الفعلي، مما يوفر تتبعًا دقيقًا وفعالًا للأجسام في تطبيقات مثل مراقبة الحشود والمراقبة.
شاهد: كيفية تتبع الكائنات في منطقة باستخدام Ultralytics YOLO11 | TrackZone 🚀
ما هي مزايا تتبع الكائنات في المناطق (TrackZone)؟
- تحليل مُستهدف: يتيح تتبع الكائنات داخل مناطق معينة الحصول على رؤى أكثر تركيزًا، مما يُمكّن من المراقبة والتحليل الدقيقين للمناطق ذات الأهمية، مثل نقاط الدخول أو المناطق المحظورة.
- كفاءة محسنة: من خلال تضييق نطاق التتبع إلى مناطق محددة، يقلل TrackZone من النفقات الحسابية، مما يضمن معالجة أسرع وأداءً مثاليًا.
- أمان مُحسَّن: يعمل التتبع المناطقي على تحسين المراقبة من خلال مراقبة المناطق الحيوية، مما يساعد في الكشف المبكر عن الأنشطة غير العادية أو الخروقات الأمنية.
- حلول قابلة للتطوير: إن القدرة على التركيز على مناطق معينة تجعل TrackZone قابلة للتكيف مع السيناريوهات المختلفة، من مساحات البيع بالتجزئة إلى البيئات الصناعية، مما يضمن التكامل السلس وقابلية التوسع.
تطبيقات العالم الحقيقي
الزراعة | المواصلات |
---|---|
![]() |
![]() |
تتبع النباتات في الحقل باستخدام Ultralytics YOLO11 | تتبع المركبات على الطريق باستخدام Ultralytics YOLO11 |
TrackZone باستخدام Ultralytics YOLO
# Run a trackzone example
yolo solutions trackzone show=True
# Pass a source video
yolo solutions trackzone show=True source="path/to/video.mp4"
# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"
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
arguments:
الوسيطة | النوع | افتراضي | الوصف |
---|---|---|---|
model |
str |
None |
مسار إلى ملف نموذج Ultralytics YOLO. |
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 ، يتم تعديل عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح. |
show_conf |
bool |
True |
يعرض قيمة الثقة لكل كائن يتم الكشف عنه بجانب التسمية. يعطي نظرة ثاقبة حول يقين النموذج لكل كائن تم الكشف عنه. |
show_labels |
bool |
True |
يعرض تسميات لكل كائن يتم الكشف عنه في الناتج المرئي. يوفر فهمًا فوريًا للكائنات التي تم الكشف عنها. |
الأسئلة الشائعة
كيف يمكنني تتبع الكائنات في منطقة معينة أو نطاق معين من إطار الفيديو باستخدام Ultralytics YOLO11؟
يعد تتبع الأجسام في منطقة أو حيز محدد من إطار الفيديو أمرًا بسيطًا باستخدام Ultralytics YOLO11. ما عليك سوى استخدام الأمر الموضح أدناه لبدء التتبع. يضمن هذا النهج تحليلًا فعالًا ونتائج دقيقة، مما يجعله مثاليًا لتطبيقات مثل المراقبة أو إدارة الحشود أو أي سيناريو يتطلب تتبعًا مناطقيًا.
yolo solutions trackzone source="path/to/video.mp4" show=True
كيف يمكنني استخدام 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
)