Поделиться через


Руководство по работе с драйвером камеры

В этом разделе описывается включение проверки подлинности лиц для инфракрасной камеры (IR) и предназначено для изготовителей оборудования (OEM) и независимых поставщиков оборудования (IHV), которые хотят предоставить эту функцию на своих устройствах.

FrameServer

На следующей схеме показано, как проверка подлинности лиц работает с новым стеком драйверов через FrameServer:

windows hello и 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 .

Чтобы изменить пример драйвера, внесите следующие изменения в пример исходного кода:

  1. Добавление сведений о типе источника в компонент DeviceMFT

  2. Пометьте флаг освещения в компоненте DeviceMFT

  3. Преобразуйте IKSControl в компоненте DeviceMFT для взаимодействия с модулем расширения UVC, который вы создадите в следующем разделе:

Создание модуля расширения КЛАССА ВИДЕО USB (UVC)

Чтобы создать единицу расширения UVC для устройства, следуйте инструкциям в разделе "Создание элемента управления единиц расширения". В этом разделе содержатся сведения о создании необходимых файлов проекта и ссылки на пример кода в следующих разделах:

Пример интерфейса для единиц расширения UVC (содержит Interface.idl)

Пример библиотеки DLL модуля модуля расширения (содержит Xuproxy.h и Xuproxy.cpp)

Пример записи реестра для единиц расширения UVC (содержит Xusample.rgs)

Пример приложения для единиц расширения UVC (содержит TestApp.cpp)

Поддержка событий автоматического обновления с помощью единиц расширения

Пример дескриптора модуля расширения

Предоставление INF-файла UVC

Дополнительные сведения о том, как работают примеры модулей кода, см. в разделе "Подключаемый модуль модуля расширения".

Записи 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:

  1. Перечислите все камеры категорий датчиков KS:

    • Устройства, поддерживающие потоки IR, должны находиться в категории SENSOR_CAMERA.

    • Устройства, поддерживающие потоки RGB, идут под категорию VIDEO_CAMERA.

    • Только для одного устройства камеры, поддерживающего поток IR и RGB, следует зарегистрировать устройство в обоих категориях KSCAMERA: SENSOR_CAMERA и VIDEO_CAMERA.

  2. Найдите потоки, которые имеют определенный атрибут 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 пикселей:

      1. Если поддерживается профиль проверки подлинности лиц, проверьте этот поток для типа носителя профиля.

      2. Если профиль проверки подлинности лиц не поддерживается, проверьте тип носителя по умолчанию этого потока.

    • Проверьте поддержку одного из свойств в DDI проверки подлинности лиц: освещенные или не освещенные или внешние вычитания.

    • Задайте для свойства KS значение, которое поддерживается.

    • Запуск потоковой передачи

  3. Проверьте свойства времени выполнения:

    • Проверьте точность метки времени (предварительная версия теста проверки подлинности лиц с помощью метаданных).

    • Убедитесь, что запуск составляет менее 500 миллисекунда (предварительная версия теста проверки подлинности лиц с метаданными).

    • Проверьте потоковую передачу по минимальной частоте кадров со следующими параметрами: 15 FPS освещены и 15 FPS окружающей среды или 15 FPS внешний вычитанный, разрешение больше или равно 320 x 320 пикселей, тип мультимедиа L8/NV12, положительный шаг на примере:

      1. Если включено освещенное свойство, проверьте наличие метаданных на кадрах (осветленные или не освещенные парные кадры с частотой 15 FPS).

      2. Если свойство вычитания окружающей среды включено, проверьте отсутствие метаданных в кадрах (внешние кадры в 15 FPS).

  4. Остановка потоковой передачи

  5. Отмена настройки элемента управления KS

  6. Параллелизм для RGB+IR: проверяется, определен ли в профиле камеры

Если указанные выше тесты HLK не передаются, корпорация Майкрософт не будет выдавать подписанный драйвер изготовителю оборудования, и Windows Hello не будет работать.

Запись фотографий и видео с помощью MediaCapture

Пространство имен Windows.Media.Capture