Freigeben über


Kameratreiber-Anleitung

In diesem Thema wird erläutert, wie Sie die Gesichtsauthentifizierung für eine Infrarotkamera (IR) aktivieren und richtet sich an Erstgerätehersteller (OEMs) und unabhängige Hardwareanbieter (IHVs), die diese Funktionalität in ihren Geräten bereitstellen möchten.

FrameServer

Das folgende Diagramm zeigt, wie die Gesichtsauthentifizierung mit dem neuen Treiberstapel über FrameServer funktioniert:

windows hello und frameserver.

Gesichtsauthentifizierungs-DDIs

In Windows 10 Version 1607 sind zwei neue DDI-Konstrukte zur Gesichtsauthentifizierung verfügbar, um Windows Hello zu unterstützen:

  • 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 eine aktive IR-Beleuchtung verwenden. Weitere Informationen finden Sie in der Tabelle mit obligatorischen Metadatenattributen im Thema Metadatenattribute erfassen von Statistiken.

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 Video Class (UVC)-Erweiterungseinheit bereitstellen.

Konfigurieren der DeviceMFT-Komponente

Als Ausgangspunkt für das Erstellen einer DeviceMFT-Komponente, die die Gesichtsauthentifizierung auf Ihrem Gerät unterstützt, können Sie das beispieldevicemft-Beispiel verwenden.

Um das Treiberbeispiel zu ändern, nehmen Sie die folgenden Änderungen am Beispielquellcode vor:

  1. Hinzufügen von Quelltypinformationen in der DeviceMFT-Komponente

  2. Markieren Sie das Beleuchtungsflag in der DeviceMFT-Komponente

  3. Konvertieren Sie das IKSControl in der DeviceMFT-Komponente, um mit der UVC-Erweiterungseinheit zu kommunizieren, die Sie im nächsten Abschnitt erstellen:

Erstellen einer UVC-Erweiterungseinheit (USB Video Class)

Um eine UVC-Erweiterungseinheit für Ihr Gerät zu erstellen, befolgen Sie die Anweisungen unter Erstellen des Beispielsteuerelements der Erweiterungseinheit. Dieses Thema enthält Informationen zum Erstellen der erforderlichen Projektdateien und Links zu Beispielcode in den folgenden Themen:

Beispielschnittstelle für UVC-Erweiterungseinheiten (enthält Interface.idl)

Beispiel-Erweiterungseinheit-Plug-In-DLL (enthält Xuproxy.h und Xuproxy.cpp)

Beispielregistrierungseintrag für UVC-Erweiterungseinheiten (enthält Xusample.rgs)

Beispielanwendung für UVC-Erweiterungseinheiten (enthält TestApp.cpp)

Unterstützung von Autoupdateereignissen mit Erweiterungseinheiten

Beispieldeskriptor für Erweiterungseinheiten

Bereitstellen einer UVC-INF-Datei

Weitere Informationen zur Zusammenarbeit der Beispielcodemodule finden Sie im Thema Erweiterungseinheit Plug-In Architektur .

INF-Dateieinträge

Um ein UVC-Gerät unter KSCATEGORY_SENSOR_CAMERA zu registrieren, sollte das Promotionflag der Sensorkamera angegeben werden:

HKR,,SensorCameraMode,0x00010001,0x00000001

Um diese Kamera vor einer regulären Kamera-App auszublenden, da sie keine RGB-Streams aufweist, verwenden Sie das Flag skip enumeration wie folgt:

HKR,,SkipCameraEnumeration,0x00010001,0x00000001

Dadurch wird die Kamera aus KSCATEGORY_VIDEO entfernt, wodurch verhindert wird, dass sie über die Legacyaufzählung durch reguläre 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 der Fahrertests

Hardware Logo Kit (HLK)-Tests sind sowohl für IR- als auch für RGB-Kameramodule erforderlich. Dieser Test überprüft die grundlegende Funktionalität von RGB- und IR-Kameras, die für 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:

  1. Listet alle KS-Sensorkategoriekameras auf:

    • Geräte, die IR-Datenströme unterstützen, müssen sich unter der Kategorie SENSOR_CAMERA befinden.

    • Geräte, die RGB-Streams unterstützen, fallen unter die Kategorie VIDEO_CAMERA.

    • Nur für ein einzelnes Kameragerät, das IR- und RGB-Stream unterstützt, sollte das Gerät unter den beiden KSCAMERA-Kategorien registriert werden: SENSOR_CAMERA und VIDEO_CAMERA.

  2. Suchen Sie nach Streams, für die das attribut MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definiert ist:

    • Wenn für keinen Stream das attribut MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definiert ist, überspringen Sie den Test.

    • Wenn für mehrere Streams das Attribut MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definiert ist, schlagen Sie den Test fehl, da nur ein Stream Windows Hello können sollte.

    • Wenn MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES für diesen Stream nicht auf IR festgelegt ist, schlagen Sie den Test fehl, da es in diesem Stream keine RGB-Medientypen geben kann.

    • Wählen Sie diesen Stream aus, und überprüfen Sie, ob der Medientyp Windows Hello-fähig (MJPG/L8/NV12) ist und dass die Auflösung größer oder gleich 320 x 320 Pixel ist:

      1. Wenn das Gesichtsauthentifizierungsprofil unterstützt wird, überprüfen Sie diesen Stream für den Profilmedientyp.

      2. Wenn das Gesichtsauthentifizierungsprofil nicht unterstützt wird, überprüfen Sie den Standardmedientyp dieses Datenstroms.

    • Überprüfen Sie die Unterstützung für eine der Eigenschaften im DDI der Gesichtsauthentifizierung: Beleuchtet/nicht beleuchtet oder Umgebungssubtraktion.

    • Legen Sie die KS-Eigenschaft auf die eigenschaft fest, die unterstützt wird.

    • Streaming starten

  3. Laufzeiteigenschaften überprüfen:

    • Überprüfen Sie die Zeitstempelgenauigkeit (Vorschautest für die Gesichtsauthentifizierung mit Metadaten).

    • Stellen Sie sicher, dass der Start weniger als 500 Millisekunden beträgt (Vorschautest für die Gesichtsauthentifizierung mit Metadaten).

    • Überprüfen Sie das Streaming mit einer minimalen Bildfrequenz mit den folgenden Parametern: 15 FPS beleuchtet und 15 FPS ambient subtrahiert oder 15 FPS ambient subtrahiert, Auflösung größer oder gleich 320 Pixel, Medientyp L8/NV12, positiver Schritt im Beispiel:

      1. Wenn die beleuchtete Eigenschaft aktiviert ist, suchen Sie nach Metadaten für Frames (beleuchtete/nicht beleuchtete Paarrahmen mit 15 FPS).

      2. Wenn die Ambient-Subtraktion-Eigenschaft aktiviert ist, überprüfen Sie, ob keine Metadaten für Frames (Umgebungsframes mit 15 FPS) vorhanden sind.

  4. Streaming beenden

  5. Aufheben des Festlegens des KS-Steuerelements

  6. Parallelität für RGB + IR: getestet, wenn im Kameraprofil definiert

Wenn die oben aufgeführten HLK-Tests nicht bestanden werden, stellt Microsoft keinen signierten Treiber für den OEM aus, und Windows Hello wird nicht ausgeführt.

Aufnehmen von Fotos und Videos mit MediaCapture

Windows.Media.Capture-Namespace