يعد اكتشاف الكائنات أحد أكثر المجالات إثارة في رؤية الكمبيوتر، حيث يسمح للآلات بالتعرف على الكائنات وتحديد موقعها في الصور أو مقاطع الفيديو. سيقدم لك هذا الدليل اكتشاف الكائنات باستخدام Python، مما يساعدك على تنفيذ مسار الكشف الأساسي مع المكتبات الشائعة. سواء كنت مبتدئًا أو ترغب في البناء على مهاراتك الحالية، سيوفر لك هذا البرنامج التعليمي رؤى أساسية للبدء.
يتضمن اكتشاف الكائنات مهمتين أساسيتين:
وهذا يجعل الأمر أكثر تعقيدًا من تصنيف الصور البسيط، حيث يتنبأ النموذج فقط بتسميات الفئة. يتطلب اكتشاف الكائنات التنبؤ بكل من فئة الكائن وموقعه في الصورة.
لبدء اكتشاف الكائنات في بايثون، ستحتاج إلى عدد قليل من المكتبات.
توجه إلى python.org وقم بتنزيل أحدث إصدار من Python (3.8).
سنستخدم OpenCV لمعالجة الصور وTensorFlow لاكتشاف الكائنات.
pip install opencv-python tensorflow
اختياريًا، قم بتثبيت Matplotlib لتصور نتائج الكشف.
pip install matplotlib
بدلاً من التدريب من الصفر، استخدم نماذج مدربة مسبقًا من واجهة برمجة تطبيقات اكتشاف الكائنات في TensorFlow أو PyTorch. تعمل النماذج المدربة مسبقًا على توفير الموارد من خلال الاستفادة من مجموعات البيانات مثل COCO (الكائنات الشائعة في السياق).
في هذا البرنامج التعليمي، سنستخدم ssd_mobilenet_v2 الخاص بـ TensorFlow، وهو نموذج سريع ودقيق تم تدريبه مسبقًا.
إليك كيفية تنفيذ مسار بسيط للكشف عن الكائنات.
import tensorflow as tf # Load the pre-trained model model = tf.saved_model.load("ssd_mobilenet_v2_fpnlite_320x320/saved_model")
يمكنك تنزيل النموذج من حديقة حيوانات نموذج TensorFlow.
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, ...]
# 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)
# 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%، مما يؤدي إلى تصفية اكتشافات الثقة المنخفضة.
هل أنت على استعداد للارتقاء بمهاراتك في الكشف عن الأشياء إلى المستوى التالي؟
يفتح اكتشاف الكائنات في Python عالمًا من الإمكانيات في صناعات مثل الرعاية الصحية والأمن والقيادة الذاتية. باستخدام أدوات مثل TensorFlow وOpenCV، يمكنك تنفيذ مسارات الكشف بسرعة باستخدام نماذج مدربة مسبقًا مثل YOLO أو SSD. بمجرد أن تتعرف على الأساسيات، يمكنك استكشاف المزيد من الموضوعات المتقدمة مثل الكشف في الوقت الفعلي والتدريب على النماذج المخصصة.
أين سيتم تطبيق اكتشاف الكائنات بعد ذلك؟ دعونا نناقش في التعليقات أدناه!
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3