عد الكائنات باستخدام Ultralytics YOLO26
ما هو عد الكائنات؟
يتضمن عد الكائنات باستخدام Ultralytics YOLO26 تحديد كائنات معينة وحسابها بدقة في مقاطع الفيديو وبث الكاميرات. يتفوق YOLO26 في التطبيقات التي تعمل في الوقت الفعلي، حيث يوفر عدًا فعالًا ودقيقًا للكائنات في سيناريوهات متنوعة مثل تحليل الحشود والمراقبة، وذلك بفضل خوارزمياته المتطورة وقدرات التعلم العميق.
Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀
مزايا عد الكائنات
- تحسين الموارد: يسهل عد الكائنات إدارة الموارد بكفاءة من خلال توفير أعداد دقيقة، مما يؤدي إلى تحسين تخصيص الموارد في تطبيقات مثل إدارة المخزون.
- تعزيز الأمن: يعزز عد الكائنات الأمن والمراقبة من خلال تتبع وحساب الكيانات بدقة، مما يساعد في الكشف الاستباقي عن التهديدات.
- اتخاذ قرارات مستنيرة: يقدم عد الكائنات رؤى قيمة لاتخاذ القرار، مما يحسن العمليات في قطاع التجزئة، وإدارة حركة المرور، والعديد من المجالات الأخرى.
تطبيقات العالم الحقيقي
| الخدمات اللوجستية | الاستزراع المائي |
|---|---|
![]() | ![]() |
| عد طرود سير النقل باستخدام Ultralytics YOLO26 | عد الأسماك في البحر باستخدام Ultralytics YOLO26 |
# Run a counting example
yolo solutions count show=True
# Pass a source video
yolo solutions count source="path/to/video.mp4"
# Pass region coordinates
yolo solutions count region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"تقبل وسيط region إما نقطتين (لخط) أو مضلعًا بثلاث نقاط أو أكثر. حدد الإحداثيات بالترتيب الذي يجب أن تتصل به حتى يعرف العداد بالضبط أين تحدث عمليات الدخول والخروج.
وسائط ObjectCounter
فيما يلي جدول يحتوي على وسائط ObjectCounter:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | مسار إلى ملف نموذج Ultralytics YOLO. |
show_in | bool | True | علامة للتحكم في ما إذا كان سيتم عرض أعداد الدخول على دفق الفيديو. |
show_out | bool | True | علامة للتحكم في ما إذا كان سيتم عرض أعداد الخروج على دفق الفيديو. |
region | list | '[(20, 400), (1260, 400)]' | قائمة النقاط التي تحدد منطقة العد. |
يسمح حل ObjectCounter باستخدام العديد من وسائط track:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
tracker | str | 'botsort.yaml' | يحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال، bytetrack.yaml أو botsort.yaml. |
conf | float | 0.1 | يضبط عتبة الثقة للكشوف؛ القيم المنخفضة تسمح بتتبع المزيد من الكائنات ولكنها قد تتضمن نتائج إيجابية كاذبة. |
iou | float | 0.7 | يضبط عتبة التقاطع فوق الاتحاد (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 | int or None | None | يحدد عرض خط صناديق الإحاطة. إذا كانت القيمة None، يتم تعديل عرض الخط تلقائياً بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح. |
show_conf | bool | True | يعرض درجة الثقة لكل اكتشاف بجانب التسمية. يعطي نظرة ثاقبة حول يقين النموذج لكل اكتشاف. |
show_labels | bool | True | يعرض تسميات لكل اكتشاف في المخرجات المرئية. يوفر فهماً فورياً للكائنات المكتشفة. |
الأسئلة الشائعة
كيف يمكنني عد الكائنات في فيديو باستخدام Ultralytics YOLO26؟
لعد الكائنات في فيديو باستخدام Ultralytics YOLO26، يمكنك اتباع هذه الخطوات:
- استيراد المكتبات اللازمة (
cv2,ultralytics). - تحديد منطقة العد (على سبيل المثال، مضلع، خط، إلخ).
- إعداد التقاط الفيديو وتهيئة عداد الكائنات.
- معالجة كل إطار لتتبع الكائنات وعدها داخل المنطقة المحددة.
إليك مثال بسيط للعد في منطقة معينة:
import cv2
from ultralytics import solutions
def count_objects_in_region(video_path, output_video_path, model_path):
"""Count objects in a specific region within a video."""
cap = cv2.VideoCapture(video_path)
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(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
counter = solutions.ObjectCounter(show=True, region=region_points, model=model_path)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = counter(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolo26n.pt")لمزيد من التكوينات والخيارات المتقدمة، تحقق من حل RegionCounter لعد الكائنات في مناطق متعددة في وقت واحد.
ما هي مزايا استخدام Ultralytics YOLO26 لعد الكائنات؟
يوفر استخدام Ultralytics YOLO26 لعد الكائنات العديد من المزايا:
- تحسين الموارد: يسهل إدارة الموارد بكفاءة من خلال توفير أعداد دقيقة، مما يساعد على تحسين تخصيص الموارد في صناعات مثل إدارة المخزون.
- تعزيز الأمن: يعزز الأمن والمراقبة من خلال تتبع وحساب الكيانات بدقة، مما يساعد في الكشف الاستباقي عن التهديدات وأنظمة الأمان.
- اتخاذ قرارات مستنيرة: يقدم رؤى قيمة لاتخاذ القرار، مما يحسن العمليات في مجالات مثل التجزئة وإدارة حركة المرور والمزيد.
- المعالجة في الوقت الفعلي: تمكن بنية YOLO26 من الاستدلال في الوقت الفعلي، مما يجعله مناسبًا لبث الفيديو المباشر والتطبيقات الحساسة للوقت.
لأمثلة التنفيذ والتطبيقات العملية، استكشف حل TrackZone لتتبع الكائنات في مناطق محددة.
كيف يمكنني عد فئات معينة من الكائنات باستخدام Ultralytics YOLO26؟
لعد فئات معينة من الكائنات باستخدام Ultralytics YOLO26، تحتاج إلى تحديد الفئات التي تهتم بها خلال مرحلة التتبع. فيما يلي مثال بلغة Python:
import cv2
from ultralytics import solutions
def count_specific_classes(video_path, output_video_path, model_path, classes_to_count):
"""Count specific classes of objects in a video."""
cap = cv2.VideoCapture(video_path)
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(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
line_points = [(20, 400), (1080, 400)]
counter = solutions.ObjectCounter(show=True, region=line_points, model=model_path, classes=classes_to_count)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = counter(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolo26n.pt", [0, 2])في هذا المثال، تعني classes_to_count=[0, 2] أنه يعد كائنات من الفئة 0 و 2 (على سبيل المثال، شخص وسيارة في مجموعة بيانات COCO). يمكنك العثور على مزيد من المعلومات حول فهارس الفئات في وثائق مجموعة بيانات COCO.
لماذا يجب أن أستخدم YOLO26 بدلاً من نماذج كشف الكائنات الأخرى للتطبيقات في الوقت الفعلي؟
يوفر Ultralytics YOLO26 العديد من المزايا مقارنة بنماذج كشف الكائنات الأخرى مثل Faster R-CNN و SSD وإصدارات YOLO السابقة:
- السرعة والكفاءة: يوفر YOLO26 قدرات معالجة في الوقت الفعلي، مما يجعله مثاليًا للتطبيقات التي تتطلب استدلالًا عالي السرعة، مثل المراقبة والقيادة الذاتية.
- الدقة: يوفر دقة متطورة لمهام كشف الكائنات وتتبعها، مما يقلل من عدد النتائج الإيجابية الكاذبة ويحسن الموثوقية العامة للنظام.
- سهولة التكامل: يوفر YOLO26 تكاملًا سلسًا مع منصات وأجهزة متنوعة، بما في ذلك الأجهزة المحمولة وأجهزة الحافة، وهو أمر بالغ الأهمية لتطبيقات الذكاء الاصطناعي الحديثة.
- المرونة: يدعم مهامًا متنوعة مثل كشف الكائنات، والتقطيع، والتتبع مع نماذج قابلة للتكوين لتلبية متطلبات حالات الاستخدام المحددة.
تحقق من وثائق Ultralytics YOLO26 للحصول على نظرة أعمق على ميزاته ومقارنات الأداء.
هل يمكنني استخدام YOLO26 للتطبيقات المتقدمة مثل تحليل الحشود وإدارة حركة المرور؟
نعم، Ultralytics YOLO26 مناسب تمامًا للتطبيقات المتقدمة مثل تحليل الحشود وإدارة حركة المرور بفضل قدراته على الكشف في الوقت الفعلي، وقابليته للتوسع، ومرونة التكامل. تسمح ميزاته المتقدمة بتتبع الكائنات وعدها وتصنيفها بدقة عالية في بيئات ديناميكية. تتضمن أمثلة حالات الاستخدام ما يلي:
- تحليل الحشود: مراقبة التجمعات الكبيرة وإدارتها، وضمان السلامة وتحسين تدفق الحشود من خلال العد القائم على المناطق.
- إدارة حركة المرور: تتبع المركبات وعدها، وتحليل أنماط حركة المرور، وإدارة الازدحام في الوقت الفعلي مع قدرات تقدير السرعة.
- تحليلات التجزئة: تحليل أنماط حركة العملاء وتفاعلات المنتج لتحسين تخطيطات المتجر وتحسين تجربة العملاء.
- الأتمتة الصناعية: عد المنتجات على سيور النقل ومراقبة خطوط الإنتاج لمراقبة الجودة وتحسين الكفاءة.
للحصول على تطبيقات أكثر تخصصًا، استكشف حلول Ultralytics للحصول على مجموعة شاملة من الأدوات المصممة لتحديات الرؤية الحاسوبية في العالم الحقيقي.

