Bild-Tools

Fotohintergrund im Browser entfernen: welches Modell dahintersteckt, warum die GPU zählt und wo es scheitert

Ein 44 MB großes neuronales Netz läuft auf Ihrem eigenen Rechner und stellt das Motiv frei. Unter einer Sekunde mit Laptop-GPU, 15–25 Sekunden auf der CPU. Was ISNet ist, warum nichts hochgeladen wird und welche Fotos misslingen.

Kurz gesagt

Früher hieß Hintergrund entfernen: Foto auf einen Server mit GPU hochladen. Das ist nicht mehr nötig. Ein Segmentierungsmodell, das klein genug für einen einmaligen Download ist (44 MB), läuft direkt im Browser. Auf einem Rechner mit WebGPU braucht es deutlich unter einer Sekunde pro Foto, ohne WebGPU rechnet dasselbe Modell 15–25 Sekunden auf der CPU. In beiden Fällen verlässt das Foto das Gerät nicht. Menschen, Produkte und Tiere vor einem klar abgegrenzten Hintergrund gelingen gut. Schwach ist das Modell bei Haaren vor Haaren, bei Glas und bei allem, dessen Kante auch der Fotograf nicht erkennen konnte.

Was das Modell ist

Das Tool nutzt ISNet, das Netz aus Highly Accurate Dichotomous Image Segmentation (Qin et al., ECCV 2022). „Dichotom“ heißt, die Aufgabe ist binär: Jedes Pixel gehört zum Vordergrund oder nicht. Trainiert wurde ISNet auf dem Datensatz DIS5K, fünftausend hochaufgelösten Bildern mit akribisch gezeichneten Pixelmasken von Fahrrädern, Stühlen, Bäumen und Ähnlichem. Ausgewählt wurden sie gerade deshalb, weil ältere Modelle an ihren feinen Strukturen scheitern. Für eine Eingabe von 1024 × 1024 liefert das Netz eine Wahrscheinlichkeitskarte von 1024 × 1024. Das Tool setzt darauf einen Schwellenwert, zeichnet die Kante weich und verwendet das Ergebnis als Alphakanal eines PNG.

Die Gewichte stehen unter der Lizenz Apache-2.0. Die Website hostet sie selbst, aufgeteilt in drei Teile, damit sich ein abgebrochener Download fortsetzen lässt, und speichert sie nach der ersten Nutzung im Browser-Cache. Beim zweiten Foto wird nichts mehr heruntergeladen.

Warum „im Browser“ heute möglich ist

Dafür mussten zwei Bausteine existieren. ONNX Runtime Web führt ein trainiertes Modell in JavaScript aus. Die Rechenarbeit übernimmt entweder WebAssembly auf der CPU oder (seit 2023) WebGPU, die Browser-Schnittstelle, die die Grafikkarte für allgemeine Berechnungen zugänglich macht. Ein Vorwärtsdurchlauf der Segmentierung umfasst einige hundert Milliarden Multiplikationen und Additionen. Genau dafür sind GPUs gebaut, ein einzelner CPU-Thread dagegen nicht.

Die Messwerte des Tools auf dieser Website, jeweils mit 1024 Pixeln Eingabe:

Weg Wo es läuft Zeit pro Foto
WebGPU Chrome / Edge 113+, Safari 26+ auf Laptop oder Desktop mit einer beliebigen modernen GPU unter 1 Sekunde
WebAssembly jeder Browser, ein Thread 15–25 Sekunden

Der WebAssembly-Weg ist bewusst single-threaded. Multithreaded WASM setzt voraus, dass die Seite cross-origin isolated ist. Diese Header-Einstellung blockiert sämtliche Skripte von Drittanbietern, auch den Werbecode, der die Website finanziert. Ein Thread ist langsamer, hält die Seite aber kostenlos. Die Arbeit läuft in einem Web Worker, damit die Oberfläche bedienbar bleibt, während im Hintergrund gerechnet wird.

Die zweite Grenze ist der Arbeitsspeicher: Laufzeitumgebung, Modell und Aktivierungen brauchen zusammen rund 200 MB freien Speicher. Smartphones mit 4 GB RAM schaffen das auf dem CPU-Weg. Manche älteren Geräte können den Puffer gar nicht anlegen. In dem Fall zeigt das Tool eine Meldung an, statt den Tab abstürzen zu lassen.

Wo es scheitert

  • Haare vor ähnlichem Hintergrund. Dunkles Haar vor einer dunklen Wand, blondes Haar vor einem beigen Vorhang. Das Modell sieht keine Kante, weil die Pixel keine enthalten. Die Maske schneidet entweder die Haare weg oder lässt einen Saum aus Wand stehen.
  • Transparentes und Spiegelndes. Glas, Wasser, ein Weinglas vor dem Motiv. Segmentierung ist binär. Ein Glas ist weder Vordergrund noch Hintergrund, also verläuft mitten hindurch eine harte Kante.
  • Bewegungsunschärfe. Eine verwischte Kante hat keine eindeutig richtige Grenze.
  • Mehrere Motive. Das Modell behält alles, was es für „das Motiv“ hält. Bei zwei Personen bleiben meist beide stehen, bei einer Person mit großem Hund unter Umständen nur eine von beiden.
  • Sehr kleine Motive. Die Eingabe misst 1024 px an der langen Seite. Eine Person, die in einer Totalen 60 px hoch ist, wird zu ein paar Dutzend Maskenpixeln und kommt klumpig heraus.

Bei sauberen Produktfotos, Porträts vor einer schlichten Wand, Haustieren auf dem Boden und Logos auf Papier arbeitet das Modell zuverlässig. Genau solche Bilder machen den Großteil des Trainingsdatensatzes aus.

Was Sie mit dem Ergebnis machen

Heraus kommt ein PNG mit echter Transparenz. Dieses Format passt, wenn Sie das Motiv auf eine Folie, in ein Inserat oder auf ein anderes Foto setzen wollen. Für den Versand per E-Mail ist es ungeeignet: Ein freigestelltes PNG mit 12 Megapixeln hat 20–30 MB. Braucht das Ziel eine kleine Datei und keine Transparenz, wandeln Sie es in ein JPEG auf weißem Hintergrund um. Braucht es Transparenz bei geringerer Größe, ist WebP mit Alphakanal ein Drittel so groß wie PNG. Der Bildkompressor erledigt beides.

Text zu SpracheTextToSpeech.tools Video komprimierenFreeCompress.video Chinesisch-Englisch-WörterbuchChineseDict.com