此页面由 Cloud Translation API 翻译。
Switch to English

Segmentierung

Bei der Bildsegmentierung wird ein digitales Bild in mehrere Segmente unterteilt (Pixelsätze, auch als Bildobjekte bezeichnet). Ziel der Segmentierung ist es, die Darstellung eines Bildes zu vereinfachen und / oder in etwas zu ändern, das aussagekräftiger und leichter zu analysieren ist.

Das folgende Bild zeigt die Ausgabe des Bildsegmentierungsmodells unter Android. Das Modell erstellt mit hoher Genauigkeit eine Maske über den Zielobjekten.

Loslegen

Wenn Sie TensorFlow Lite noch nicht kennen und mit Android oder iOS arbeiten, wird empfohlen, die folgenden Beispielanwendungen zu untersuchen, die Ihnen den Einstieg erleichtern können.

Sie können die Out-of-Box-API aus der TensorFlow Lite Task Library nutzen, um Bildsegmentierungsmodelle in nur wenigen Codezeilen zu integrieren. Sie können das Modell auch mit der Java-API TensorFlow Lite Interpreter integrieren.

Das folgende Android-Beispiel zeigt die Implementierung für beide Methoden als lib_task_api bzw. lib_interpreter .

Android-Beispiel anzeigen

IOS-Beispiel anzeigen

Wenn Sie eine andere Plattform als Android oder iOS verwenden oder bereits mit den TensorFlow Lite-APIs vertraut sind, können Sie unser Starter-Bildsegmentierungsmodell herunterladen.

Startermodell herunterladen

Modellbeschreibung

DeepLab ist ein hochmodernes Deep-Learning-Modell für die semantische Bildsegmentierung, bei dem das Ziel darin besteht, jedem Pixel im Eingabebild semantische Bezeichnungen (z. B. Person, Hund, Katze) zuzuweisen.

Wie es funktioniert

Die semantische Bildsegmentierung sagt voraus, ob jedes Pixel eines Bildes einer bestimmten Klasse zugeordnet ist. Dies steht im Gegensatz zur Objekterkennung , bei der Objekte in rechteckigen Bereichen erkannt werden, und der Bildklassifizierung , bei der das Gesamtbild klassifiziert wird.

Die aktuelle Implementierung umfasst die folgenden Funktionen:

  1. DeepLabv1: Wir verwenden die Atrous-Faltung, um die Auflösung, mit der Feature-Antworten in Deep Convolutional Neural Networks berechnet werden, explizit zu steuern.
  2. DeepLabv2: Wir verwenden atrous Spatial Pyramid Pooling (ASPP), um Objekte auf mehreren Skalen mit Filtern mit mehreren Abtastraten und effektiven Sichtfeldern robust zu segmentieren.
  3. DeepLabv3: Wir erweitern das ASPP-Modul um die Funktion auf Bildebene [5, 6], um Informationen mit größerer Reichweite zu erfassen. Wir enthalten auch Parameter für die Chargennormalisierung [7], um das Training zu erleichtern. Insbesondere wenden wir eine atröse Faltung an, um Ausgabemerkmale bei verschiedenen Ausgabeschritten während des Trainings und der Auswertung zu extrahieren, wodurch das Training von BN bei Ausgabeschritt = 16 effizient ermöglicht wird und während der Auswertung eine hohe Leistung bei Ausgabeschritt = 8 erzielt wird.
  4. DeepLabv3 +: Wir erweitern DeepLabv3 um ein einfaches, aber effektives Decodermodul, um die Segmentierungsergebnisse insbesondere entlang der Objektgrenzen zu verfeinern. Darüber hinaus kann man in dieser Codierer-Decodierer-Struktur die Auflösung extrahierter Codierermerkmale willkürlich durch heftige Faltung steuern, um Präzision und Laufzeit abzuwägen.

Leistungsbenchmarks

Leistungsbenchmarkzahlen werden mit dem hier beschriebenen Tool generiert.

Modellname Modellgröße Gerät GPU Zentralprozessor
Deeplab v3 2,7 Mb Pixel 3 (Android 10) 16ms 37ms *
Pixel 4 (Android 10) 20ms 23 ms *
iPhone XS (iOS 12.4.1) 16ms 25ms **

* 4 Threads verwendet.

** 2 Threads, die auf dem iPhone verwendet werden, um das beste Leistungsergebnis zu erzielen.

Weiterführende Literatur und Ressourcen