Die Objekterkennung ist einer der spannendsten Bereiche der Computer Vision und ermöglicht es Maschinen, Objekte in Bildern oder Videos zu erkennen und zu lokalisieren. Dieser Leitfaden führt Sie in die Objekterkennung mit Python ein und hilft Ihnen bei der Implementierung einer grundlegenden Erkennungspipeline mit gängigen Bibliotheken. Egal, ob Sie Anfänger sind oder Ihre vorhandenen Fähigkeiten ausbauen möchten, dieses Tutorial bietet wichtige Einblicke für den Einstieg.
Die Objekterkennung umfasst zwei Hauptaufgaben:
Das macht es komplexer als die einfache Bildklassifizierung, bei der das Modell nur Klassenbezeichnungen vorhersagt. Die Objekterkennung erfordert die Vorhersage sowohl der Klasse als auch der Position des Objekts im Bild.
Um mit der Objekterkennung in Python zu beginnen, benötigen Sie einige Bibliotheken.
Gehen Sie zu python.org und laden Sie die neueste Version von Python (3.8+) herunter.
Wir verwenden OpenCV für die Bildverarbeitung und TensorFlow für die Objekterkennung.
pip install opencv-python tensorflow
Optional können Sie Matplotlib installieren, um Erkennungsergebnisse zu visualisieren.
pip install matplotlib
Anstatt von Grund auf zu trainieren, verwenden Sie vorab trainierte Modelle von TensorFlows Objekterkennungs-API oder PyTorch. Vorab trainierte Modelle sparen Ressourcen, indem sie Datensätze wie COCO (Common Objects in Context) nutzen.
Für dieses Tutorial verwenden wir ssd_mobilenet_v2 von TensorFlow, ein schnelles und genaues vorab trainiertes Modell.
Hier erfahren Sie, wie Sie eine einfache Objekterkennungspipeline implementieren.
import tensorflow as tf # Load the pre-trained model model = tf.saved_model.load("ssd_mobilenet_v2_fpnlite_320x320/saved_model")
Sie können das Modell aus dem Modellzoo von TensorFlow herunterladen.
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()
Dieser Code lädt ein Bild, erkennt Objekte und visualisiert sie mit Begrenzungsrahmen. Der Konfidenzschwellenwert ist auf 50 % festgelegt, wodurch Erkennungen mit geringer Konfidenz herausgefiltert werden.
Bist du bereit, deine Fähigkeiten zur Objekterkennung auf die nächste Stufe zu heben?
Die Objekterkennung in Python eröffnet eine Welt voller Möglichkeiten in Branchen wie dem Gesundheitswesen, der Sicherheit und dem autonomen Fahren. Mit Tools wie TensorFlow und OpenCV können Sie Erkennungspipelines mithilfe vorab trainierter Modelle wie YOLO oder SSD schnell implementieren. Sobald Sie mit den Grundlagen vertraut sind, können Sie sich mit fortgeschritteneren Themen wie Echtzeiterkennung und benutzerdefiniertem Modelltraining befassen.
Wo werden Sie die Objekterkennung als nächstes anwenden? Lasst uns unten in den Kommentaren diskutieren!
Das obige ist der detaillierte Inhalt vonEin Anfängerleitfaden zur Objekterkennung in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!