Face Detection ist eine Computer-Vision-Technologie zum Auffinden und Lokalisieren menschlicher Gesichter in digitalen Bildern und Videoströmen. Im Gegensatz zu Face Recognition (Identifizierung einer Person) bestimmt Face Detection lediglich das Vorhandensein eines Gesichts und seiner Grenzen — Bounding Box und Keypoints (Augen, Nase, Mund). In der mobilen Entwicklung wird Face Detection in ML Kit, ARKit, Vision Framework und OpenCV verwendet. Laut Google ML Kit, 2025 erfolgt die Gesichtserkennung auf modernen Geräten in 5–15 ms mit einer Genauigkeit von 98%.
Wichtigste Punkte
Face Detection ist eine Computer-Vision-Aufgabe zur Erkennung des Vorhandenseins und der Position menschlicher Gesichter in einem Bild. Der Algorithmus gibt eine Bounding Box (Rechteck um das Gesicht) und einen Confidence Score (Wahrscheinlichkeit, dass es sich um ein Gesicht handelt) zurück. Moderne Algorithmen liefern auch Facial Landmarks — Schlüsselpunkte (Augen, Augenbrauen, Nase, Mund, Gesichtskontur). Face Detection ist der erste Schritt für viele ML-Aufgaben: Personenerkennung, AR-Filter, Aufmerksamkeitsanalyse.
Geschichte der Algorithmen begann mit Viola-Jones (2001) — einer Kaskade von Haar-ähnlichen Merkmalen auf der CPU. In den 2010er Jahren dominierten HOG + SVM (Histogram of Oriented Gradients). Seit 2016 basieren alle modernen Algorithmen auf Convolutional Neural Networks (CNN): MTCNN, RetinaFace, SSH, MobileNet-SSD, YOLO-Face. CNN-Algorithmen auf der GPU bieten eine Genauigkeit von 95–99% im Vergleich zu 85–90% bei klassischen Methoden. Laut dem WiderFace-Benchmark (2025) erreicht RetinaFace 96,3% mAP auf dem schwierigsten Subset.
MTCNN (Multi-Task Cascaded CNN) ist ein klassischer dreistufiger Detektor: P-Net (Proposal Network) findet Kandidaten, R-Net (Refine Network) filtert sie, O-Net (Output Network) verfeinert die Bounding Box und gibt Landmarks aus. MTCNN läuft auf der CPU mit 30–50 ms pro Frame bei 640x480 Auflösung. Für mobile Geräte bietet MTCNN eine optimale Balance zwischen Geschwindigkeit und Genauigkeit ohne GPU.
| Algorithmus | Genauigkeit (WiderFace) | Geschwindigkeit (640x480) | Plattform |
|---|---|---|---|
| RetinaFace | 96,3% | 15 ms (GPU) | Android, iOS |
| MTCNN | 91,2% | 30–50 ms (CPU) | Plattformübergreifend |
| ML Kit | 98,0% | 5–15 ms (GPU/NPU) | Android, iOS |
| OpenCV Haar | 82,5% | 5–10 ms (CPU) | Plattformübergreifend |
Echtzeit-Face-Detection erfordert 30+ FPS für Video. Dies ist auf modernen Smartphones dank NPU (Neural Processing Unit) — Qualcomm Hexagon, Apple Neural Engine, MediaTek APU — erreichbar. Die NPU führt die Erkennung in 2–5 ms mit einer Leistungsaufnahme von 50–100 mW durch, während die GPU 500–2000 mW verbraucht. Für die Dauererkennung (Kamera immer aktiv) ist die NPU die einzige praktische Option ohne Überhitzung des Geräts.
ML Kit Face Detection ist das beliebteste SDK zur Gesichtserkennung auf mobilen Geräten. ML Kit bietet zwei Modi: Konturmodus (468 Gesichtskonturpunkte für präzise Maskenüberlagerungen) und Klassifikationsmodus (Emotionserkennung: Lächeln, offene Augen, offener Mund). Die Modi werden in FaceDetectorOptions kombiniert. ML Kit verwendet das neuronale Netzwerk MobileNetV2-SSD von Google mit Optimierung über NNAPI/GPU Delegate.
ML Kit Face Detection Konfiguration: setPerformanceMode(FACE_DETECTION_FAST / ACCURATE), setLandmarkMode (Schlüsselpunkte), setContourMode (Konturpunkte), setClassificationMode (Emotionen). Für maximale Geschwindigkeit verwenden Sie FAST + LANDMARKS_ONLY + ohne Kontur. Für AR-Filter — ACCURATE + ALL_CONTOURS. Laut Google (2025) liefert der FAST-Modus 98% Genauigkeit bei 5 ms, ACCURATE — 99% bei 15 ms.
// ML Kit Face Detection with contours
val options = FaceDetectorOptions.Builder()
.setContourMode(FaceDetectorOptions.ContourMode.ALL)
.setClassificationMode(FaceDetectorOptions.ClassificationMode.ALL)
.setPerformanceMode(FaceDetectorOptions.PerformanceMode.FAST)
.enableTracking()
.build()
val detector = FaceDetection.getClient(options)
detector.process(inputImage)
.addOnSuccessListener { faces ->
faces.forEach { face ->
val trackingId = face.trackingId
val smile = face.smilingProbability
val leftEyeOpen = face.leftEyeOpenProbability
}
}
Face Tracking in ML Kit — eine einzigartige Funktion für Videostreams. Jedes erkannte Gesicht erhält eine Tracking-ID (Ganzzahl), die über Frames hinweg erhalten bleibt. Dadurch können AR-Objekte ohne erneute Erkennung an ein bestimmtes Gesicht gebunden werden. Der Tracker verwendet Optical Flow und behält die ID auch bei teilweiser Gesichtsverdeckung bei. Die Tracking-ID wird zurückgesetzt, wenn das Gesicht länger als 1 Sekunde aus dem Frame verschwindet.
Apple Vision Framework ist ein natives iOS-Framework für Face Detection, das über Core ML auf Apple Neural Engine arbeitet. Vision bietet VNDetectFaceRectanglesRequest (nur Bounding Box) und VNDetectFaceLandmarksRequest (mit Konturpunkten). Vision Framework ist seit iOS 11 in iOS integriert und benötigt keine zusätzlichen SDKs — es ist Teil von Foundation.
Vorteile von Vision Framework: keine Abhängigkeit von Drittanbieter-Bibliotheken, arbeitet über Apple Neural Engine (ANE) auf A12+ Chips, automatische Bildausrichtung über exifOrientation, Unterstützung von CIDetectorAccuracy für Geschwindigkeits-/Genauigkeitsanpassung. Vision gibt VNFaceObservation mit Bounding Box (normalisierte Koordinaten 0..1) und Landmarks (VNFaceLandmarkRegion2D) zurück.
Vision vs ML Kit auf iOS: Vision ist auf älteren Geräten (A12–A15) schneller, da es native Apple Neural Engines verwendet. ML Kit verwendet Google-Modelle und kann bei komplexen Winkeln (Profil, starke Neigung) genauer sein. Für einfache Erkennung (Kamera, Fotos) — verwenden Sie Vision. Für AR-Filter und Konturmasken — verwenden Sie ML Kit (468 Punkte vs 76 Punkte bei Vision).
import Vision
let request = VNDetectFaceRectanglesRequest { request, error in
guard let observations = request.results as? [VNFaceObservation] else { return }
for face in observations {
let rect = face.boundingBox // normalized 0..1
let confidence = face.confidence
}
}
let handler = VNImageRequestHandler(
cgImage: cgImage, orientation: .up, options: [:]
)
try handler.perform([request])
VNDetectFaceLandmarksRequest ist die erweiterte Version für Schlüsselpunkte. Gibt VNFaceLandmarkRegion2D für jede Punktgruppe zurück: leftEye, rightEye, nose, faceContour, innerLips, outerLips. Jede Gruppe ist ein Array von CGPoint (normalisiert). Vision gibt nicht 468 Punkte wie ML Kit zurück — nur 76 Schlüsselpunkte. Für präzise Gesichtsmasken ist ML Kit vorzuziehen, für die grundlegende Erkennung reicht Vision aus.
OpenCV Haar Cascade ist ein klassischer Face-Detection-Algorithmus basierend auf einer Kaskade von Haar-ähnlichen Merkmalen (Viola-Jones, 2001). Trotz seines Alters wird Haar Cascade immer noch in ressourcenbeschränkten Projekten eingesetzt: Raspberry Pi, IoT-Geräte, eingebettete Systeme. Der Algorithmus benötigt weder GPU noch NPU — er läuft auf jeder CPU mit 5–15 ms pro Frame in VGA-Auflösung.
LBP Cascade (Local Binary Patterns) ist eine Alternative zu Haar Cascade in OpenCV. LBP ist schneller (2–5 ms) und weniger lichtempfindlich, produziert aber mehr False Positives. Haar ist genauer (85–90% gegenüber 80–85% bei LBP), aber empfindlich gegenüber Blendung und Schatten. Für mobile Apps ist OpenCV Face Detection in der Genauigkeit neuronalen Netzmethoden unterlegen, gewinnt aber bei der Kompatibilität — es funktioniert auf jedem Gerät.
// OpenCV Face Detection via CascadeClassifier
val cascadeFile = File(context.filesDir, "haarcascade_frontalface_default.xml")
val faceDetector = CascadeClassifier(cascadeFile.absolutePath)
val gray = Mat()
Imgproc.cvtColor(colorFrame, gray, Imgproc.COLOR_RGBA2GRAY)
val faces = MatOfRect()
faceDetector.detectMultiScale(gray, faces)
faces.toList().forEach { rect ->
// rect = face bounding box
}
OpenCV-Einschränkungen: hohe False-Positive-Rate (bis zu 15%), schlechte Leistung bei Profilwinkeln (>30° — Genauigkeit sinkt auf 50%), keine Landmarks ohne zusätzliches Modell, kein Tracking zwischen Frames. Für moderne mobile Apps dient OpenCV Face Detection als Fallback für Geräte ohne Google Play Services (Huawei, Amazon Fire). Für primäre Szenarien — verwenden Sie ML Kit oder Vision.
Face Detection — Bestimmung des Vorhandenseins und der Position eines Gesichts in einem Bild. Ergebnis: Bounding Box und Schlüsselpunkte. Face Recognition — Identifizierung einer Person anhand ihres Gesichts: Bestimmung, dass dieses Gesicht zu einer bestimmten Person gehört. Face Recognition verwendet Embeddings (einen Vektor von Zahlen, der ein Gesicht repräsentiert) und vergleicht sie mit einer Datenbank bekannter Gesichter. Face Detection ist ein obligatorischer erster Schritt für Face Recognition.
Face-Recognition-Technologien: FaceNet (Google, 2015) — Triplet Loss zum Trainieren von 128–512 Float-Wert-Embeddings, ArcFace (2019) — Additive Angular Margin Loss, beste Genauigkeit (99,83% auf LFW). Für mobile Apps benötigt Face Recognition ein benutzerdefiniertes TFLite-Modell — ML Kit bietet keine fertige API zur Personenidentifikation (nur Erkennung).
Datenschutz auf mobilen Geräten: Face Detection ist sicher — es speichert keine Benutzerdaten. Face Recognition erfordert das Speichern von Embeddings oder Fotos zum Vergleich. Apple verlangt die ausdrückliche Zustimmung des Benutzers für Face Recognition und verbietet die Verwendung für Werbung. Google ML Kit enthält bewusst kein Face Recognition, um Datenschutzrisiken zu vermeiden. Für Erkennung ohne Identifikation — gibt es keine Einschränkungen.
| Eigenschaft | Face Detection | Face Recognition |
|---|---|---|
| Ergebnis | Wo das Gesicht im Foto ist | Wem das Gesicht gehört |
| Algorithmen | MTCNN, RetinaFace, ML Kit | FaceNet, ArcFace, DeepFace |
| Speicherung | Nicht erforderlich | Embedding-Datenbank |
| Datenschutz | Niedriges Risiko | GDPR-, CCPA-Beschränkungen |
Face Liveness Detection — eine zusätzliche Überprüfung, ob das Gesicht echt ist (kein Foto/Video). Verwendet Augenbewegungsanalyse (Blink Detection), Mikroexpressionen, Tiefenkarte (3D-Kamera). Liveness Detection ist für Bank- und Zahlungsanwendungen obligatorisch. ML Kit hat keine integrierte Liveness — verwenden Sie ein benutzerdefiniertes Modell oder die Google Play Integrity API zur Überprüfung.
AR-Filter und Masken — die beliebteste Anwendung von Face Detection. Basierend auf Gesichtskonturpunkten (468 Punkte) werden 3D-Masken, Hüte, Brillen, Schnurrbärte überlagert. ML Kit Face Detection + SceneKit (iOS) oder Filament (Android) schafft ein Echtzeit-AR-Erlebnis. Snapchat und Instagram verwenden ihre eigenen Detektoren basierend auf MobileNet + MTCNN. Für benutzerdefinierte AR-Filter sind ML Kit und eine 3D-Engine ausreichend.
Fotoeditoren und Retusche — Face Detection identifiziert den Gesichtsbereich für automatische Korrekturen: Hautfarben-Angleichung, Fehlerentfernung, Verbesserung von Augen und Zähnen. OpenCV + ML Kit Face Detection liefert Koordinaten für Selective Gaussian Blur (Hautglättung) und Augenkontrast. Reale Anwendungen — Facetune, BeautyPlus, YouCam Makeup.
Aufmerksamkeitsüberwachung — Bestimmung der Blickrichtung (Gaze Detection). Face Detection gibt Bounding Box und Augen-Landmarks zurück. Die Position der Pupille relativ zum Auge bestimmt, wohin der Benutzer schaut: auf den Bildschirm, nach links, rechts, oben. Wird verwendet in E-Learning (Überwachung, ob der Student die Vorlesung ansieht), Werbung (Aufmerksamkeitsmetriken), Fahrerassistenz (Müdigkeitsüberwachung).
// ARKit + Vision for AR filter
let faceLandmarksRequest = VNDetectFaceLandmarksRequest { req, _ in
guard let face = req.results?.first as? VNFaceObservation else { return }
if let leftEye = face.landmarks?.leftEye {
// AR object overlay on left eye
}
}
let handler = VNSequenceRequestHandler()
for pixelBuffer in videoStream {
try handler.perform([faceLandmarksRequest], on: pixelBuffer)
}
Medizin und Wellness — Face Detection wird verwendet für Gesichtsasymmetrie-Analyse (Diagnose neurologischer Störungen), Pulsmessung durch Mikrovibrationen der Haut (Photoplethysmographie über Kamera), Bestimmung der Hautfeuchtigkeit. ML Kit Face Detection + OpenCV bieten ausreichende Genauigkeit für das Vorscreening ohne medizinische Zertifizierung. Für die Produktionsmedizin ist eine FDA/CE-Zertifizierung erforderlich.
Häufig gestellte Fragen
Face Detection — findet ein Gesicht in einem Bild und gibt seine Grenzen (Rechteckkoordinaten) zurück. Face Recognition — bestimmt, wem das Gesicht gehört, indem es mit einer Datenbank bekannter Gesichter verglichen wird. Die Erkennung ist der erste Schritt zur Identifikation. ML Kit und Vision Framework bieten nur Face Detection. Für die Identifikation benötigen Sie ein benutzerdefiniertes TFLite-Modell (FaceNet, ArcFace) + eine Embedding-Datenbank auf dem Gerät.
ML Kit Face Detection ist dank NNAPI/GPU Delegate das schnellste auf modernen Geräten (5–15 ms pro Frame). Apple Vision Framework ist auf iOS schneller (A12+ über ANE) — 3–10 ms. OpenCV Haar Cascade — 5–10 ms auf der CPU, aber geringere Genauigkeit (82% gegenüber 98% bei ML Kit). Auf Geräten mit NPU (Snapdragon 8 Gen 3, Apple A17 Pro) führen ML Kit und Vision die Erkennung in 2–5 ms durch.
ML Kit und Vision Framework funktionieren korrekt mit Brillen (einschließlich dunkler) und medizinischen Masken. Die Erkennungsgenauigkeit mit Maske sinkt von 98% auf 90–92%, aber das Gesicht wird weiterhin über den oberen Teil (Augen, Augenbrauen, Stirn) erkannt. Konturpunkte (Gesichtskontur) werden ungenauer — für Masken verwenden Sie nur den Klassifikationsmodus (Lächeln, offene Augen) ohne Kontur.
Ja, Echtzeit-Face-Detection wird von allen modernen SDKs unterstützt. ML Kit — bis zu 60 FPS bei 480p über CameraX Analyzer. Apple Vision — bis zu 30 FPS auf iOS über AVFoundation. Für Echtzeit verwenden Sie den FAST-Modus, reduzieren Sie die Auflösung auf 480p und aktivieren Sie Face Tracking (ML Kit), um die ID zwischen Frames zu erhalten, ohne jeden Frame neu zu erkennen.
Nein, alle modernen mobilen Face Detection SDKs arbeiten vollständig auf dem Gerät. ML Kit lädt das Modell beim ersten Start über Google Play Services herunter (wenn der Download-Modus ausgewählt ist) und arbeitet danach offline. Apple Vision Framework — in iOS integriert, benötigt kein Internet. OpenCV — vollständig offline. Für Cloud-APIs (Google Cloud Vision, AWS Rekognition) wird Internet benötigt, aber sie werden in mobilen Apps nicht für die Echtzeiterkennung verwendet.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch