Aby wizualnie zidentyfikować i wyróżnić wykryte obiekty na obrazie za pomocą biblioteki Pillow, możemy wykonać proces krok po kroku. Biblioteka Pillow to potężna biblioteka do tworzenia obrazów w języku Python, która zapewnia szeroki zakres możliwości przetwarzania obrazów. Łącząc możliwości biblioteki Pillow z funkcjonalnością wykrywania obiektów Google Vision API, możemy sprawnie zrealizować to zadanie.
Oto kroki wizualnej identyfikacji i wyróżnienia wykrytych obiektów na obrazie przy użyciu biblioteki Pillow:
1. Zainstaluj niezbędne biblioteki: Rozpocznij od zainstalowania wymaganych bibliotek. Zainstaluj poduszkę za pomocą polecenia `pip install Pillow`. Dodatkowo będziesz musiał skonfigurować Google Vision API i zainstalować bibliotekę klienta Google Cloud dla Pythona.
2. Uwierzytelnij się za pomocą Google Vision API: Aby korzystać z Google Vision API, musisz uwierzytelnić swoją aplikację. Postępuj zgodnie z dokumentacją dostarczoną przez Google, aby uzyskać niezbędne dane uwierzytelniające.
3. Załaduj i przeanalizuj obraz: Użyj biblioteki Pillow, aby załadować obraz, który chcesz przeanalizować. Aby otworzyć plik obrazu, możesz użyć metody `Image.open()`. Po załadowaniu obrazu przekonwertuj go do formatu zgodnego z Google Vision API, np. JPEG lub PNG.
4. Wyślij obraz do Google Vision API: Użyj biblioteki klienta Google Cloud dla Pythona, aby wysłać obraz do Google Vision API w celu wykrycia obiektu. Można tego dokonać tworząc obiekt żądania z danymi obrazu i wywołując odpowiednią metodę, np. `image_annotator_client.object_localization().annotate_image()`.
5. Pobierz wyniki wykrywania obiektów: wyodrębnij wyniki wykrywania obiektów z odpowiedzi otrzymanej z interfejsu Google Vision API. Odpowiedź będzie zawierać informacje o wykrytych obiektach, takie jak ich ramki ograniczające, etykiety i wskaźniki pewności.
6. Narysuj ramki ograniczające na obrazie: Użyj biblioteki Pillow, aby narysować ramki wokół wykrytych obiektów na obrazie. Możesz użyć metody `ImageDraw.Draw()`, aby utworzyć obiekt rysunkowy, a następnie użyć metody `draw.rectangle()` do narysowania obwiedni.
7. Dodaj etykiety i oceny do obrazu: Aby ulepszyć wizualizację, możesz dodać do obrazu etykiety i oceny pewności. Użyj metody „draw.text()” z biblioteki Pillow, aby nałożyć etykiety i partytury na obraz.
8. Zapisz i wyświetl obraz z adnotacjami: Zapisz obraz z adnotacjami, używając metody `Image.save()` z biblioteki Pillow. Możesz wybrać żądany format, taki jak JPEG lub PNG. Opcjonalnie wyświetl obraz z adnotacjami, używając metody `Image.show()`.
Wykonując poniższe kroki, możesz wizualnie zidentyfikować i podświetlić wykryte obiekty na obrazie, korzystając z biblioteki Pillow. Połączenie potężnych możliwości przetwarzania obrazu Pillow i funkcjonalności wykrywania obiektów Google Vision API pozwala na wydajną i dokładną analizę obrazów.
Przykład:
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()
W tym przykładzie najpierw ładujemy i analizujemy obraz przy użyciu biblioteki Pillow. Następnie uwierzytelniamy się za pomocą Google Vision API i wysyłamy obraz w celu wykrycia obiektu. Pobieramy wyniki wykrywania obiektów i używamy biblioteki Pillow do rysowania ramek wokół wykrytych obiektów na obrazie. Dodatkowo do obrazu dodajemy etykiety i wskaźniki pewności. Na koniec zapisujemy i wyświetlamy obraz z adnotacjami.
Inne niedawne pytania i odpowiedzi dotyczące Zaawansowane rozumienie obrazów:
- Jakie są wstępnie zdefiniowane kategorie rozpoznawania obiektów w Google Vision API?
- Jakie jest zalecane podejście do korzystania z funkcji wykrywania bezpiecznego wyszukiwania w połączeniu z innymi technikami moderacji?
- W jaki sposób możemy uzyskać dostęp do wartości prawdopodobieństwa dla każdej kategorii w adnotacji bezpiecznego wyszukiwania i wyświetlić je?
- Jak możemy uzyskać adnotację bezpiecznego wyszukiwania za pomocą Google Vision API w Pythonie?
- Jakie pięć kategorii obejmuje funkcja wykrywania bezpiecznego wyszukiwania?
- W jaki sposób funkcja bezpiecznego wyszukiwania interfejsu Google Vision API wykrywa treści dla dorosłych w obrazach?
- Jak możemy uporządkować wyodrębnione informacje o obiekcie w formacie tabelarycznym za pomocą ramki danych pandy?
- Jak możemy wyodrębnić wszystkie adnotacje obiektów z odpowiedzi API?
- Jakie biblioteki i język programowania są używane do zademonstrowania funkcjonalności Google Vision API?
- W jaki sposób interfejs API Google Vision wykrywa i lokalizuje obiekty w obrazach?
Zobacz więcej pytań i odpowiedzi w Zaawansowane zrozumienie obrazów