رؤية YOLO 2026:

عد الكائنات باستخدام Ultralytics YOLO26#

ما هو عد الكائنات؟#

Open Object Counting In Colab

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



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

مزايا عد الكائنات#

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

تطبيقات العالم الحقيقي#

الخدمات اللوجستيةتربية الأحياء المائية
Conveyor Belt Packets Counting Using Ultralytics YOLO26Fish Counting in Sea using Ultralytics YOLO26
عد حزم سير الناقل باستخدام Ultralytics YOLO26عد الأسماك في البحر باستخدام Ultralytics YOLO26

عد الكائنات باستخدام YOLO26#

حدد region عدداً — نقطتان لخط أو ثلاث نقاط أو أكثر لمضلع — ومرره إلى حل ObjectCounter. يتتبع العداد كل جسم عبر الإطارات ويحسب أعداد الدخول والخروج عندما تعبر الأجسام المتتبعة الخط أو تمر عبر المنطقة، مما يعود بإطار معلق يمكنك كتابته إلى فيديو خرج.

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

وسائط ObjectCounter#

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

الوسيطالنوعالافتراضيالوصف
modelstrNoneالمسار إلى ملف نموذج Ultralytics YOLO.
show_inboolTrueعلامة للتحكم في عرض عدد الكائنات الداخلة في بث الفيديو.
show_outboolTrueعلامة للتحكم في عرض عدد الكائنات الخارجة في بث الفيديو.
regionlist أو dictNoneالنقاط التي تحدد منطقة الاهتمام، إما قائمة من صفوف (x, y) أو قاموس يربط أسماء المناطق بقوائم النقاط لمناطق متعددة (RegionCounter فقط). عندما يكون None، تتراجع الحلول التي تتطلب منطقة إلى افتراضي مُحدد مسبقًا.
line_widthint2سمك الخط للمربعات والنقاط الرئيسية والعدادات التي ترسمها الحلول.
verboseboolTrueيمكّن سجل الحلول لكل إطار لشكل الإدخال، وعدد الفئات، وسرعة المعالجة. استدعاء التتبع بحد ذاته صامت دائماً.

يسمح حل ObjectCounter باستخدام عدة معاملات track:

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

بالإضافة إلى ذلك، يتم دعم وسائط التصور المدرجة أدناه:

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

الأسئلة الشائعة#

  • لعد الكائنات في مقطع فيديو باستخدام 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 لعد الأجسام في مناطق متعددة في نفس الوقت.

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

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

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

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

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

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

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

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

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

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

التعليقات