Compartilhar via


Guia de abertura do driver da câmera

Este tópico aborda como habilitar a autenticação facial para uma câmera infravermelha (IR) e destina-se a OEMs (fabricantes de equipamentos originais) e IHVs (fornecedores independentes de hardware) que desejam disponibilizar essa funcionalidade em seus dispositivos.

FrameServer

O diagrama a seguir mostra como a autenticação facial funciona com a nova pilha de driver por meio do FrameServer:

windows hello e frameserver.

DDIs de autenticação facial

Há duas novas construções DDI de autenticação facial disponíveis no Windows 10, versão 1607 para oferecer suporte ao Windows Hello:

  • KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE

    Essa ID de propriedade é usada para ativar e configurar a autenticação facial no driver usando os seguintes sinalizadores:

    • KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_DISABLED

    • KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_ALTERNATIVE_FRAME_ILLUMINATION

    • KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_BACKGROUND_SUBTRACTION

    Para obter mais informações sobre esse controle e como usar os sinalizadores de bits para definir o modo de autenticação facial, consulte o tópico KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE.

  • MF_CAPTURE_METADATA_FRAME_ILLUMINATION

    Esse atributo de metadados para câmeras IV especifica que os quadros estão usando iluminação IV ativa. Para obter mais informações, consulte a tabela de atributos de metadados obrigatórios no tópico Atributos de metadados de estatísticas de captura.

Suporte à câmera USB

Para habilitar a autenticação facial para uma câmera infravermelha em seu dispositivo, você deve informar um componente DeviceMFT configurado corretamente e uma unidade de extensão UVC (classe de vídeo USB).

Configurar o componente DeviceMFT

Como ponto de partida para criar um componente DeviceMFT que possibilita a autenticação facial em seu dispositivo, você pode usar o exemplo sampledevicemft.

Para modificar o exemplo de driver, faça as seguintes alterações no código-fonte de exemplo:

  1. Adicionar informações de tipo de origem no componente DeviceMFT

  2. Marcar o sinalizador de iluminação no componente DeviceMFT

  3. Converta o IKSControl no componente DeviceMFT para estabelecer comunicação com a unidade de extensão UVC que você criará na próxima seção:

Criar uma unidade de extensão UVC (classe de vídeo USB)

Para criar uma unidade de extensão UVC para seu dispositivo, siga as instruções em Criar o controle de exemplo da unidade de extensão. Este tópico contém informações sobre como criar os arquivos de projeto necessários e contém links para o código de exemplo nos seguintes tópicos:

Interface de exemplo para unidades de extensão UVC (contém Interface.idl)

DLL de plug-in da unidade de extensão de exemplo (contém Xuproxy.h e Xuproxy.cpp)

Exemplo de entrada de registro para unidades de extensão UVC (contém Xusample.rgs)

Exemplo de aplicação para unidades de extensão UVC (contém TestApp.cpp)

Suporte a eventos de atualização automática com unidades de extensão

Descritor de unidade de extensão de exemplo

Fornecer um arquivo INF UVC

Consulte o tópico Arquitetura de plug-in da unidade de extensão para obter mais informações sobre como os módulos de código de exemplo funcionam juntos.

Entradas de arquivo INF

Para registrar um dispositivo UVC em KSCATEGORY_SENSOR_CAMERA, especifique o sinalizador de promoção da câmera do sensor:

HKR,,SensorCameraMode,0x00010001,0x00000001

Para ocultar essa câmera de um aplicativo de câmera normal porque ela não tem fluxos RGB, use a opção para ignorar o sinalizador de enumeração da seguinte maneira:

HKR,,SkipCameraEnumeration,0x00010001,0x00000001

Isso remove a câmera de KSCATEGORY_VIDEO, o que impede que ela seja enumerada por meio da enumeração herdada por aplicativos de câmera regulares.

As entradas SkipCameraEnumeration e SensorCameraMode devem ser colocadas na seção DDInstall.HW do arquivo INF.

Testes de HLK para KSCATEGORY_SENSOR_CAMERA para ajudar no teste de driver

O teste de Hardware Logo Kit (HLK) é necessário para os módulos de câmera IV e RGB. Este teste verifica a funcionalidade básica das câmeras RGB e IV usadas para autenticação facial do Windows Hello. Os requisitos de câmera RGB já estão especificados no conjunto de testes HLK.

São testes pelos quais os módulos de câmera IR precisarão passar para serem habilitados:

  1. Enumerar todas as câmeras de categoria de sensor KS:

    • Os dispositivos que suportam fluxos de IV devem estar na categoria SENSOR_CAMERA.

    • Os dispositivos que suportam fluxos RGB estão na categoria VIDEO_CAMERA.

    • Somente para um único dispositivo de câmera que permite o fluxo IV e RGB, é necessário registrar o dispositivo nas duas categorias KSCAMERA: SENSOR_CAMERA e VIDEO_CAMERA.

  2. Encontre fluxos que tenham o atributo MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definido:

    • Se nenhum fluxo tiver o atributo MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definido, ignore o teste.

    • Se vários fluxos tiverem o atributo MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY definido, provoque a falha no teste, pois apenas um fluxo deve ser compatível com o Windows Hello.

    • Se MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES não estiver definido como IV para esse fluxo, provoque a falha no teste, pois não pode haver tipos de mídia RGB nesse fluxo.

    • Selecione esse fluxo e valide se o tipo de mídia é compatível com o Windows Hello (MJPG/L8/NV12) e se a resolução é maior ou igual a 320 x 320 pixels:

      1. Se houver suporte para o Perfil de Autenticação Facial, valide esse fluxo para o tipo de mídia de perfil.

      2. Se o Perfil de Autenticação Facial não for compatível, valide o tipo de mídia padrão desse fluxo.

    • Verifique se há suporte para uma das propriedades na DDI de autenticação facial: Iluminado/não iluminado ou subtração de ambiente.

    • Defina a propriedade KS como compatível.

    • Iniciar o streaming

  3. Verifique as propriedades de tempo de execução:

    • Verifique a precisão do carimbo de data/hora (teste de visualização para Autenticação facial com metadados).

    • Verifique se a inicialização é inferior a 500 milissegundos (teste de visualização para Autenticação facial com metadados).

    • Verifique a transmissão em uma taxa de quadros mínima com os seguintes parâmetros: 15 FPS iluminado e 15 FPS ambiente ou 15 FPS ambiente subtraído, resolução maior ou igual a 320 x 320 pixels, tipo de mídia L8/NV12, stride positivo no exemplo:

      1. Se a propriedade iluminada estiver habilitada, verifique se há metadados nos quadros (quadros de pares iluminados/não iluminados a 15 FPS).

      2. Se a propriedade de subtração de ambiente estiver habilitada, verifique se não há metadados nos quadros (quadros de ambiente a 15 FPS).

  4. Parar transmissão

  5. Remover definição do controle KS

  6. Simultaneidade para RGB + IR: testado se definido no perfil da câmera

Se os testes HLK listados acima não forem aprovados, a Microsoft não emitirá um driver assinado para o OEM e Windows Hello não funcionará.

Capture fotos e vídeos com o MediaCapture

Namespace Windows.Media.Capture