# Spike G — Gesichtswiedererkennung > Im Plan heißt dieser Spike „F". Der Buchstabe war in `docs/spikes/` schon an die > Frequenzmessung vergeben; hier läuft die vorhandene Reihe weiter. **Frage.** Vision liefert öffentlich Rechtecke und Landmarken, aber sagt damit nur, *wo* ein Gesicht ist — nicht *wessen*. Für einen Vergleich braucht es einen Vektor mit Abstandsmaß. Gibt es den, oder braucht es ein eigenes CoreML-Modell? **Gemessen am 05.09.2026**, `Spikes/faceprint-probe.swift`. ## Ergebnis | Weg | Befund | |---|---| | `VNGenerateFaceprintRequest` | **existiert nicht** — auch nicht über `NSClassFromString` erreichbar | | `VNFaceprintObservation` | **existiert nicht** | | `VNGenerateImageFeaturePrintRequest` | **öffentlich und benutzbar** | Der öffentliche Merkmalsvektor hat **768 Elemente** und bringt `computeDistance` mit. An zwei synthetischen Mustern: - ähnliche Bilder: Abstand **0,134** - deutlich verschiedene: Abstand **0,473** Also Faktor 3,5 Trennschärfe. Ein eigenes CoreML-Modell ist **nicht** nötig. ## Was das für die Bauform heißt 1. `VNDetectFaceLandmarksRequest` findet das Gesicht und seine Landmarken. 2. Daraus wird ausgerichtet und zugeschnitten — ohne Ausrichtung misst man die Kopfhaltung mit, nicht die Person. 3. `VNGenerateImageFeaturePrintRequest` auf dem Ausschnitt gibt den Vektor. 4. Verglichen wird über `computeDistance` gegen die hinterlegten Vektoren. ## Die Einschränkung, die bleibt Ein **allgemeiner Bildmerkmalsvektor ist kein Gesichtsmerkmal.** Er reagiert auf Beleuchtung, Kopfhaltung und Hintergrund mit, nicht nur auf die Person. Deshalb: - mehrere Posen beim Anlernen, nicht eine, - Bestätigung über mehrere Einzelbilder, nicht eines, - eine Schwelle, die lieber ablehnt als falsch zulässt, - Sperre nach mehreren Fehlversuchen, Rückfall aufs Passwort. Und die Aussage aus dem Plan bleibt in voller Schärfe: **das ist Bequemlichkeit, keine Sicherheitsgrenze.** Ein Foto vor die Kamera zu halten genügt — Face ID hat dafür einen Tiefensensor, die Mac-Webcam hat keinen.