La détection d'objets est l'un des domaines les plus passionnants de la vision par ordinateur, permettant aux machines de reconnaître et de localiser des objets dans des images ou des vidéos. Ce guide vous présentera la détection d'objets à l'aide de Python, vous aidant à implémenter un pipeline de détection de base avec des bibliothèques populaires. Que vous soyez débutant ou que vous souhaitiez développer vos compétences existantes, ce tutoriel vous fournira des informations essentielles pour commencer.
La détection d'objets implique deux tâches principales :
Cela le rend plus complexe qu'une simple classification d'images, où le modèle prédit simplement les étiquettes de classe. La détection d'objets nécessite de prédire à la fois la classe et l'emplacement de l'objet dans l'image.
Pour commencer la détection d'objets en Python, vous aurez besoin de quelques bibliothèques.
Rendez-vous sur python.org et téléchargez la dernière version de Python (3.8+).
Nous utiliserons OpenCV pour le traitement des images et TensorFlow pour la détection d'objets.
pip install opencv-python tensorflow
Facultativement, installez Matplotlib pour visualiser les résultats de détection.
pip install matplotlib
Au lieu de vous entraîner à partir de zéro, utilisez des modèles pré-entraînés à partir de l'API de détection d'objets de TensorFlow ou de PyTorch. Les modèles pré-entraînés économisent des ressources en exploitant des ensembles de données tels que COCO (Common Objects in Context).
Pour ce didacticiel, nous utiliserons ssd_mobilenet_v2 de TensorFlow, un modèle pré-entraîné rapide et précis.
Voici comment implémenter un pipeline de détection d'objets simple.
import tensorflow as tf # Load the pre-trained model model = tf.saved_model.load("ssd_mobilenet_v2_fpnlite_320x320/saved_model")
Vous pouvez télécharger le modèle depuis le zoo de modèles de 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()
Ce code charge une image, détecte les objets et les visualise avec des cadres de délimitation. Le seuil de confiance est fixé à 50 %, filtrant les détections de faible confiance.
Prêt à faire passer vos compétences en détection d'objets au niveau supérieur ?
La détection d'objets en Python ouvre un monde de possibilités dans des secteurs tels que la santé, la sécurité et la conduite autonome. Avec des outils comme TensorFlow et OpenCV, vous pouvez rapidement mettre en œuvre des pipelines de détection à l'aide de modèles pré-entraînés comme YOLO ou SSD. Une fois que vous serez familiarisé avec les bases, vous pourrez explorer des sujets plus avancés tels que la détection en temps réel et la formation de modèles personnalisés.
Où appliquerez-vous ensuite la détection d'objets ? Discutons-en dans les commentaires ci-dessous !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!