Um mithilfe der Pillow-Bibliothek erkannte Objekte in einem Bild visuell zu identifizieren und hervorzuheben, können wir einem Schritt-für-Schritt-Prozess folgen. Die Pillow-Bibliothek ist eine leistungsstarke Python-Bildbibliothek, die eine breite Palette an Bildverarbeitungsfunktionen bietet. Durch die Kombination der Funktionen der Pillow-Bibliothek mit der Objekterkennungsfunktionalität der Google Vision API können wir diese Aufgabe effizient lösen.
Hier sind die Schritte zum visuellen Identifizieren und Hervorheben erkannter Objekte in einem Bild mithilfe der Pillow-Bibliothek:
1. Installieren Sie die erforderlichen Bibliotheken: Beginnen Sie mit der Installation der erforderlichen Bibliotheken. Installieren Sie Pillow mit dem Befehl „pip install Pillow“. Darüber hinaus müssen Sie die Google Vision API einrichten und die Google Cloud-Clientbibliothek für Python installieren.
2. Authentifizieren Sie sich mit der Google Vision API: Um die Google Vision API verwenden zu können, müssen Sie Ihre Anwendung authentifizieren. Befolgen Sie die von Google bereitgestellte Dokumentation, um die erforderlichen Anmeldeinformationen zu erhalten.
3. Laden und analysieren Sie das Bild: Verwenden Sie die Pillow-Bibliothek, um das Bild zu laden, das Sie analysieren möchten. Sie können die Methode „Image.open()“ verwenden, um die Bilddatei zu öffnen. Sobald das Bild geladen ist, konvertieren Sie es in ein mit der Google Vision API kompatibles Format, z. B. JPEG oder PNG.
4. Senden Sie das Bild an die Google Vision API: Verwenden Sie die Google Cloud-Clientbibliothek für Python, um das Bild zur Objekterkennung an die Google Vision API zu senden. Dies kann erreicht werden, indem ein Anforderungsobjekt mit den Bilddaten erstellt und die entsprechende Methode aufgerufen wird, z. B. „image_annotator_client.object_localization().annotate_image()“.
5. Abrufen der Objekterkennungsergebnisse: Extrahieren Sie die Objekterkennungsergebnisse aus der von der Google Vision API empfangenen Antwort. Die Antwort enthält Informationen zu den erkannten Objekten, z. B. deren Begrenzungsrahmen, Beschriftungen und Konfidenzwerte.
6. Zeichnen Sie Begrenzungsrahmen auf dem Bild: Verwenden Sie die Pillow-Bibliothek, um Begrenzungsrahmen um die erkannten Objekte auf dem Bild zu zeichnen. Sie können die Methode „ImageDraw.Draw()“ verwenden, um ein Zeichenobjekt zu erstellen, und dann die Methode „draw.rectangle()“ verwenden, um die Begrenzungsrahmen zu zeichnen.
7. Fügen Sie dem Bild Beschriftungen und Bewertungen hinzu: Um die Visualisierung zu verbessern, können Sie dem Bild Beschriftungen und Konfidenzbewertungen hinzufügen. Verwenden Sie die Methode „draw.text()“ aus der Pillow-Bibliothek, um die Beschriftungen und Bewertungen auf dem Bild zu überlagern.
8. Speichern Sie das mit Anmerkungen versehene Bild und zeigen Sie es an: Speichern Sie das mit Anmerkungen versehene Bild mit der Methode „Image.save()“ aus der Pillow-Bibliothek. Sie können das gewünschte Format auswählen, z. B. JPEG oder PNG. Optional können Sie das mit Anmerkungen versehene Bild mit der Methode „Image.show()“ anzeigen.
Wenn Sie diese Schritte befolgen, können Sie mithilfe der Pillow-Bibliothek die erkannten Objekte in einem Bild visuell identifizieren und hervorheben. Die Kombination aus den leistungsstarken Bildverarbeitungsfunktionen von Pillow und der Objekterkennungsfunktion der Google Vision API ermöglicht eine effiziente und genaue Analyse von Bildern.
Beispiel:
python from PIL import Image, ImageDraw from google.cloud import vision # Load and analyze the image image_path = 'path/to/your/image.jpg' image = Image.open(image_path) image_data = image.tobytes() # Authenticate with the Google Vision API client = vision.ImageAnnotatorClient.from_service_account_json('path/to/your/credentials.json') # Send the image to the Google Vision API for object detection response = client.object_localization(image=vision.Image(content=image_data)) objects = response.localized_object_annotations # Draw bounding boxes on the image draw = ImageDraw.Draw(image) for obj in objects: bbox = obj.bounding_poly.normalized_vertices draw.rectangle([(bbox[0].x * image.width, bbox[0].y * image.height), (bbox[2].x * image.width, bbox[2].y * image.height)], outline='red', width=3) # Add labels and scores to the image label = obj.name score = obj.score draw.text((bbox[0].x * image.width, bbox[0].y * image.height - 15), f'{label} ({score:.2f})', fill='red') # Save and display the annotated image annotated_image_path = 'path/to/save/annotated_image.jpg' image.save(annotated_image_path) image.show()
In diesem Beispiel laden und analysieren wir zunächst das Bild mithilfe der Pillow-Bibliothek. Anschließend authentifizieren wir uns mit der Google Vision API und senden das Bild zur Objekterkennung. Wir rufen die Ergebnisse der Objekterkennung ab und verwenden die Pillow-Bibliothek, um Begrenzungsrahmen um die erkannten Objekte auf dem Bild zu zeichnen. Darüber hinaus fügen wir dem Bild Beschriftungen und Konfidenzwerte hinzu. Abschließend speichern wir das mit Anmerkungen versehene Bild und zeigen es an.
Weitere aktuelle Fragen und Antworten zu Erweitertes Bildverständnis:
- Welche vordefinierten Kategorien für die Objekterkennung in der Google Vision API gibt es?
- Was ist der empfohlene Ansatz für die Verwendung der Safe Search-Erkennungsfunktion in Kombination mit anderen Moderationstechniken?
- Wie können wir auf die Wahrscheinlichkeitswerte für jede Kategorie in der Annotation zur sicheren Suche zugreifen und diese anzeigen?
- Wie können wir die sichere Suchanmerkung mithilfe der Google Vision API in Python erhalten?
- Welche fünf Kategorien sind in der Funktion zur sicheren Sucherkennung enthalten?
- Wie erkennt die sichere Suchfunktion der Google Vision API explizite Inhalte in Bildern?
- Wie können wir die extrahierten Objektinformationen mithilfe des Pandas-Datenrahmens in einem Tabellenformat organisieren?
- Wie können wir alle Objektanmerkungen aus der Antwort der API extrahieren?
- Welche Bibliotheken und Programmiersprachen werden verwendet, um die Funktionalität der Google Vision API zu demonstrieren?
- Wie führt die Google Vision API die Objekterkennung und -lokalisierung in Bildern durch?
Weitere Fragen und Antworten finden Sie unter „Erweitertes Bildverständnis“.