Για να εντοπίσουμε οπτικά και να επισημάνουμε αντικείμενα που έχουν εντοπιστεί σε μια εικόνα χρησιμοποιώντας τη βιβλιοθήκη Pillow, μπορούμε να ακολουθήσουμε μια διαδικασία βήμα προς βήμα. Η βιβλιοθήκη Pillow είναι μια ισχυρή βιβλιοθήκη απεικόνισης Python που παρέχει ένα ευρύ φάσμα δυνατοτήτων επεξεργασίας εικόνας. Συνδυάζοντας τις δυνατότητες της βιβλιοθήκης Pillow με τη λειτουργία ανίχνευσης αντικειμένων του Google Vision API, μπορούμε να επιτύχουμε αυτό το έργο αποτελεσματικά.
Ακολουθούν τα βήματα για την οπτική αναγνώριση και επισήμανση αντικειμένων που έχουν εντοπιστεί σε μια εικόνα χρησιμοποιώντας τη βιβλιοθήκη Pillow:
1. Εγκαταστήστε τις απαραίτητες βιβλιοθήκες: Ξεκινήστε εγκαθιστώντας τις απαιτούμενες βιβλιοθήκες. Εγκαταστήστε το Pillow χρησιμοποιώντας την εντολή «pip install pillow». Επιπλέον, θα χρειαστεί να ρυθμίσετε το Google Vision API και να εγκαταστήσετε τη βιβλιοθήκη πελατών Google Cloud για την Python.
2. Έλεγχος ταυτότητας με το Google Vision API: Για να χρησιμοποιήσετε το Google Vision API, πρέπει να ελέγξετε την ταυτότητα της εφαρμογής σας. Ακολουθήστε την τεκμηρίωση που παρέχεται από την Google για να αποκτήσετε τα απαραίτητα διαπιστευτήρια.
3. Φόρτωση και ανάλυση της εικόνας: Χρησιμοποιήστε τη βιβλιοθήκη Pillow για να φορτώσετε την εικόνα που θέλετε να αναλύσετε. Μπορείτε να χρησιμοποιήσετε τη μέθοδο `Image.open()` για να ανοίξετε το αρχείο εικόνας. Μόλις φορτωθεί η εικόνα, μετατρέψτε τη σε μορφή συμβατή με το Google Vision API, όπως JPEG ή PNG.
4. Στείλτε την εικόνα στο Google Vision API: Χρησιμοποιήστε τη βιβλιοθήκη προγράμματος-πελάτη Google Cloud για Python για να στείλετε την εικόνα στο Google Vision API για εντοπισμό αντικειμένων. Αυτό μπορεί να γίνει δημιουργώντας ένα αντικείμενο αίτησης με τα δεδομένα εικόνας και καλώντας την κατάλληλη μέθοδο, όπως «image_annotator_client.object_localization().annotate_image()».
5. Ανάκτηση των αποτελεσμάτων ανίχνευσης αντικειμένων: Εξάγετε τα αποτελέσματα ανίχνευσης αντικειμένων από την απάντηση που ελήφθη από το Google Vision API. Η απάντηση θα περιέχει πληροφορίες σχετικά με τα αντικείμενα που ανιχνεύθηκαν, όπως τα πλαίσια οριοθέτησης, τις ετικέτες και τους βαθμούς εμπιστοσύνης.
6. Σχεδιάστε πλαίσια οριοθέτησης στην εικόνα: Χρησιμοποιήστε τη βιβλιοθήκη Pillow για να σχεδιάσετε πλαίσια οριοθέτησης γύρω από τα αντικείμενα που εντοπίστηκαν στην εικόνα. Μπορείτε να χρησιμοποιήσετε τη μέθοδο `ImageDraw.Draw()` για να δημιουργήσετε ένα αντικείμενο σχεδίασης και, στη συνέχεια, να χρησιμοποιήσετε τη μέθοδο `draw.rectangle()` για να σχεδιάσετε τα πλαίσια οριοθέτησης.
7. Προσθήκη ετικετών και βαθμολογιών στην εικόνα: Για να βελτιώσετε την οπτικοποίηση, μπορείτε να προσθέσετε ετικέτες και βαθμούς εμπιστοσύνης στην εικόνα. Χρησιμοποιήστε τη μέθοδο «draw.text()» από τη βιβλιοθήκη Pillow για να επικαλύψετε τις ετικέτες και τις βαθμολογίες στην εικόνα.
8. Αποθήκευση και εμφάνιση της σχολιασμένης εικόνας: Αποθηκεύστε τη σχολιασμένη εικόνα χρησιμοποιώντας τη μέθοδο `Image.save()` από τη βιβλιοθήκη Pillow. Μπορείτε να επιλέξετε τη μορφή που θέλετε, όπως JPEG ή PNG. Προαιρετικά, εμφανίστε την σχολιασμένη εικόνα χρησιμοποιώντας τη μέθοδο `Image.show()`.
Ακολουθώντας αυτά τα βήματα, μπορείτε να αναγνωρίσετε οπτικά και να επισημάνετε τα αντικείμενα που εντοπίστηκαν σε μια εικόνα χρησιμοποιώντας τη βιβλιοθήκη Pillow. Ο συνδυασμός των ισχυρών δυνατοτήτων επεξεργασίας εικόνας του Pillow και της λειτουργικότητας ανίχνευσης αντικειμένων του Google Vision API επιτρέπει την αποτελεσματική και ακριβή ανάλυση των εικόνων.
Παράδειγμα:
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()
Σε αυτό το παράδειγμα, πρώτα φορτώνουμε και αναλύουμε την εικόνα χρησιμοποιώντας τη βιβλιοθήκη Pillow. Στη συνέχεια, πραγματοποιούμε έλεγχο ταυτότητας με το Google Vision API και στέλνουμε την εικόνα για εντοπισμό αντικειμένων. Ανακτούμε τα αποτελέσματα ανίχνευσης αντικειμένων και χρησιμοποιούμε τη βιβλιοθήκη Pillow για να σχεδιάσουμε πλαίσια οριοθέτησης γύρω από τα εντοπισμένα αντικείμενα στην εικόνα. Επιπλέον, προσθέτουμε ετικέτες και βαθμολογίες εμπιστοσύνης στην εικόνα. Τέλος, αποθηκεύουμε και εμφανίζουμε την σχολιασμένη εικόνα.
Άλλες πρόσφατες ερωτήσεις και απαντήσεις σχετικά με Προηγμένη κατανόηση εικόνων:
- Ποιες είναι μερικές προκαθορισμένες κατηγορίες για την αναγνώριση αντικειμένων στο Google Vision API;
- Ποια είναι η συνιστώμενη προσέγγιση για τη χρήση της δυνατότητας ανίχνευσης ασφαλούς αναζήτησης σε συνδυασμό με άλλες τεχνικές εποπτείας;
- Πώς μπορούμε να έχουμε πρόσβαση και να εμφανίζουμε τις τιμές πιθανότητας για κάθε κατηγορία στον σχολιασμό ασφαλούς αναζήτησης;
- Πώς μπορούμε να αποκτήσουμε τον σχολιασμό ασφαλούς αναζήτησης χρησιμοποιώντας το Google Vision API στην Python;
- Ποιες είναι οι πέντε κατηγορίες που περιλαμβάνονται στη λειτουργία ανίχνευσης ασφαλούς αναζήτησης;
- Πώς εντοπίζει η λειτουργία ασφαλούς αναζήτησης του Google Vision API άσεμνο περιεχόμενο εντός εικόνων;
- Πώς μπορούμε να οργανώσουμε τις πληροφορίες του εξαγόμενου αντικειμένου σε μορφή πίνακα χρησιμοποιώντας το πλαίσιο δεδομένων pandas;
- Πώς μπορούμε να εξαγάγουμε όλους τους σχολιασμούς αντικειμένων από την απάντηση του API;
- Ποιες βιβλιοθήκες και ποιες γλώσσες προγραμματισμού χρησιμοποιούνται για την επίδειξη της λειτουργικότητας του Google Vision API;
- Πώς το Google Vision API εκτελεί τον εντοπισμό και τον εντοπισμό αντικειμένων στις εικόνες;
Δείτε περισσότερες ερωτήσεις και απαντήσεις στο Σύνθετη κατανόηση εικόνων