共用方式為


數位相機驅動程序啟動指南

本主題討論如何啟用紅外(IR)相機的臉部驗證,並適用於原始設備製造商(OEM)和想要在其裝置中提供此功能的獨立硬體廠商(IHV)。

FrameServer

下圖顯示臉部驗證如何透過 FrameServer 與新的驅動程式堆疊搭配運作:

視窗你好和框架器。

臉部驗證 DIS

Windows 10 1607 版中有兩個新的臉部驗證 DDI 建構可支援 Windows Hello:

  • 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 視訊類別 (UVC) 擴充單元。

設定 DeviceMFT 元件

作為在裝置上建置支援臉部驗證的 DeviceMFT 元件起點,您可以使用 sampledevicemft 範例。

若要修改驅動程式範例,請對範例原始程式碼進行下列變更:

  1. 在 DeviceMFT 元件中新增來源類型資訊

  2. 標記 DeviceMFT 元件中的照明旗標

  3. 轉換 DeviceMFT 元件中的 IKSControl,以與您在下一節中建置的 UVC 擴充單元通訊:

建置 USB 視訊類別 (UVC) 擴充單元

若要為您的裝置建置 UVC 擴充單元,請遵循建置擴充單元範例控件中的指示。 本主題包含建立必要項目檔的相關信息,並提供下列主題中範例程式代碼的連結:

UVC 擴充單元 的範例介面 (包含 Interface.idl

範例擴充單元外掛程式 DLL (包含 Xuproxy.hXuproxy.cpp

UVC 擴充單元 的範例登錄專案 (包含 Xusample.rgs

UVC 擴充單元 的範例應用程式(包含 TestApp.cpp

支援具有擴充單位的自動更新事件

範例延伸單元描述元

提供UVC INF檔案

如需 範例程式代碼模組如何搭配運作的詳細資訊,請參閱擴充單元外掛程式架構 主題。

INF 檔案專案

若要在 KSCATEGORY_SENSOR_CAMERA註冊 UVC 裝置,應指定感測器相機升級旗標:

HKR,,SensorCameraMode,0x00010001,0x00000001

若要從一般相機應用程式隱藏此相機,因為它沒有 RGB 串流,請使用 skip 列舉旗標,如下所示:

HKR,,SkipCameraEnumeration,0x00010001,0x00000001

這會從 KSCATEGORY_VIDEO移除相機,這會阻止它透過一般相機應用程式的舊版列舉來列舉。

SkipCameraEnumerationSensorCameraMode 專案都應該放在 INF 檔案的 DDInstall.HW 區段中。

適用於KSCATEGORY_SENSOR_CAMERA的 HLK 測試,以協助驅動程式測試

IR 和 RGB 相機模組都需要硬體標誌套件 (HLK) 測試。 這項測試會驗證用於 Windows Hello 臉部驗證的 RGB 和 IR 相機的基本功能。 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 功能。

    • 如果 MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES 未針對此數據流設定為 IR,則測試失敗,因為此數據流上沒有 RGB 媒體類型。

    • 選取此數據流,並驗證媒體類型為 Windows Hello 支援 (MJPG/L8/NV12),且解析度大於或等於 320 x 320 像素:

      1. 如果支援臉部驗證配置檔,請針對配置檔媒體類型驗證此數據流。

      2. 如果不支援臉部驗證配置檔,請驗證此數據流的預設媒體類型。

    • 檢查臉部驗證 DDI 中其中一個屬性的支援:照亮/未照亮或環境減法。

    • 將 KS 屬性設定為支援的屬性。

    • 開始串流

  3. 檢查執行時間屬性:

    • 驗證時間戳有效位數(使用元數據進行臉部驗證的預覽測試)。

    • 確認啟動時間小於 500 毫秒(使用元數據進行臉部驗證的預覽測試)。

    • 使用下列參數確認以最小幀速率串流:15 FPS 照亮和 15 FPS 環境減去,解析度大於或等於 320 x 320 像素,媒體類型 L8/NV12,樣本上正步:

      1. 如果已啟用照明屬性,請檢查畫面上的元數據(15 FPS 的照亮/非照亮配對畫面)。

      2. 如果已啟用環境減法屬性,請檢查畫面上沒有元數據(15 FPS 的環境畫面)。

  4. 停止串流

  5. 取消設定 KS 控制件

  6. RGB + IR 的並行:測試是否在相機配置檔中定義

如果未通過上述 HLK 測試,Microsoft將不會向 OEM 發出已簽署的驅動程式,且 Windows Hello 不會運作。

使用 MediaCapture 擷取相片和視訊

Windows.Media.Capture 命名空間