"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > دليل المبتدئين لاكتشاف الكائنات في بايثون

دليل المبتدئين لاكتشاف الكائنات في بايثون

تم النشر بتاريخ 2024-11-02
تصفح:927

A Beginner’s Guide to Object Detection in Python

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


ما هو كشف الكائنات؟ ؟

يتضمن اكتشاف الكائنات مهمتين أساسيتين:

  1. تصنيف الصور: تحديد الكائن الموجود في الصورة.
  2. تعريب الكائن: العثور على موضع الكائن باستخدام المربعات المحيطة.

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


خوارزميات الكشف عن الكائنات الشائعة؟

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

  • يشتهر YOLO بالسرعة، وهو نظام للكشف عن الأشياء في الوقت الفعلي يتنبأ بالمربعات المحيطة واحتمالات الفئة في وقت واحد.

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

  • يكتشف SSD الكائنات في مسار واحد ويتفوق في اكتشاف الكائنات بمقاييس مختلفة باستخدام خرائط الميزات.

3. أسرع شبكة R-CNN

  • نموذج من مرحلتين يقوم أولاً بإنشاء مقترحات المنطقة ثم تصنيفها. إنها أكثر دقة ولكنها أبطأ من YOLO وSSD.

إعداد بيئة بايثون الخاصة بك؟️

لبدء اكتشاف الكائنات في بايثون، ستحتاج إلى عدد قليل من المكتبات.

الخطوة 1: تثبيت بايثون

توجه إلى python.org وقم بتنزيل أحدث إصدار من Python (3.8).

الخطوة 2: تثبيت المكتبات المطلوبة

سنستخدم OpenCV لمعالجة الصور وTensorFlow لاكتشاف الكائنات.

pip install opencv-python tensorflow

اختياريًا، قم بتثبيت Matplotlib لتصور نتائج الكشف.

pip install matplotlib

نماذج مدربة مسبقًا لاكتشاف الأشياء؟

بدلاً من التدريب من الصفر، استخدم نماذج مدربة مسبقًا من واجهة برمجة تطبيقات اكتشاف الكائنات في TensorFlow أو PyTorch. تعمل النماذج المدربة مسبقًا على توفير الموارد من خلال الاستفادة من مجموعات البيانات مثل COCO (الكائنات الشائعة في السياق).

في هذا البرنامج التعليمي، سنستخدم ssd_mobilenet_v2 الخاص بـ TensorFlow، وهو نموذج سريع ودقيق تم تدريبه مسبقًا.


اكتشاف الكائنات باستخدام TensorFlow وOpenCV ?‍?

إليك كيفية تنفيذ مسار بسيط للكشف عن الكائنات.

الخطوة 1: قم بتحميل النموذج المُدرب مسبقًا

import tensorflow as tf

# Load the pre-trained model
model = tf.saved_model.load("ssd_mobilenet_v2_fpnlite_320x320/saved_model")

يمكنك تنزيل النموذج من حديقة حيوانات نموذج TensorFlow.

الخطوة 2: تحميل الصورة ومعالجتها

import cv2
import numpy as np

# Load an image using OpenCV
image_path = 'image.jpg'
image = cv2.imread(image_path)

# Convert the image to a tensor
input_tensor = tf.convert_to_tensor(image)
input_tensor = input_tensor[tf.newaxis, ...]

الخطوة 3: إجراء الكشف عن الكائنات

# Run inference on the image
detections = model(input_tensor)

# Extract relevant information like bounding boxes, classes, and scores
num_detections = int(detections.pop('num_detections'))
detections = {key: value[0, :num_detections].numpy() for key, value in detections.items()}
boxes = detections['detection_boxes']
scores = detections['detection_scores']
classes = detections['detection_classes'].astype(np.int64)

الخطوة 4: تصور النتائج

# Draw bounding boxes on the image
for i in range(num_detections):
    if scores[i] > 0.5:  # Confidence threshold
        box = boxes[i]
        h, w, _ = image.shape
        y_min, x_min, y_max, x_max = box

        start_point = (int(x_min * w), int(y_min * h))
        end_point = (int(x_max * w), int(y_max * h))

        # Draw rectangle
        cv2.rectangle(image, start_point, end_point, (0, 255, 0), 2)

# Display the image
cv2.imshow("Detections", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

يقوم هذا الكود بتحميل صورة واكتشاف الكائنات وتصورها باستخدام المربعات المحيطة. تم تعيين حد الثقة على 50%، مما يؤدي إلى تصفية اكتشافات الثقة المنخفضة.


مواضيع متقدمة؟

هل أنت على استعداد للارتقاء بمهاراتك في الكشف عن الأشياء إلى المستوى التالي؟

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

خاتمة ؟

يفتح اكتشاف الكائنات في Python عالمًا من الإمكانيات في صناعات مثل الرعاية الصحية والأمن والقيادة الذاتية. باستخدام أدوات مثل TensorFlow وOpenCV، يمكنك تنفيذ مسارات الكشف بسرعة باستخدام نماذج مدربة مسبقًا مثل YOLO أو SSD. بمجرد أن تتعرف على الأساسيات، يمكنك استكشاف المزيد من الموضوعات المتقدمة مثل الكشف في الوقت الفعلي والتدريب على النماذج المخصصة.

أين سيتم تطبيق اكتشاف الكائنات بعد ذلك؟ دعونا نناقش في التعليقات أدناه!


الكلمات الرئيسية: اكتشاف الكائنات، بايثون، رؤية الكمبيوتر، OpenCV، TensorFlow، YOLO، SSD، Faster R-CNN

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/abhinowww/a-beginners-guide-to-object-detection-in-python-5ahp?1 إذا كان هناك أي انتهاك، فيرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3