Freigeben über


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:

Windows Hello und Frameserver.

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:

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

  2. Kennzeichnen der Beleuchtungsflag in der DeviceMFT-Komponente

  3. 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:

  1. 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.

  2. 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:

      1. Wenn das Gesichtsauthentifizierungsprofil unterstützt wird, validieren Sie diesen Datenstrom für den Profilmedientyp.

      2. 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

  3. 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:

      1. Wenn die Eigenschaft „illuminated“ aktiviert ist, überprüfen Sie auf Metadaten in Frames (illuminated/non-illuminated Paarframes bei 15 FPS).

      2. Wenn die Eigenschaft „ambient subtraction“ aktiviert ist, überprüfen Sie, ob keine Metadaten in Frames (ambient-Frames bei 15 FPS) vorhanden sind.

  4. Streaming beenden

  5. Deaktivieren 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, gibt Microsoft keinen signierten Treiber an den OEM aus, und Windows Hello wird nicht ausgeführt.

Aufnehmen von Fotos und Videos mit MediaCapture

Windows.Media.Capture-Namespace