Usuwanie tła obrazu za pomocą semantycznej segmentacji Amazon SageMaker

12 sierpnia 2022

Usuwanie tła obrazu za pomocą semantycznej segmentacji Amazon SageMaker

Wiele osób tworzy własne sklepy internetowe i różnego typu ecommerce, aby sprzedawać swoje produkty oraz usługi. Upraszcza to, a także przyspiesza proces dostarczania produktów na wybrane rynki. Jest to kluczowy wskaźnik sukcesu firmy.

Sztuczna inteligencja/uczenie maszynowe (AI/ML) i automatyzacja mogą zaoferować ulepszony i bezproblemowy proces manipulacji obrazem. Możesz zrobić zdjęcie identyfikujące Twoje produkty. Następnie możesz usunąć tło, aby opublikować wysokiej jakości i czyste zdjęcia produktów. Obrazy te można dodać do sklepów internetowych, aby konsumenci mogli je przeglądać i kupować. Ten zautomatyzowany proces drastycznie zmniejszy wymagany nakład pracy ręcznej, chociaż konieczna będzie ręczna kontrola jakości. Przyspieszy to Twój czas wprowadzenia produktu na rynek (TTM) i szybko dostarczy Twoje produkty klientom.

W tym poście na wyjaśnimy, w jaki sposób można zautomatyzować usuwanie tła obrazów, łącząc wnioskowanie z segmentacją semantycznej za pomocą Amazon SageMaker JumpStart. Możesz zautomatyzować przetwarzanie obrazu za pomocą AWS Lambda. Przeprowadzimy Cię przez proces konfiguracji punktu końcowego wnioskowania segmentacji semantycznej Amazon SageMaker JumpStart przy użyciu wyselekcjonowanych danych treningowych.

Przegląd rozwiązania Amazon SageMaker JumpStart

Usuwanie tla obrazu za pomoca semantycznej segmentacji Amazon SageMaker

Rysunek 1. Architektura do automatycznego przetwarzania nowych obrazów i wyprowadzania izolowanych etykiet identyfikowanych za pomocą segmentacji semantycznej.

Przykładowa architektura na rysunku 1 przedstawia architekturę bezserwerową, która wykorzystuje program SageMaker do wykonywania semantycznej segmentacji obrazów. Przetwarzanie obrazu odbywa się w ramach funkcji Lambda, która wyodrębnia zidentyfikowaną zawartość (produktu) z zawartości tła obrazu.

W tej architekturze opartej na zdarzeniach, usługa Amazon Simple Storage Service (Amazon S3) wywołuje funkcję Lambda za każdym razem, gdy nowy obraz produktu trafia do Uploaded Image Bucket. Ta funkcja Lambda odwołuje się do punktu końcowego segmentacji semantycznej w Amazon SageMaker. Następnie funkcja otrzymuje maskę segmentacji, która identyfikuje piksele, które są częścią identyfikowanego przez nas segmentu. Następnie funkcja Lambda przetwarza obraz, aby odizolować zidentyfikowany segment od reszty obrazu, wysyłając wynik do Processed Image Bucket.

Model segmentacji semantycznej

Algorytm segmentacji semantycznej zapewnia podejście typu fine-grained do tworzenia aplikacji widzenia komputerowego na poziomie pikseli. Oznacza on każdy piksel na obrazie etykietą klasy z predefiniowanego zestawu klas. Ponieważ algorytm segmentacji semantycznej klasyfikuje każdy piksel na obrazie, dostarcza również informacji o kształtach obiektów zawartych na obrazie. Wynik segmentacji jest reprezentowany jako obraz w skali szarości, zwany maską segmentacji (segmentation mask). Maska segmentacji to obraz w skali szarości o takim samym kształcie jak obraz wejściowy.

Możesz użyć maski segmentacji i zastąpić piksele odpowiadające zidentyfikowanej klasie, pikselami z oryginalnego obrazu. Możesz użyć biblioteki Pythona PIL do manipulacji pikselami na obrazie. Poniższe obrazy pokazują, w jaki sposób obraz na rysunku 2 będzie wyglądał z maską pokazaną na rysunku 3, po przejściu przez segmentację semantyczną. Gdy użyjesz maski z rysunku 3 i zastąpisz ją pikselami z rysunku 2, końcowym wynikiem będzie obraz z rysunku 4. Ze względu na drobne problemy z jakością końcowego obrazu, po automatyzacji konieczne będzie ręczne czyszczenie.

Usuwanie tla obrazu za pomoca semantycznej segmentacji Amazon SageMaker 2

Rysunek 2. Zdjęcie samochodu z tłem

Usuwanie tla obrazu za pomoca semantycznej segmentacji Amazon SageMaker3

Rysunek 3. Maska zdjęcia samochodu

Usuwanie tla obrazu za pomoca semantycznej segmentacji Amazon SageMaker4

Rysunek 4. Finalny widok obrazka z usuniętym tłem

SageMaker JumpStart usprawnia wdrażanie gotowego modelu w programie SageMaker, który obsługuje algorytm segmentacji semantycznej. Możesz to przetestować, korzystając z przykładowego notatnika Jupyter dostępnego w artykule Extract Image using Semantic Segmentation, który pokazuje, jak wyodrębnić pojedynczą formę z otaczającego tła.

Dowiedz się więcej o SageMaker JumpStart

SageMaker JumpStart to szybki sposób na poznanie funkcji i możliwości platformy SageMaker za pomocą wyselekcjonowanych jednoetapowych rozwiązań, przykładowych notebook’ów i możliwych do wdrożenia wstępnie wytrenowanych modeli. Możesz także dostosować modele, a następnie je wdrożyć. Dostęp do JumpStart można uzyskać za pomocą Amazon SageMaker Studio lub programowo za pośrednictwem SageMaker API.

SageMaker JumpStart zapewnia wiele różnych modeli segmentacji semantycznej, które są wstępnie wytrenowane z klasą obiektów, które mogą zidentyfikować. Modele te są precyzyjnie dostrojone do przykładowego zestawu danych. Możesz dostroić model za pomocą zestawu danych, aby uzyskać efektywną maskę dla klasy obiektu, który chcesz otrzymać z obrazu. Podczas dostrajania modelu możesz użyć domyślnego zestawu danych lub wybrać własne dane, które znajdują się w buckecie Amazon S3. Możesz dostosować hiperparametry zadania treningowego, które są używane do dostrajania modelu.

Po zakończeniu procesu dostrajania, funkcja JumpStart udostępnia informacje o modelu: model nadrzędny (parent model), nazwa zadania szkoleniowego (training job name), nazwa zadania szkoleniowego Amazon Resource Name (ARN) (training), czas szkolenia (training time) i ścieżka wyjściowa (output path). Pobieramy deploy_image_uri, deploy_source_uri i base_model_uri dla wstępnie wytrenowanego modelu. Wstępnie wytrenowany model podstawowy można hostować, tworząc wystąpienie klasę sagemaker.model.Model i wdrażając ją.

Podsumowanie

W tym poście opisujemy kroki, które należy wykonać, aby użyć Amazon SageMaker JumpStart i AWS Lambda do automatyzacji oraz przetwarzania obrazów. Wykorzystuje wstępnie wytrenowane modele uczenia maszynowego i wnioskowanie. Rozwiązanie pozyskuje obrazy produktów, identyfikuje produkty, a następnie usuwa tło obrazu. Po przeglądzie i kontroli jakości możesz opublikować swoje produkty w swoim sklepie e-commerce lub innym medium.

Pozostałe zasoby:

Aby uzyskać dodatkowe treści dotyczące Serverless Image Manipulation, zapoznaj się z postem dotyczącym Serverless Image Handler AWS Solution Implementation

Źródło: AWS

Case Studies
Referencje

Bardzo sprawny kontakt z pracownikami Hostersi pozwolił nam pomyślną realizację naszego projektu i osiągnięcie założonych celów biznesowych. Jesteśmy pełni uznania dla kompetencji specjalistów Hostersi i jakości świadczonych przez nich usług.

Beata Kaczor
Dyrektor Zarządzający
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.