Meet YOLO26: next-gen vision AI.

Link to this sectionعد الكائنات باستخدام Ultralytics YOLO26#

Link to this sectionما هو عد الكائنات؟#

Open Object Counting In Colab

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



Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀

Link to this sectionمزايا عد الكائنات#

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

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

الخدمات اللوجستيةتربية الأحياء المائية
عد حزم سير الناقل باستخدام Ultralytics YOLO26عد الأسماك في البحر باستخدام Ultralytics YOLO26
عد حزم سير الناقل باستخدام Ultralytics YOLO26عد الأسماك في البحر باستخدام Ultralytics YOLO26
عد الكائنات باستخدام Ultralytics YOLO
# 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 إما نقطتين (لخط) أو مضلعًا بثلاث نقاط أو أكثر. حدد الإحداثيات بالترتيب الذي يجب توصيلها به حتى يعرف العداد بالضبط مكان حدوث عمليات الدخول والخروج.

Link to this sectionوسائط ObjectCounter#

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

الوسيطالنوعالافتراضيالوصف
modelstrNoneالمسار إلى ملف نموذج Ultralytics YOLO.
show_inboolTrueعلامة للتحكم في عرض عدد الكائنات الداخلة في بث الفيديو.
show_outboolTrueعلامة للتحكم في عرض عدد الكائنات الخارجة في بث الفيديو.
regionlist'[(20, 400), (1260, 400)]'قائمة النقاط التي تحدد منطقة العد.

يسمح حل ObjectCounter باستخدام العديد من وسائط 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الأسئلة الشائعة#

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

لعد الكائنات في مقطع فيديو باستخدام Ultralytics YOLO26، يمكنك اتباع الخطوات التالية:

  1. استيراد المكتبات اللازمة (cv2، ultralytics).
  2. تحديد منطقة العد (على سبيل المثال، مضلع، خط، إلخ).
  3. إعداد التقاط الفيديو وتهيئة عداد الكائنات.
  4. معالجة كل إطار لتتبع الكائنات وعدها داخل المنطقة المحددة.

إليك مثال بسيط للعد في منطقة معينة:

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 لعد الكائنات في مناطق متعددة في وقت واحد.

Link to this sectionما هي مزايا استخدام Ultralytics YOLO26 لعد الكائنات؟#

يوفر استخدام Ultralytics YOLO26 لعد الكائنات العديد من المزايا:

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

للاطلاع على أمثلة التنفيذ والتطبيقات العملية، استكشف حل TrackZone لتتبع الكائنات في مناطق محددة.

Link to this sectionكيف يمكنني عد فئات معينة من الكائنات باستخدام 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.

Link to this sectionلماذا يجب أن أستخدم YOLO26 بدلاً من نماذج اكتشاف الكائنات الأخرى للتطبيقات في الوقت الفعلي؟#

يوفر Ultralytics YOLO26 العديد من المزايا مقارنة بنماذج اكتشاف الكائنات الأخرى مثل Faster R-CNN و SSD وإصدارات YOLO السابقة:

  1. السرعة والكفاءة: يوفر YOLO26 قدرات معالجة في الوقت الفعلي، مما يجعله مثاليًا للتطبيقات التي تتطلب استدلالًا عالي السرعة، مثل المراقبة والقيادة الذاتية.
  2. الدقة: يوفر دقة متطورة لمهام اكتشاف الكائنات وتتبعها، مما يقلل من عدد الإيجابيات الكاذبة ويحسن موثوقية النظام بشكل عام.
  3. سهولة التكامل: يوفر YOLO26 تكاملاً سلسًا مع مختلف المنصات والأجهزة، بما في ذلك الأجهزة المحمولة وأجهزة الحافة، وهو أمر بالغ الأهمية لتطبيقات الذكاء الاصطناعي الحديثة.
  4. المرونة: يدعم مهام متنوعة مثل اكتشاف الكائنات، والتجزئة، والتتبع مع نماذج قابلة للتكوين لتلبية متطلبات حالات الاستخدام المحددة.

تحقق من وثائق YOLO26 الخاصة بـ Ultralytics للحصول على تعمق أكبر في ميزاته ومقارنات الأداء.

Link to this sectionهل يمكنني استخدام YOLO26 للتطبيقات المتقدمة مثل تحليل الحشود وإدارة المرور؟#

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

  • تحليل الحشود: مراقبة وإدارة التجمعات الكبيرة، وضمان السلامة وتحسين تدفق الحشود باستخدام العد القائم على المنطقة.
  • إدارة المرور: تتبع وعدد المركبات، وتحليل أنماط المرور، وإدارة الازدحام في الوقت الفعلي مع قدرات تقدير السرعة.
  • تحليلات التجزئة: تحليل أنماط حركة العملاء وتفاعلات المنتجات لتحسين تصميمات المتاجر وتحسين تجربة العملاء.
  • الأتمتة الصناعية: عد المنتجات على سيور النقل ومراقبة خطوط الإنتاج لمراقبة الجودة وتحسينات الكفاءة.

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

التعليقات