Руководство по работе с драйвером камеры
В этом разделе описывается включение проверки подлинности лиц для инфракрасной камеры (IR) и предназначено для изготовителей оборудования (OEM) и независимых поставщиков оборудования (IHV), которые хотят предоставить эту функцию на своих устройствах.
FrameServer
На следующей схеме показано, как проверка подлинности лиц работает с новым стеком драйверов через FrameServer:
DDIs проверки подлинности лиц
В Windows 10 версии 1607 для поддержки Windows Hello доступны две новые конструкции DDI для проверки подлинности лиц:
KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE
Этот идентификатор свойства используется для включения и настройки проверки подлинности лиц в драйвере с помощью следующих флагов:
KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_DISABLED
KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_ALTERNATIVE_FRAME_ILLUMINATION
KSCAMERA_EXTENDEDPROP_FACEAUTH_MODE_BACKGROUND_SUBTRACTION
Дополнительные сведения об этом элементе управления и использовании битовых флагов для настройки режима проверки подлинности лиц см . в разделе KSPROPERTY_CAMERACONTROL_EXTENDED_FACEAUTH_MODE .
MF_CAPTURE_METADATA_FRAME_ILLUMINATION
Этот атрибут метаданных для камер IR указывает, что кадры используют активное освещение IR. Дополнительные сведения см. в таблице обязательных атрибутов метаданных в разделе атрибутов метаданных отслеживания статистики.
Поддержка USB-камеры
Чтобы включить проверку подлинности лиц для инфракрасной камеры на устройстве, необходимо предоставить правильно настроенный компонент DeviceMFT и единицу расширения USB Video Class (UVC).
Настройка компонента DeviceMFT
В качестве отправной точки для создания компонента DeviceMFT, поддерживающего проверку подлинности лиц на устройстве, можно использовать пример sampledevicemft .
Чтобы изменить пример драйвера, внесите следующие изменения в пример исходного кода:
Добавление сведений о типе источника в компонент DeviceMFT
Пометьте флаг освещения в компоненте DeviceMFT
Преобразуйте IKSControl в компоненте DeviceMFT для взаимодействия с модулем расширения UVC, который вы создадите в следующем разделе:
Создание модуля расширения КЛАССА ВИДЕО USB (UVC)
Чтобы создать единицу расширения UVC для устройства, следуйте инструкциям в разделе "Создание элемента управления единиц расширения". В этом разделе содержатся сведения о создании необходимых файлов проекта и ссылки на пример кода в следующих разделах:
Пример интерфейса для единиц расширения UVC (содержит Interface.idl)
Пример библиотеки DLL модуля модуля расширения (содержит Xuproxy.h и Xuproxy.cpp)
Пример записи реестра для единиц расширения UVC (содержит Xusample.rgs)
Пример приложения для единиц расширения UVC (содержит TestApp.cpp)
Поддержка событий автоматического обновления с помощью единиц расширения
Пример дескриптора модуля расширения
Дополнительные сведения о том, как работают примеры модулей кода, см. в разделе "Подключаемый модуль модуля расширения".
Записи INF-файла
Чтобы зарегистрировать устройство UVC в KSCATEGORY_SENSOR_CAMERA, необходимо указать флаг повышения уровня камеры датчика:
HKR,,SensorCameraMode,0x00010001,0x00000001
Чтобы скрыть эту камеру от обычного приложения камеры, так как он не имеет потоков RGB, используйте флаг пропуска перечисления следующим образом:
HKR,,SkipCameraEnumeration,0x00010001,0x00000001
При этом камера удаляется из KSCATEGORY_VIDEO, которая блокирует его перечисление через устаревшее перечисление обычными приложениями камеры.
Записи SkipCameraEnumeration и SensorCameraMode должны быть помещены в раздел DDInstall.HW INF-файла.
Тесты HLK для KSCATEGORY_SENSOR_CAMERA для поддержки тестирования драйверов
Тестирование аппаратного комплекта логотипов (HLK) требуется для модулей ir и RGB камеры. Это тестирование проверяет основные функциональные возможности камер RGB и IR, используемых для проверки подлинности лиц Windows Hello. Требования к камере RGB уже указаны в наборе тестов HLK.
Это тесты, которые необходимо передать модулям камеры IR:
Перечислите все камеры категорий датчиков KS:
Устройства, поддерживающие потоки IR, должны находиться в категории SENSOR_CAMERA.
Устройства, поддерживающие потоки RGB, идут под категорию VIDEO_CAMERA.
Только для одного устройства камеры, поддерживающего поток IR и RGB, следует зарегистрировать устройство в обоих категориях KSCAMERA: SENSOR_CAMERA и VIDEO_CAMERA.
Найдите потоки, которые имеют определенный атрибут MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY :
Если поток не имеет определенного атрибута MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY , пропустите тест.
Если в нескольких потоках определен атрибут MF_DEVICESTREAM_ATTRIBUTE_FACEAUTH_CAPABILITY, сбой теста, так как только один поток должен иметь возможность Windows Hello.
Если для этого потока не задано значение IR MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES , выполните тест, так как в этом потоке не может быть типы мультимедиа RGB.
Выберите этот поток и убедитесь, что тип носителя поддерживает Windows Hello (MJPG/L8/NV12) и что разрешение больше или равно 320 x 320 пикселей:
Если поддерживается профиль проверки подлинности лиц, проверьте этот поток для типа носителя профиля.
Если профиль проверки подлинности лиц не поддерживается, проверьте тип носителя по умолчанию этого потока.
Проверьте поддержку одного из свойств в DDI проверки подлинности лиц: освещенные или не освещенные или внешние вычитания.
Задайте для свойства KS значение, которое поддерживается.
Запуск потоковой передачи
Проверьте свойства времени выполнения:
Проверьте точность метки времени (предварительная версия теста проверки подлинности лиц с помощью метаданных).
Убедитесь, что запуск составляет менее 500 миллисекунда (предварительная версия теста проверки подлинности лиц с метаданными).
Проверьте потоковую передачу по минимальной частоте кадров со следующими параметрами: 15 FPS освещены и 15 FPS окружающей среды или 15 FPS внешний вычитанный, разрешение больше или равно 320 x 320 пикселей, тип мультимедиа L8/NV12, положительный шаг на примере:
Если включено освещенное свойство, проверьте наличие метаданных на кадрах (осветленные или не освещенные парные кадры с частотой 15 FPS).
Если свойство вычитания окружающей среды включено, проверьте отсутствие метаданных в кадрах (внешние кадры в 15 FPS).
Остановка потоковой передачи
Отмена настройки элемента управления KS
Параллелизм для RGB+IR: проверяется, определен ли в профиле камеры
Если указанные выше тесты HLK не передаются, корпорация Майкрософт не будет выдавать подписанный драйвер изготовителю оборудования, и Windows Hello не будет работать.