شعار زيفيرنت

اكتشاف الكائنات الحية وتجزئة الصور باستخدام YOLOv8

التاريخ:

المُقدّمة

في رؤية الكمبيوتر، توجد تقنيات مختلفة للكشف عن الكائنات الحية، بما في ذلك أسرع آر سي إن إن، SSDو YOLO. كل تقنية لها حدودها ومزاياها. في حين أن شبكة Faster R-CNN قد تتفوق في الدقة، إلا أنها قد لا تؤدي أداءً جيدًا في سيناريوهات الوقت الفعلي، مما يدفع إلى التحول نحو خوارزمية يولو.

يعد اكتشاف الكائنات أمرًا أساسيًا في رؤية الكمبيوتر، حيث يمكّن الآلات من تحديد الكائنات وتحديد موقعها داخل إطار أو شاشة. على مر السنين، تم تطوير العديد من خوارزميات الكشف عن الكائنات، مع ظهور YOLO كواحدة من أكثر الخوارزميات نجاحًا. تم طرح YOLOv8 مؤخرًا، مما أدى إلى تعزيز قدرات الخوارزمية.

في هذا الدليل الشامل، نستكشف ثلاث خوارزميات بارزة للكشف عن الكائنات: Faster R-CNN، وSSD (Single Shot MultiBox Detector)، وYOLOv8. نناقش الجوانب العملية لتنفيذ هذه الخوارزميات، بما في ذلك إعداد بيئة افتراضية وتطوير تطبيق Streamlit.

هدف التعلم

  • فهم R-CNN وSSD وYOLO الأسرع، وتحليل الاختلافات بينهم.
  • اكتسب خبرة عملية في تنفيذ أنظمة الكشف عن الكائنات الحية باستخدام OpenCV وSupervision وYOLOv8.
  • فهم نموذج تجزئة الصورة باستخدام التعليق التوضيحي Roboflow.
  • قم بإنشاء تطبيق Streamlit لواجهة مستخدم سهلة.

دعنا نستكشف كيفية القيام بتجزئة الصور باستخدام YOLOv8!

جدول المحتويات

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

أسرع R-CNN

Faster R-CNN (الشبكة العصبية التلافيفية الأسرع القائمة على المنطقة) هي خوارزمية للكشف عن الكائنات تعتمد على التعلم العميق. يتم تقييمه باستخدام أطر عمل R-CNN وFast R-CNN ويمكن اعتباره امتدادًا لـ Fast R-CNN.

تقدم هذه الخوارزمية شبكة مقترحات المنطقة (RPN) لإنشاء مقترحات المنطقة، لتحل محل البحث الانتقائي المستخدم في R-CNN. تشارك شبكة RPN الطبقات التلافيفية مع شبكة الكشف، مما يسمح بالتدريب الفعال من البداية إلى النهاية.

يتم بعد ذلك إدخال مقترحات المنطقة التي تم إنشاؤها في شبكة Fast R-CNN لتحسين المربع المحيط وتصنيف الكائنات.

آر سي إن إن | تجزئة الصور باستخدام YOLOv8
أسرع RCNN | تجزئة الصور باستخدام YOLOv8

يوضح الرسم البياني أعلاه عائلة Faster R-CNN بشكل شامل وسهل الفهم لتقييم كل خوارزمية.

كاشف الصناديق المتعددة ذو اللقطة الواحدة (SSD)

كاشف الصناديق المتعددة ذو اللقطة الواحدة (SSD) شائع في اكتشاف الكائنات ويستخدم بشكل أساسي في مهام رؤية الكمبيوتر. في الطريقة السابقة Faster R-CNN، اتبعنا خطوتين: الخطوة الأولى تضمنت جزء الكشف والثانية تضمنت الانحدار. ومع ذلك، مع SSD، نقوم فقط بخطوة اكتشاف واحدة. تم تقديم SSD في عام 2016 لتلبية الحاجة إلى نموذج سريع ودقيق للكشف عن الكائنات.

"

يتمتع SSD بالعديد من المزايا مقارنة بطرق الكشف عن الكائنات السابقة مثل Faster R-CNN:

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

يحقق SSD توازنًا جيدًا بين السرعة والدقة، مما يجعله مناسبًا للتطبيقات في الوقت الفعلي حيث يكون الأداء والكفاءة أمرًا بالغ الأهمية.

أنت تنظر مرة واحدة فقط (YOLOv8)

في عام 2015، تم تقديم خوارزمية "أنت تنظر مرة واحدة فقط" (YOLO) كخوارزمية للكشف عن الأشياء في ورقة بحثية قام بها جوزيف ريدمون، وسانتوش ديففالا، وروس جيرشيك، وعلي فرهادي. YOLO عبارة عن خوارزمية أحادية اللقطة تقوم بتصنيف كائن بشكل مباشر في مسار واحد من خلال وجود شبكة عصبية واحدة فقط تتنبأ بالمربعات المحيطة واحتمالات الفئة باستخدام صورة كاملة كمدخل. 

الآن، دعونا نفهم YOLOv8 باعتباره أحدث التطورات في اكتشاف الكائنات في الوقت الفعلي مع دقة وسرعة محسنة. يتيح لك YOLOv8 الاستفادة من النماذج المدربة مسبقًا، والتي تم تدريبها بالفعل على مجموعة بيانات ضخمة مثل COCO (الكائنات الشائعة في السياق). يوفر تجزئة الصورة معلومات على مستوى البكسل حول كل كائن، مما يتيح إجراء تحليل أكثر تفصيلاً وفهم محتوى الصورة.

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

مبدأ عمل YOLOv8

يولوف 8 يعمل عن طريق تقسيم الصورة المدخلة أولاً إلى خلايا الشبكة. باستخدام خلايا الشبكة هذه، يتنبأ YOLOv8 بالمربعات المحيطة (bbox) مع احتمالات الفئة.

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

الفرق بين متغيرات Yolo V8: يتوفر YOLOv8 في ثلاثة أنواع: YOLOv8، وYOLOv8-L، وYOLOv8-X. والفرق الرئيسي بين المتغيرات هو حجم الشبكة الأساسية. تمتلك YOLOv8 أصغر شبكة أساسية، بينما تمتلك YOLOv8-X أكبر شبكة أساسية.

فرق بين أسرع R-CNN وSSD وYOLO

الجانب أسرع R-CNN SSD YOLO
معمار كاشف ذو مرحلتين مع RPN و Fast R-CNN كاشف أحادي المرحلة كاشف أحادي المرحلة
مقترحات المنطقة نعم لا لا
سرعة الكشف أبطأ مقارنة بـ SSD و YOLO أسرع مقارنة بـ Faster R-CNN، وأبطأ من YOLO سريع جدا
دقة دقة أعلى بشكل عام الدقة والسرعة المتوازنة دقة لائقة، وخاصة للتطبيقات في الوقت الحقيقي
مرونة مرن، يمكنه التعامل مع أحجام الكائنات المختلفة ونسب العرض إلى الارتفاع يمكن التعامل مع مقاييس متعددة من الكائنات يمكن أن يواجه صعوبة في التحديد الدقيق للأشياء الصغيرة
الكشف الموحد لا لا نعم
السرعة مقابل الدقة المقايضة عموما يضحي بالسرعة من أجل الدقة يوازن بين السرعة والدقة يعطي الأولوية للسرعة مع الحفاظ على الدقة اللائقة

ما هو التقسيم؟

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

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

"

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

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

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

الاكتشاف المباشر وتجزئة الصور خطوة بخطوة باستخدام YOLOv8

في هذا المفهوم، نستكشف خطوات إنشاء بيئة افتراضية باستخدام conda، وتفعيل venv، وتثبيت حزم المتطلبات باستخدام النقطة. أولاً نقوم بإنشاء برنامج python النصي العادي ثم نقوم بإنشاء التطبيق المبسط.

الخطوة 1: إنشاء بيئة افتراضية باستخدام Conda

conda create -p ./venv python=3.8 -y

الخطوة الثانية: تفعيل البيئة الافتراضية

conda activate ./venv

الخطوة 3: إنشاء المتطلبات.txt 

افتح المحطة والصق البرنامج النصي أدناه:

touch requirements.txt

الخطوة 4: استخدم أمر Nano وقم بتحرير ملف require.txt

بعد إنشاء Requirements.txt، قم بكتابة الأمر التالي لتحرير Requirements.txt

nano requirements.txt

بعد تشغيل البرنامج النصي أعلاه، يمكنك رؤية واجهة المستخدم هذه.

استخدم أمر Nano وقم بتحرير المتطلبات.txt

اكتب لها الحزم المطلوبة.

ultralytics==8.0.32
supervision==0.2.1
streamlit

ثم اضغط على "السيطرة + س"(هذا الأمر يحفظ جزء التحرير) ثم اضغط على "أدخل"

استخدم أمر Nano وقم بتحرير المتطلبات.txt

بعد الضغط على "السيطرة + س". يمكنك الخروج من الملف. والذهاب إلى الطريق الرئيسي.

الخطوة 5: تثبيت المتطلبات.txt

pip install -r requirements.txt

الخطوة 6: إنشاء البرنامج النصي بايثون

في المحطة اكتب النص التالي أو يمكننا أن نقول الأمر.

touch main.py

بعد إنشاء main.py، افتح رمز vs الذي تستخدم فيه الأمر write في الوحدة الطرفية،

code 

الخطوة 7: كتابة نص بايثون

import cv2
from ultralytics import YOLO
import supervision as sv

# Define the frame width and height for video capture
frame_width = 1280
frame_height = 720

def main():
    # Initialize video capture from default camera
    cap = cv2.VideoCapture(0)
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, frame_width)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, frame_height)

    # Load YOLOv8 model
    model = YOLO("yolov8l.pt")

    # Initialize box annotator for visualization
    box_annotator = sv.BoxAnnotator(
        thickness=2,
        text_thickness=2,
        text_scale=1
    )

    # Main loop for video processing
    while True:
        # Read frame from video capture
        ret, frame = cap.read()

        # Perform object detection using YOLOv8
        result = model(frame, agnostic_nms=True)[0]
        detections = sv.Detections.from_yolov8(result)

        # Prepare labels for detected objects
        labels = [
            f"{model.model.names[class_id]} {confidence:0.2f}"
            for _, confidence, class_id, _
            in detections
        ]

        # Annotate frame with bounding boxes and labels
        frame = box_annotator.annotate(
            scene=frame,
            detections=detections,
            labels=labels
        )

        # Display annotated frame
        cv2.imshow("yolov8", frame)

        # Check for quit key
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    # Release video capture
    cap.release()
    cv2.destroyAllWindows()

if __name__ == "__main__":
    main()

بعد تشغيل هذا الأمر، يمكنك رؤية الكاميرا مفتوحة وتكتشف جزءًا منك. مثل الجنس وأجزاء الخلفية.

الخطوة 7: إنشاء تطبيق مبسط

import cv2
import streamlit as st
from ultralytics import YOLO
import supervision as sv

# Define the frame width and height for video capture
frame_width = 1280
frame_height = 720

def main():
    # Set page title and header
    st.title("Live Object Detection with YOLOv8")

    # Button to start the camera
    start_camera = st.button("Start Camera")

    if start_camera:
        # Initialize video capture from default camera
        cap = cv2.VideoCapture(0)
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, frame_width)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, frame_height)

        # Load YOLOv8 model
        model = YOLO("yolov8l.pt")

        # Initialize box annotator for visualization
        box_annotator = sv.BoxAnnotator(
            thickness=2,
            text_thickness=2,
            text_scale=1
        )

        # Main loop for video processing
        while True:
            # Read frame from video capture
            ret, frame = cap.read()

            # Perform object detection using YOLOv8
            result = model(frame, agnostic_nms=True)[0]
            detections = sv.Detections.from_yolov8(result)

            # Prepare labels for detected objects
            labels = [
                f"{model.model.names[class_id]} {confidence:0.2f}"
                for _, confidence, class_id, _
                in detections
            ]

            # Annotate frame with bounding boxes and labels
            frame = box_annotator.annotate(
                scene=frame,
                detections=detections,
                labels=labels
            )

            # Display annotated frame
            st.image(frame, channels="BGR", use_column_width=True)

            # Check for quit key
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break

        # Release video capture
        cap.release()

if __name__ == "__main__":
    main()

في هذا البرنامج النصي، نقوم بإنشاء التطبيق المبسط وإنشاء الزر بحيث تكون كاميرا جهازك مفتوحة بعد الضغط على الزر وتكتشف الجزء الموجود في الإطار.

قم بتشغيل هذا البرنامج النصي باستخدام هذا الأمر.

streamlit run app.py
# first create the app.py then paste the above code and run this script.

بعد تشغيل الأمر أعلاه، لنفترض أنك حصلت على خطأ الوصول مثل،

إيريور| تجزئة الصور باستخدام Yolov8

ثم اضغط على هذا الأمر

sudo sysctl fs.inotify.max_user_watches=524288

بعد الضغط على الأمر الذي تريد كتابة كلمة المرور الخاصة بك به لأننا نستخدم الأمر sudo sudo is god :)

قم بتشغيل البرنامج النصي مرة أخرى. ويمكنك رؤية التطبيق المبسط.

كشف الكائنات الحية | تجزئة الصور باستخدام YOLOv8

هنا يمكننا إنشاء تطبيق كشف مباشر ناجح في الجزء التالي سنرى جزء التجزئة.

خطوات التعليق التوضيحي

الخطوة 1: إعداد Roboflow

بعد التوقيع على "إنشاء مشروع ". هنا يمكنك إنشاء مجموعة المشروع والتعليقات التوضيحية.

إعداد Roboflow | تجزئة الصور باستخدام Yolov8

الخطوة 2: تنزيل مجموعة البيانات

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

اذهب هذا الصفحة وقم بتنزيل مجموعة بيانات البط.

تنزيل مجموعة البيانات| تجزئة الصور باستخدام YOLOv8

قم باستخراج المجلد هناك حيث يمكنك رؤية المجلدات الثلاثة: تدريب واختبار وفال.

الخطوة 3: تحميل مجموعة البيانات على roboflow

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

تحميل مجموعة البيانات على roboflow

ثم انقر فوق "احفظ واستمر" الخيار كما أضع علامة في مربع مستطيل أحمر

تحميل مجموعة البيانات على roboflow | تجزئة الصور باستخدام Yolov8

الخطوة 4: أضف اسم الفصل

ثم اذهب الى جزء من الفصل على الجانب الأيسر من المربع الأحمر. واكتب اسم الفصل ك بطة، بعد الضغط على المربع الأخضر.

أضف اسم الفئة

الآن اكتمل إعدادنا والجزء التالي مثل جزء التعليق التوضيحي بسيط أيضًا.

الخطوة 5: ابدأ جزء الشرح

انتقل إلى خيار التعليق التوضيحي لقد قمت بوضع علامة في المربع الأحمر ثم انقر فوق بدء جزء التعليق كما حددته في المربع الأخضر.

انقر على الصورة الأولى حيث يمكنك رؤية واجهة المستخدم هذه. بعد رؤية هذا، انقر فوق خيار التعليق التوضيحي اليدوي.

أضف اسم الفئة

ثم أضف معرف البريد الإلكتروني الخاص بك أو اسم زميلك في الفريق حتى تتمكن من تعيين المهمة.

انقر على الصورة الأولى حيث يمكنك رؤية واجهة المستخدم هذه. انقر هنا على المربع الأحمر حتى تتمكن من تحديد النموذج متعدد الحدود.

كشف الكائنات باستخدام yolov8

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

كشف الكائنات باستخدام yolov8

انقر على حفظ وأدخل خيار. التعليق على جميع الصور.

أضف الصور بتنسيق YOLOv8. على الجانب الأيمن، سترى خيار إضافة الصور في قسم التعليقات التوضيحية. هنا، يتم إنشاء جزأين: أحدهما للصور المشروحة والآخر للصور غير المشروحة.

  • أولا، انقر على الجانب الأيسر "علق" الخيار ثم تضيف الصور إلى مجموعة البيانات.
  • ثم اضغط على التالي ""إضافة الصور".
كشف الكائنات باستخدام yolov8

الآن أخيرًا، قمنا بإنشاء مجموعة البيانات، لذا انقر فوق خيار "إنشاء" على الجانب الأيسر ثم حدد الخيار واضغط على خيار conitune.

كشف الكائنات باستخدام yolov8

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

root_file.zip
│
├── test
│   ├── Images
│   └── labels
│
├── train
│   ├── Images
│   └── labels
│
├── val
│   ├── Images
│   └── labels
│
├── data.yaml
└── Readme.roboflow.txt

الخطوة السادسة: كتابة السيناريو للتدريب على نموذج تجزئة الصورة

في هذا الجزء أولاً، يمكنك إنشاء ملف Google Collab باستخدام Drive ثم تحميل مجموعة البيانات الخاصة بك. وقم بتوصيل Google Drive باستخدام Google Collab.

1. استخدم هذا الأمر ل جبل جوجل درايف

from google.colab import drive

drive.mount('/content/gdrive')

2. تحديد دليل البيانات استخدم المتغير الثابت.

DATA_DIR = '/content/drive/MyDrive/YoloV8/Data/'

3. تثبيت الحزمة المطلوبة تثبيت Ultralytics

!pip install ultralytics

4. استيراد المكتبات

import os

from ultralytics import YOLO

5. تحميل YOLOv8 المدربة مسبقًا نموذج (هنا لدينا نموذج مختلف أيضًا تحقق من الوثائق الرسمية حيث يمكنك رؤية النموذج المختلف)

model = YOLO('yolov8n-seg.pt') 
 # load a pretrained model (recommended for training)

6. تدريب النموذج

model.train(data='/content/drive/MyDrive/YoloV8/Data/data.yaml', epochs=2, imgsz=640)

# Update the path & and join this line together 

لا تحقق من محرك الأقراص الخاص بك، يتم إنشاء مجلد اسم النموذج ويتم حفظ النموذج هناك للتنبؤ الذي نريده لهذا النموذج.

7. توقع النموذج

#Update the path
model_path = '/content/drive/MyDrive/YoloV8/Model/train2/weights/last.pt'
#Update the path
image_path = '/content/drive/MyDrive/YoloV8/Data/val/1be566eccffe9561.png'

img = cv2.imread(image_path)
H, W, _ = img.shape

model = YOLO(model_path)

results = model(img)

for result in results:
    for j, mask in enumerate(result.masks.data):

        mask = mask.numpy() * 255

        mask = cv2.resize(mask, (W, H))

        cv2.imwrite('./output.png', mask)

هنا يمكنك رؤية حفظ صورة التجزئة.

كشف الكائنات باستخدام yolov8

الآن أخيرًا يمكننا بناء نماذج الكشف المباشر وتجزئة الصور.

وفي الختام

في هذه المدونة، نستكشف اكتشاف الكائنات الحية وتجزئة الصور باستخدام YOLOv8. بالنسبة للاكتشاف المباشر، نقوم باستيراد نموذج YOLOv8 مُدرب مسبقًا ونستخدم مكتبة رؤية الكمبيوتر، OpenCV، لفتح الكاميرا واكتشاف الكائنات. بالإضافة إلى ذلك، قمنا بإنشاء تطبيق Streamlit لواجهة مستخدم جذابة.

بعد ذلك، سنتعمق في تجزئة الصور باستخدام YOLOv8. نحن نستورد نموذجًا تم تدريبه مسبقًا ونقوم بنقل التعلم على مجموعة بيانات مخصصة. قبل ذلك، قمنا باستكشاف Roboflow للتعليق التوضيحي لمجموعة البيانات، مما يوفر بديلاً سهل الاستخدام لأدوات مثل LabelImg.

وأخيرا، نتوقع صورة تحتوي على بطة. على الرغم من أن الكائن الموجود في الصورة يبدو وكأنه طائر، إلا أننا نحدد اسم الفئة كـ "تجنب" لأغراض العرض التوضيحي.

الوجبات السريعة الرئيسية

  • التعرف على نماذج الكشف عن الكائنات مثل Faster R-CNN وSSD وأحدث YOLOv8.
  • فهم أداة التعليقات التوضيحية Roboflow ودورها في إنشاء مجموعات بيانات لنماذج تجزئة YOLOv8.
  • استكشاف اكتشاف الكائنات الحية باستخدام OpenCV (cv2) والإشراف، وتعزيز المهارات العملية.
  • تدريب ونشر نموذج التجزئة باستخدام YOLOv8، واكتساب الخبرة العملية.

الأسئلة المتكررة

س1. ما الفرق بين اكتشاف الكائنات وتجزئة الصورة باستخدام YOLOv8؟

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

س2. كيف يمكن مقارنة YOLOv8 بالإصدارات السابقة من YOLO (على سبيل المثال، YOLOv3)؟

A. يعمل YOLOv8 على تحسين الإصدارات السابقة من خلال دمج التطورات في بنية الشبكة وتقنيات التدريب والتحسين. قد يوفر دقة وسرعة وكفاءة أفضل مقارنةً بـ YOLOv3.

س3. هل يمكنني استخدام YOLOv8 لاكتشاف الكائنات في الوقت الفعلي على الأجهزة المدمجة؟

A. يمكن استخدام YOLOv8 للكشف عن الكائنات في الوقت الفعلي على الأجهزة المدمجة، اعتمادًا على قدرات الأجهزة وتحسين النموذج. ومع ذلك، قد يتطلب الأمر تحسينات مثل تقليم النموذج أو التكميم لتحقيق الأداء في الوقت الفعلي على الأجهزة المحدودة الموارد.

س 4. ما هي مزايا استخدام Roboflow للتعليق التوضيحي لمجموعة البيانات مقارنة بالأدوات الأخرى؟

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

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة