Native macOS- und iOS-App, die Gesichter und Kfz-Kennzeichen in Fotos und Videos automatisch unkenntlich macht – vollständig auf dem Gerät, ohne Cloud, ohne Account.
Demo-Fotos veröffentlichen, ohne die Persönlichkeitsrechte der Abgebildeten zu verletzen – das klingt simpel, ist es aber nicht. Bestehende Lösungen sind entweder CLI-Tools wie deface oder uniface ohne grafische Oberfläche, oder App-Store-Apps, die unter der Haube als WebView-Wrapper über eine Cloud-API laufen.
Beides taugt nicht für Workshop- oder Konferenzmaterial, das schnell, lokal und ohne Datenabfluss anonymisiert werden muss.
Redact ist eine echte native App – mit erstklassiger Erkennung durch ein fine-getuntes YOLOv11m-Modell, das vollständig auf dem Gerät läuft. Keine Cloud, kein Account, kein Setup. Drag & Drop, Knopfdruck, fertig.
Das Modell läuft über Core ML auf der Apple Neural Engine. Weil der YOLO-Export für Frontalansichten am stärksten ist, werden seine Treffer per IoU-Merge mit Apples Vision-Framework zusammengeführt – das ergänzt Profile und teilweise verdeckte Gesichter. Große Bilder laufen zusätzlich als überlappende Kacheln durch das Modell, damit kleine Gesichter nicht unter die Erkennungsschwelle schrumpfen. Ein zweiter Detektor findet Kfz-Kennzeichen.
Der eigentliche Sprung kam mit Video: Erkennung pro Frame oder adaptiv mit Objekt-Tracking dazwischen, Zusammenfassung der Boxen zu identitätsbasierten Tracks mit Lücken-Überbrückung und Interpolation – editierbar in einer Timeline, bevor über AVFoundation neu gerendert wird. Aus dem Foto-Werkzeug wurde eine Multi-Plattform-App für beide Medientypen: macOS für die Batch-Verarbeitung am Schreibtisch, iOS und iPadOS für unterwegs.
Dieselbe Engine auf drei Plattformen – am Schreibtisch für ganze Ordner, unterwegs für das eine Foto, das gleich in die Gruppe soll.
Fine-Tune des YOLO11m-Modells speziell für Gesichtserkennung – ~20M Parameter, Bounding Boxes mit Confidence, eingebettetes NMS. Die Treffer werden per Greedy-IoU mit Apples Vision-Framework gemergt, das Profile und Verdeckungen abdeckt.
Zweiphasige Pipeline: erst Erkennung über alle Frames – wahlweise pro Frame oder adaptiv mit Objekt-Tracking zwischen Keyframes –, dann Rendering über AVAssetReader/-Writer. Die Tonspur läuft unverändert durch.
Einzelne Boxen werden per IoU-Matching zu Tracks pro Person verknüpft – inklusive Lücken-Überbrückung, Re-Identification und linearer Interpolation zwischen den gespeicherten Stützstellen.
Tracks lassen sich in einer Timeline ein- und ausschalten, korrigieren und einzeln mit einem eigenen Effekt versehen. Die Live-Vorschau zeigt das Ergebnis, gerendert wird erst beim Export.
Ein separater Detektor findet Nummernschilder in Fotos und Videos – wichtig für Straßenszenen, Parkplätze und alles, was man mit dem Auto im Bild veröffentlicht.
Mosaik, Gaussian Blur, schwarzer Balken oder Overlay – letzteres mit einzelnen Emoji oder einem von elf Emoji- und Sticker-Packs. Stärke, Padding sowie Rechteck- oder Ellipsen-Maske sind einstellbar.
Inferenz über Core ML auf der ANE – schnell genug für Batch-Verarbeitung ganzer Foto-Ordner. Kein Internet nötig, keine GPU-Auslastung, kein Lüfter.
Keine Cloud, keine Telemetrie, kein Account. Fotos und Videos verlassen das Gerät nicht – die gesamte Verarbeitung passiert lokal.
Erkannte Gesichter per Klick de-/aktivieren, übersehene per Drag selbst hinzufügen. Confidence-Schwelle ist einstellbar – volle Kontrolle über das Ergebnis.
Einzelne Bilder oder ganze Ordner reinziehen – auf macOS sogar per Rechtsklick direkt aus dem Finder. Ergebnisse landen in einem anonymized/-Unterordner, Originale bleiben unangetastet.
Optional GPS-Koordinaten, Kamera-Modell und Zeitstempel beim Export entfernen – nützlich, wenn anonymisierte Bilder wirklich anonym sein sollen.
Deutsch und Englisch über Apple String Catalog (xcstrings), umschaltbar in der App. Helles und dunkles Theme, Onboarding, Projektbibliothek, Privacy Manifest – alles native, alles Apple.
YOLOv11m-face als beste Balance aus Genauigkeit und Geschwindigkeit identifiziert, mit coremltools nach Core ML konvertiert und auf das MLProgram-Format gebracht.
SwiftUI-App mit NavigationSplitView, Drag & Drop, Core-Image-Pipeline und TaskGroup-basierter Batch-Verarbeitung. Erste Version: lokales Verpixeln eines Ordners.
Geteilter Code in RedactCore-Package, plattformspezifische UI für iOS/iPadOS, Memory-Crashes bei großen Fotos via ImageIO-Downsampling behoben.
Lokalisierung (DE/EN) via xcstrings, Privacy Manifest, App Icons, Splash-Font – und schließlich der Launch im App Store.
Frame-Extraktion, Detection-Modi und Track-Building in RedactCore, Rendering über AVAssetReader/-Writer mit durchgereichter Tonspur – dieselben Services für beide Apps.
Der eigentliche Aufwand: Tracks stabil halten, Lücken überbrücken – und den Speicher im Griff behalten, damit iOS die App bei 4K-Material nicht abschießt.
Effekte werden in Echtzeit über den Player gelegt statt in eine Datei geschrieben. Gerendert wird erst beim Export – dazu Timeline und Per-Track-Effekte.
Monetarisierung über StoreKit 2 mit Abo und einmaliger Lifetime-Option. Das Entitlement ist Laufzeit-Zustand, und die Render-Pfade prüfen es selbst – nicht die UI.
Redact steht kostenlos im App Store – mit Gesichts- und Kennzeichen-Erkennung, Mosaik und Blur und unbegrenztem Fotoexport. Redact Pro schaltet die übrigen Effekte und den vollen Videoexport frei. Wenn du eine ähnliche on-device-Lösung für dein Projekt suchst oder Feedback zur App hast, schreib mir gerne.