Odpowiedz już dziś na lokalne wydarzenie TensorFlow Everywhere!
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Segmentacja

Segmentacja obrazu to proces dzielenia obrazu cyfrowego na wiele segmentów (zestawów pikseli, zwanych również obiektami obrazu). Celem segmentacji jest uproszczenie i / lub zmiana reprezentacji obrazu na coś bardziej znaczącego i łatwiejszego do analizy.

Poniższy obraz przedstawia dane wyjściowe modelu segmentacji obrazu w systemie Android. Model utworzy maskę na obiektach docelowych z dużą dokładnością.

Zaczynaj

Jeśli jesteś nowym użytkownikiem TensorFlow Lite i pracujesz z systemem Android lub iOS, zalecamy zapoznanie się z następującymi przykładowymi aplikacjami, które mogą pomóc w rozpoczęciu pracy.

Możesz wykorzystać gotowe API z biblioteki zadań TensorFlow Lite, aby zintegrować modele segmentacji obrazu w zaledwie kilku wierszach kodu. Model można również zintegrować za pomocą interfejsu API języka Java TensorFlow Lite Interpreter .

Poniższy przykład systemu Android demonstruje implementację obu metod jako odpowiednio lib_task_api i lib_interpreter .

Zobacz przykład Androida

Zobacz przykład iOS

Jeśli korzystasz z platformy innej niż Android lub iOS lub znasz już interfejsy API TensorFlow Lite , możesz pobrać nasz model segmentacji obrazu startowego.

Pobierz model startowy

Opis modelu

DeepLab to najnowocześniejszy model głębokiego uczenia się do semantycznej segmentacji obrazu, którego celem jest przypisanie etykiet semantycznych (np. Osoba, pies, kot) do każdego piksela w obrazie wejściowym.

Jak to działa

Semantyczna segmentacja obrazu przewiduje, czy każdy piksel obrazu jest powiązany z określoną klasą. W przeciwieństwie do wykrywania obiektów , które wykrywa obiekty w prostokątnych obszarach, oraz klasyfikacji obrazu , która klasyfikuje cały obraz.

Bieżąca implementacja obejmuje następujące funkcje:

  1. DeepLabv1: Używamy atrous convolution, aby jawnie kontrolować rozdzielczość, w której odpowiedzi funkcji są obliczane w głębokich konwolucyjnych sieciach neuronowych.
  2. DeepLabv2: Używamy atrous przestrzennej piramidy (ASPP) do solidnego segmentowania obiektów w wielu skalach z filtrami o wielu częstotliwościach próbkowania i efektywnych polach widzenia.
  3. DeepLabv3: Rozszerzyliśmy moduł ASPP o funkcję na poziomie obrazu [5, 6], aby przechwytywać informacje z większego zasięgu. Uwzględniamy również parametry normalizacji partii [7], aby ułatwić szkolenie. W szczególności stosujemy atrous convolution w celu wyodrębnienia cech wyjściowych przy różnych krokach wyjściowych podczas treningu i oceny, co skutecznie umożliwia trenowanie BN przy kroku wyjściowym = 16 i osiąga wysoką wydajność przy kroku wyjściowym = 8 podczas oceny.
  4. DeepLabv3 +: Rozszerzamy DeepLabv3 o prosty, ale skuteczny moduł dekodera w celu udoskonalenia wyników segmentacji, zwłaszcza wzdłuż granic obiektów. Co więcej, w tej strukturze kodera-dekodera można dowolnie sterować rozdzielczością wyodrębnionych funkcji kodera przez atrapy splotu w celu uzyskania kompromisu z precyzją i czasem działania.

Testy wydajności

Numery testów wydajności są generowane za pomocą opisanego tutaj narzędzia.

Nazwa modelu Rozmiar modelu Urządzenie GPU procesor
Deeplab v3 2,7 Mb Pixel 3 (Android 10) 16 ms 37 ms *
Pixel 4 (Android 10) 20 ms 23 ms *
iPhone XS (iOS 12.4.1) 16 ms 25 ms **

* 4 używane nici.

** 2 wątki używane na iPhonie w celu uzyskania najlepszej wydajności.

Dalsze lektury i zasoby