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:
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:
Aggiungere informazioni sul tipo di origine nel componente DeviceMFT
Contrassegna il flag di illuminazione nel componente DeviceMFT
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
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:
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.
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:
Se il profilo di autenticazione viso è supportato, convalidare questo flusso per il tipo di supporto del profilo.
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
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:
Se la proprietà illuminata è abilitata, verificare la presenza di metadati sui fotogrammi (fotogrammi illuminati/non illuminati a 15 FPS).
Se la proprietà di sottrazione di ambiente è abilitata, verificare che non siano presenti metadati nei fotogrammi (fotogrammi di ambiente a 15 FPS).
Arrestare lo streaming
Annullare l'impostazione del controllo KS
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à.