Intel RealSenseID F455の顔認証機能を試す

# これは何？

RealSenseID F455 Peripheral
Intel謹製顔認証カメラ。**通常のRealenseではない**。
カメラ内で顔認証処理をこなして、PythonほかマルチプラットフォームでAPIを使えるらしい。
既に生産完了・終売していて、直系の後継機種もない。そもそもRealSense自体終了だった気がしなくもない。

製品ページ（とスクショ）

https://www.intelrealsense.com/facial-authentication/

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/1b1b0829-f8f9-b2db-ac46-4d86e60904f0.png" width="10%" margin-left="45%">


# 購入

見切り品で安く投げられていたので買ってみた。

https://pc.watch.impress.co.jp/docs/news/todays_sales/1396525.html

購入先のTekWindでは「プラグアンドプレイ対応顔認証用カメラ」と案内しているが、**WindowsHello顔認証は使えない**。~~騙された~~
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/9da6952a-acc9-f819-f14c-689bd840ad33.png)

なお通常のWEBカメラとしては動作するが、縦長の画面なのでとても使いにくい。顔認証には関係ないが、色はきれいに出ていると思う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/3b35770b-96aa-32ba-4c06-abdf49ccdfe8.png)

# 外観
<img width=33% src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/9715fd72-3fef-4bfa-cfde-713007fed544.png><img width=33% src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/7d977a2a-8186-aec1-1ad9-0854b6e639ce.png><img width=33% src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/049e0d3c-caeb-520a-9b79-32d1ffb379ac.png>

3枚め左からLogitech C920、RealSenseID F455 Peripheral、Logitech C270。
薄くてコンパクトだけど金属製で重い。

# SDKのダウンロード

上記公式サイトよりリンクされている[GitHub](https://github.com/IntelRealSense/RealSenseID/releases/tag/v0.25.0)からダウンロードしてインストール。

この段階で付属ツールを開いてもエラーしか出ない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/4d69fdef-a133-92b1-e6b7-8ba5947fdfe3.png)


また、[過去バージョン](https://github.com/IntelRealSense/RealSenseID/releases/tag/v0.19.0)のページから、ドライバー**Ver3.1.X.X**もDLする。

# ファームアップ

**以下Windowsでの操作例**

`C:\Program Files\Intel RealSenseID SDK\tools\rsid-fw-update.exe` というツールが存在する。これを使う。

### 3.1.X.Xへアップデート

現行最新ファーム（）へのアップデートには、私の個体の場合初期ファームから3.1.X.Xを経由する必要があった。--force-versionなしではインストールされなかった。

コマンドプロンプトで
``` Shell
rsid-fw-update.exe --file <3.1.X.Xのbinのパス> " --force-version
``` 
SKU1とSKU2の2種類のファームがあるが、SKU1しかツールが動かなかった。SKU2を指定した場合 ↓このようになる。違いが分かる方居たら教えて下さい。
![SKU2を指定した例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/b82f0a8a-3c0c-d9e5-d830-908befb29bba.png)

インストール中、一瞬USBデバイスがバグる。

### 4.3.X.X以降へアップデート

付属ツールの使用には、4.3.X.X以降のファームが必要だと言われたので同様に。
なお最新のファームはインストール時に(オプトアウトしなければ) `C:\Program Files\Intel RealSenseID SDK\firmware` に入っている。

``` Shell
rsid-fw-update.exe --file <対象バージョンののbinのパス> --force-version
``` 

`Firmware update finished successfully` が出たらOKなんじゃないかな。

# 付属ツールが動く

ここで `C:\Program Files\Intel RealSenseID SDK\tools\rsid-viewer.exe` を実行すると、カメラの映像が表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/d03b324f-8f06-b32f-f319-b89b125f349c.png)

ウィンドウ左下の `ENROLL` を押すと、顔が登録できる。その後 `DETECT SPOOF` を押すと顔認証が試せる。画面が赤外線映像になるし、Logを見ると画面内の座標とかが流れていて面白い。

```Log
Enroll "New User"
===========
OnFaceDeteced [336,648 358x560]
FaceTiltIsTooLeft
OnFaceDeteced [332,652 360x556]
FaceTiltIsTooLeft
OnFaceDeteced [308,636 380x574]
FaceTiltIsTooLeft
OnFaceDeteced [276,636 414x590]
FaceTiltIsTooLeft
OnFaceDeteced [260,646 420x586]
FaceIsNotFrontal
FaceIsNotFrontal
OnFaceDeteced [252,648 420x588]
FaceIsNotFrontal
FaceIsNotFrontal
OnFaceDeteced [242,638 418x598]
FaceIsNotFrontal
FaceIsNotFrontal
OnFaceDeteced [236,646 422x586]
FaceIsNotFrontal
FaceIsNotFrontal
OnFaceDeteced [232,640 422x588]
Success
OnFaceDeteced [232,640 422x588]
Success
OnFaceDeteced [232,640 422x588]
FaceTiltIsTooRight
OnFaceDeteced [154,634 420x570]
OnEnrollResult status: Success
Enroll success
Enroll success
Query users..
1 users

Extracting Faceprints
===========
OnFaceDeteced [332,578 536x770]
OnAuthExtractionResult status: FaceTiltIsTooLeft
FaceTiltIsTooLeft
```

もちろんフィギュアでは反応しない(登録もできなかった)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/33346a10-c689-4351-59af-9de5e58a8b0c.png)

# WindowsHelloは使えない

さて、一方、Windows Helloは対応していない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218242/d5aac85d-107c-2978-f45d-a18e462b23ec.png)

「RealSenseでWindowsHelloを使う！」的な記事はネットにごまんとあるが、本機はそもそも通常のRealSense用SDKすら使うことができないようで（SDKをインストールしても”Realsenseが接続されていない”となる）、しかもGitHubで公式が[サポートの予定がないことを断言](https://github.com/IntelRealSense/RealSenseID/issues/34)していた。

>**RealSenseSupport** commented on 6 Apr 2021
>There are no plans to officially support Windows Hello. 

~~TekWindの「プラグアンドプレイ対応顔認証用カメラ」とは一体何だったのか。~~

今回「プラグアンドプレイ対応顔認証用カメラ」という文面にかなり期待して買ったので、TekWindさんにはかなり裏切られた感じがする… まあWindowsHelloだけを期待して買うなら市販の専用[カメラ](https://www.amazon.co.jp/dp/B08TG5SBH7)や[指紋リーダー](https://www.amazon.co.jp/dp/B077SSJVDW)を買えば良いんだけど。~~ってか「プラグアンドプレイ対応顔認証用カメラ」ってなに？~~ ~~自分でアプリ作るのはP&Pとは言わないと思うけど~~

まあ今後顔認識アプリとか何かで試作することがあったら使うかもしれないが、積みハードが増えてしまった。

https://pc.watch.impress.co.jp/docs/column/ali/1378216.html