Anleitung zum Aufrufen des Kameratreibers
In diesem Thema wird erläutert, wie Sie die Gesichtsauthentifizierung für eine Infrarotkamera (IR) aktivieren. Es ist für Original Equipment Manufacturers (OEMs) und unabhängige Hardwareanbieter (IHVs) vorgesehen, die diese Funktionalität auf ihren Geräten bereitstellen möchten.
FrameServer
Das folgende Diagramm zeigt, wie die Gesichtsauthentifizierung mit dem neuen Treiberstapel über FrameServer funktioniert:
Gesichtsauthentifizierung-DDIs
Es gibt zwei neue DDI-Konstrukte für die Gesichtsauthentifizierung, die in Windows 10, Version 1607, zur Unterstützung von Windows Hello verfügbar sind:
KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE
Diese Eigenschafts-ID wird verwendet, um die Gesichtsauthentifizierung im Treiber mithilfe der folgenden Flags zu aktivieren und zu konfigurieren:
KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_DISABLED
KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_ALTERNATIVE_FRAME_ILLUMINATION
KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_BACKGROUND_SUBTRACTION
Weitere Informationen zu diesem Steuerelement und zur Verwendung der Bitflags zum Festlegen des Gesichtsauthentifizierungsmodus finden Sie im Thema KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE.
MF_CAPTURE_METADATA_FRAME_ILLUMINATION
Dieses Metadaten-Attribut für IR-Kameras gibt an, dass Frames aktive IR-Beleuchtung verwenden. Weitere Informationen finden Sie in der Tabelle mit den obligatorischen Metadatenattributen im Thema Metadaten-Attribute der Erfassungsstatistiken.
USB-Kameraunterstützung
Um die Gesichtsauthentifizierung für eine Infrarotkamera auf Ihrem Gerät zu aktivieren, müssen Sie eine ordnungsgemäß konfigurierte DeviceMFT-Komponente und eine USB-Videoklassen-Erweiterungseinheit (UVC) bereitstellen.
Konfigurieren der DeviceMFT-Komponente
Als Ausgangspunkt für die Erstellung einer DeviceMFT-Komponente, die die Gesichtsauthentifizierung auf Ihrem Gerät unterstützt, können Sie das sampledevicemft-Beispiel verwenden.
Um das Treiberbeispiel zu ändern, nehmen Sie die folgenden Änderungen am Beispielquellcode vor:
Hinzufügen von Quelltypinformationen in der DeviceMFT-Komponente
Kennzeichnen der Beleuchtungsflag in der DeviceMFT-Komponente
Konvertieren von IKSControl in der DeviceMFT-Komponente für die Kommunikation mit der UVC-Erweiterungseinheit, die Sie im nächsten Abschnitt erstellen:
Erstellen einer USB-Videoklasse-Erweiterungseinheit (UVC)
Um eine UVC-Erweiterungseinheit für Ihr Gerät zu erstellen, befolgen Sie die Anweisungen unter Aufbau der Erweiterungseinheit-Musterkontrolle. Dieses Thema enthält Informationen zum Erstellen der erforderlichen Projektdateien und enthält Links zum Beispielcode in den folgenden Themen:
Beispielschnittstelle für UVC-Erweiterungseinheiten (enthält Interface.idl)
Beispielerweiterungseinheit Plug-in-DLL (enthält Xuproxy.h und Xuproxy.cpp)
Beispielregistrierungseintrag für UVC-Erweiterungseinheiten (enthält Xusample.rgs)
Anwendungsbeispiel für UVC-Erweiterungseinheiten (enthält TestApp.cpp)
Unterstützen von AutoUpdate-Ereignissen mit Erweiterungseinheiten
Einheitsdeskriptor für Beispielerweiterung
Bereitstellen einer UVC INF-Datei
Weitere Informationen dazu, wie die Beispielcodemodule zusammenarbeiten, finden Sie im Thema Erweiterungseinheit-Plug-in-Architektur.
INF-Dateieinträge
Um ein UVC-Gerät unter KSCATEGORY_SENSOR_CAMERA zu registrieren, sollte die Flag für die Sensorkamera-Höherstufung angegeben werden:
HKR,,SensorCameraMode,0x00010001,0x00000001
Um diese Kamera aus einer regulären Kamera-App auszublenden, da sie keine RGB-Datenströme enthält, verwenden Sie das Enumerationsflags „Überspringen“ wie folgt:
HKR,,SkipCameraEnumeration,0x00010001,0x00000001
Dadurch wird die Kamera von KSCATEGORY_VIDEO entfernt, wodurch verhindert wird, dass sie durch die Legacy-Enumeration durch normale Kamera-Apps aufgezählt wird.
Sowohl die Einträge SkipCameraEnumeration als auch SensorCameraMode sollten im Abschnitt DDInstall.HW der INF-Datei platziert werden.
HLK-Tests für KSCATEGORY_SENSOR_CAMERA zur Unterstützung von Treibertests
Tests von Hardware Logo Kit (HLK) sind für IR- und RGB-Kameramodule erforderlich. Bei diesen Tests wird die grundlegende Funktionalität von RGB- und IR-Kameras überprüft, die für die Windows Hello-Gesichtsauthentifizierung verwendet werden. Die RGB-Kameraanforderungen sind bereits in der HLK-Testsuite angegeben.
Dies sind Tests, die IR-Kameramodule bestehen müssen, um aktiviert zu werden:
Alle KS Sensor Category Camera aufzählen:
Geräte, die IR-Datenströme unterstützen, müssen sich unter der Kategorie SENSOR_CAMERA befinden.
Geräte, die RGB-Datenströme unterstützen, fallen unter die Kategorie VIDEO_CAMERA.
Nur für ein einzelnes Kameragerät, das IR- und RGB-Streams unterstützt, sollte das Gerät unter beiden KSCAMERA-Kategorien registriert werden: SENSOR_CAMERA und VIDEO_CAMERA.
Suchen Sie Datenströme, die das Attribut MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definiert haben:
Wenn kein Datenstrom das Attribut MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definiert hat, überspringen Sie den Test.
Wenn mehrere Datenströme das Attribut MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definiert haben, schlägt der Test fehl, da nur ein Datenstrom Windows Hello-fähig sein sollte.
Wenn MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES für diesen Datenstrom nicht auf IR festgelegt ist, schlägt der Test fehl, da für diesen Datenstrom keine RGB-Medientypen vorhanden sind.
Wählen Sie diesen Datenstrom aus, und validieren Sie, dass der Medientyp Windows Hello-fähig (MJPG/L8/NV12) ist und dass die Auflösung größer oder gleich 320 x 320 Pixel ist:
Wenn das Gesichtsauthentifizierungsprofil unterstützt wird, validieren Sie diesen Datenstrom für den Profilmedientyp.
Wenn das Gesichtsauthentifizierungsprofil nicht unterstützt wird, validieren Sie den Standardmedientyp dieses Datenstroms.
Überprüfen Sie die Unterstützung für eine der Eigenschaften in der Gesichtsauthentifizierungs-DDI: Illuminated/un-illuminated oder ambient subtraction.
Legen Sie die KS-Eigenschaft auf die KS-Eigenschaft fest, die unterstützt wird.
Streaming starten
Laufzeiteigenschaften überprüfen:
Überprüfen Sie die Zeitstempelgenauigkeit (Vorschautest für die Gesichtsauthentifizierung mit Metadaten).
Überprüfen Sie, ob der Start weniger als 500 Millisekunden dauert (Vorschautest für die Gesichtsauthentifizierung mit Metadaten).
Überprüfen Sie das Streaming bei minimaler Framerate mit den folgenden Parametern: 15 FPS illuminated und 15 FPS ambient oder 15 FPS ambient subtracted, Auflösung größer oder gleich 320 x 320 Pixel, Medientyp L8/NV12, positiver Verlauf im Beispiel:
Wenn die Eigenschaft „illuminated“ aktiviert ist, überprüfen Sie auf Metadaten in Frames (illuminated/non-illuminated Paarframes bei 15 FPS).
Wenn die Eigenschaft „ambient subtraction“ aktiviert ist, überprüfen Sie, ob keine Metadaten in Frames (ambient-Frames bei 15 FPS) vorhanden sind.
Streaming beenden
Deaktivieren des KS-Steuerelements
Parallelität für RGB + IR: getestet, wenn im Kameraprofil definiert
Wenn die oben aufgeführten HLK-Tests nicht bestanden werden, gibt Microsoft keinen signierten Treiber an den OEM aus, und Windows Hello wird nicht ausgeführt.