Condividi tramite


Guida al driver della fotocamera

Questo argomento illustra come abilitare l'autenticazione del viso per una fotocamera a infrarossi (IR) ed è destinato ai produttori di apparecchiature originali (OEM) e ai fornitori di hardware indipendenti (IHD) che vogliono fornire questa funzionalità nei propri dispositivi.

FrameServer

Il diagramma seguente illustra il funzionamento dell'autenticazione viso con il nuovo stack di driver tramite FrameServer:

windows hello e frameserver.

DDI di autenticazione viso

In Windows 10 versione 1607 sono disponibili due nuovi costrutti DDI per l'autenticazione del viso per supportare Windows Hello:

  • KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE

    Questo ID proprietà viene usato per attivare e configurare l'autenticazione viso nel driver usando i flag seguenti:

    • KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_DISABLED

    • KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_ALTERNATIVE_FRAME_ILLUMINATION

    • KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_BACKGROUND_SUBTRACTION

    Per altre informazioni su questo controllo e su come usare i flag di bit per impostare la modalità di autenticazione del viso, vedere l'argomento KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE .

  • MF_CAPTURE_METADATA_FRAME_ILLUMINATION

    Questo attributo di metadati per le fotocamere IR specifica che i fotogrammi usano l'illuminazione attiva del runtime di integrazione. Per altre informazioni, vedere la tabella degli attributi dei metadati obbligatori nell'argomento Capture Stats Metadata Attributes .For more information, see the mandatory metadata attributes table in the Capture Stats Metadata Attributes .

Supporto della fotocamera USB

Per abilitare l'autenticazione del viso per una fotocamera a infrarossi nel dispositivo, è necessario fornire un componente DeviceMFT configurato correttamente e un'unità di estensione UVC (USB Video Class).

Configurare il componente DeviceMFT

Come punto di partenza per la creazione di un componente DeviceMFT che supporta l'autenticazione del viso nel dispositivo, è possibile usare l'esempio sampledevicemft .

Per modificare l'esempio di driver, apportare le modifiche seguenti al codice sorgente di esempio:

  1. Aggiungere informazioni sul tipo di origine nel componente DeviceMFT

  2. Contrassegna il flag di illuminazione nel componente DeviceMFT

  3. Convertire IKSControl nel componente DeviceMFT per comunicare con l'unità di estensione UVC che verrà compilata nella sezione successiva:

Creare un'unità di estensione UVC (USB Video Class)

Per creare un'unità di estensione UVC per il dispositivo, seguire le istruzioni riportate in Compilazione del controllo di esempio unità di estensione. Questo argomento contiene informazioni sulla creazione dei file di progetto necessari e fornisce collegamenti al codice di esempio negli argomenti seguenti:

Interfaccia di esempio per le unità di estensione UVC (contiene Interface.idl)

DLL del plug-in di unità di estensione di esempio (contiene Xuproxy.h e Xuproxy.cpp)

Voce del Registro di sistema di esempio per le unità di estensione UVC (contiene Xusample.rgs)

Applicazione di esempio per le unità di estensione UVC (contiene TestApp.cpp)

Supporto degli eventi di aggiornamento automatico con unità di estensione

Descrittore unità di estensione di esempio

Specifica di un file INF UVC

Per altre informazioni sul funzionamento dei moduli di codice di esempio, vedere l'argomento Architettura plug-in unità di estensione.

Voci di file INF

Per registrare un dispositivo UVC in KSCATEGORY_SENSOR_CAMERA, è necessario specificare il flag di promozione della fotocamera del sensore:

HKR,,SensorCameraMode,0x00010001,0x00000001

Per nascondere questa fotocamera da una normale app fotocamera perché non dispone di flussi RGB, usa il flag di enumerazione skip come segue:

HKR,,SkipCameraEnumeration,0x00010001,0x00000001

In questo modo la fotocamera viene rimossa da KSCATEGORY_VIDEO, che impedirà l'enumerazione tramite l'enumerazione legacy da parte delle normali app della fotocamera.

Entrambe le voci SkipCameraEnumeration e SensorCameraMode devono essere inserite nella sezione DDInstall.HW del file INF.

Test HLK per KSCATEGORY_SENSOR_CAMERA per facilitare i test dei driver

I test HLK (Hardware Logo Kit) sono necessari sia per i moduli della fotocamera IR che per i moduli della fotocamera RGB. Questo test verifica le funzionalità di base delle fotocamere RGB e IR usate per l'autenticazione del viso di Windows Hello. I requisiti della fotocamera RGB sono già specificati nel gruppo di test HLK.

Si tratta di test che i moduli della fotocamera del runtime di integrazione dovranno superare per essere abilitati:

  1. Enumerare tutte le fotocamere della categoria di sensori KS:

    • I dispositivi che supportano i flussi di runtime di integrazione devono essere inclusi nella categoria SENSOR_CAMERA.

    • I dispositivi che supportano i flussi RGB rientrano nella categoria VIDEO_CAMERA.

    • Solo per un singolo dispositivo fotocamera che supporta il flusso IR e RGB, deve registrare il dispositivo in entrambe le categorie KSCAMERA: SENSOR_CAMERA e VIDEO_CAMERA.

  2. Trovare flussi con l'attributo MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definito:

    • Se nessun flusso ha definito l'attributo MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY , ignorare il test.

    • Se più flussi hanno l'attributo MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definito, non eseguire il test, perché solo un flusso deve essere in grado di supportare Windows Hello.

    • Se MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES non è impostato su RUNTIME di integrazione per questo flusso, non eseguire il test, perché non possono essere presenti tipi di supporti RGB in questo flusso.

    • Selezionare questo flusso e verificare che il tipo di supporto sia compatibile con Windows Hello (MJPG/L8/NV12) e che la risoluzione sia maggiore o uguale a 320 x 320 pixel:

      1. Se il profilo di autenticazione viso è supportato, convalidare questo flusso per il tipo di supporto del profilo.

      2. Se il profilo di autenticazione viso non è supportato, convalidare il tipo di supporto predefinito di questo flusso.

    • Controllare il supporto per una delle proprietà nella DDI di autenticazione viso: Illuminated/un-illuminated o ambient sottrazione.

    • Impostare la proprietà KS su quella supportata.

    • Avviare lo streaming

  3. Controllare le proprietà di runtime:

    • Verificare la precisione del timestamp (test di anteprima per l'autenticazione viso con metadati).

    • Verificare che l'avvio sia inferiore a 500 millisecondi (test di anteprima per l'autenticazione viso con metadati).

    • Verificare lo streaming a una frequenza di fotogrammi minima con i parametri seguenti: 15 FPS illuminati e 15 FPS ambient sottratti, risoluzione maggiore o uguale a 320 x 320 pixel, tipo di supporto L8/NV12, stride positivo nell'esempio:

      1. Se la proprietà illuminata è abilitata, verificare la presenza di metadati sui fotogrammi (fotogrammi illuminati/non illuminati a 15 FPS).

      2. Se la proprietà di sottrazione di ambiente è abilitata, verificare che non siano presenti metadati nei fotogrammi (fotogrammi di ambiente a 15 FPS).

  4. Arrestare lo streaming

  5. Annullare l'impostazione del controllo KS

  6. Concorrenza per RGB + IR: testato se definito nel profilo della fotocamera

Se i test HLK elencati in precedenza non vengono superati, Microsoft non emetterà un driver firmato all'OEM e Windows Hello non funzionerà.

Acquisire foto e video con MediaCapture

Spazio dei nomi Windows.Media.Capture