はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

Fujitsu Research PortalでAPIを試そう

Fujitsu Research PortalでWebアプリやAPIを試すには簡単な登録が必要です。
登録には過去記事が参考になりますので、まだ、登録がお済ではない場合は、下記の記事を先にお読みいただけると幸いです。
hatsune.hatenablog.jp

手のひら静脈認証(カメラ生体認証)AI [API]

富士通手のひら静脈認証は、ノートPCや銀行ATM、入退出ゲート認証などに使われています。

これまでの手のひら静脈認証手のひらをタッチさせるような感覚で認証できる世界最小・最薄の非接触型静脈センサーを実用化 : 富士通フロンテック

発表当時は専用のセンサーデバイスが必要でしたが、Fujitsu Research Portalで公開されている最新の技術では、ウェブカメラやスマートフォンなどの一般的なカメラで手のひら静脈認証を実現しています。
お試しWebアプリも公開されていますので、ノーコードで試すことも可能です。
hatsune.hatenablog.jp

今回はAPIでの使い方を調べていきます。

今回のAPIについて

生体認証APIを使うには、手のひらの撮影用Windowsアプリの実行が別途必要です。この撮影用アプリで撮影した画像を使って、静脈情報の登録と、登録した本人を照合する1対1認証を試行することができます。
撮影用APIは提供されていませんが、APIの使い方はシンプルです。Fujitsu Reseach Portalでのお試しAPIの使い方を学ぶのに適したAPIとなっています。

早速使ってみよう

Fujitsu Reseach Portalにログインした状態で「カメラ生体認証」に移動すると、ページの下の方に「デモアプリ」「API」というボタンがあるので、一番下までページをスクロールして「API」ボタンをクリックしましょう。

撮影用アプリの実行

撮影用アプリのダウンロード

API」ボタンを押すと次のような画面が表示されます。

「EXE」のところをクリックすると撮影用アプリのダウンロードが始まります。
1. ダウンロードの警告が表示された場合は[・・・]のところをクリックしてメニューを表示し、[保存]を選択します。


2. 次に[表示数を増やす]をクリックしてから、[保持する]を選択します。

少々面倒に感じるかもしれませんが、意図しない実行ファイルのダウンロードによるウィルス感染を防止するための手順となります。
なお、「ブラウザ」側の機能になりますので、今回使用しているMicrosoft Edge以外のブラウザを使っている場合は操作など詳細異なる場合があります。

ダウンロードしたファイルのプロパティ変更

ダウンロードしたファイルはエクスプローラーで右クリックしてメニューを表示し、[プロパティ]を選択して、ファイルの実行を[許可する]にチェックをいれておきます。

撮影用アプリでの手のひらの撮影

撮影用アプリを起動したら画面上のガイダンスに基づいて、手のひらを画面に映します。

正しい位置をキープできたら「OK」と表示されるので、右下にある[保存]ボタンで保存します。
保存したファイルは、撮影用アプリと同じフォルダに「regist」サブフォルダが自動的につくられてその中に保存されます。

APIを使ってみよう

撮影用アプリで手のひら画像が撮影できたらAPIを使って登録や認証を行ってみましょう。
EXEをダウンロードした画面には「APIを試す」と「ドキュメント」のボタンもあります。

APIを試す」をクリックすれば、Web画面からノーコードでAPIを試すことができます。

カメラ生体認証AI API を試そう(登録)

左側のメニューから「POST 静脈データを登録する」を選ぶと登録用の「TRY IT」ボタンが表示されます。

「TRY IT」ボタンをクリックするとリクエスト時のHeaderやBodyの指定画面が現れます。

「Authentication Flow」で「authrization_Code」を選択すると認証が実施され、「Authorization Header」が設定されます。
登録用に撮影した手のひら画像をファイルとして指定します。
あとは「Send」ボタンをクリックすれば登録されます。

なお、実際のAPIの呼び出し方法は、次のURLの対して、BODY部分に撮影済の手のひら画像のファイル名を指定してPOSTとなります。

https://apigateway.research.global.fujitsu.com/vlcb/research/vein

カメラ生体認証AI API を試そう(照合)

左側のメニューから「POST 静脈1:1認証をする」を選ぶと認証用の「TRY IT」ボタンが表示されます。

「TRY IT」ボタンをクリックするとリクエスト時のHeaderやBodyの指定画面が現れます。

「Authentication Flow」で「authrization_Code」を選択すると認証が実施され、「Authorization Header」が設定されます。
あとは、登録時と同じ側の手のひらを撮影した画像ファイルを指定します。
必ずしも登録時と同じ画像ファイルである必要はありません。
あとは「Send」ボタンをクリックすれば認証されます。

C#からAPIを呼び出す方法

  1. Fujitsu Research PortalのID/パスワードを使ってトークンを取得
  2. 取得したトークンを使ってAPIを呼び出す

「TRY IT」からのお試しではなく、自前のプログラムコードから呼び出すには、認証⇒実行の2Stepのコードが必要です。

C#から照合を試そう

登録APIの「TRY IT」で事前に手のひらを登録しておきます。
またトークン取得は後回しにして、「ユーザ情報」画面にある「Get Token」ボタンをクリックしてトークンを取得しておきます。

準備が整ったら、次のようなコードでAPIを呼び出して照合します。
gist.github.com
なお、実行時には事前に下記の変数に値を設定しておきます。
変数名「this.Token」には、「Get Token」で取得したトーク
変数名「this.FileName」には、手のひら画像のフルパス名

トークンを取得しよう

Fujitsu Research PortalAPIを使うためには、ポータルに登録したときのIDとパスワードを使ってトークン(JWT:JSONWeb Token)を生成してAPI呼出し時のヘッダーに指定して認証します。
カメラ生体認証AIのAPI用のJWT認証するための情報は掲載されていませんでしたが、「ユーザ情報」画面にある「Get Token」ボタンでのリクエストと同じことをコードから実行すれば取得は可能です。
gist.github.com

1. WebViewコントロールをアプリ画面に埋め込み、「Get Token」のURLを表示することで認証画面を表示します。

2. Fujitsu Research PortalのIDとパスワードで「ログイン」に成功したときに取得できるトークンを応答から切り出します。

おわりに

APIを使う場合、Fujitsu Research Portalを使うと「TRY IT」で呼び出し方法を確認してからコードを書くことができるので、API呼び出し方法も理解しやすく、実際にコードを書く時の助けにもなります。
手のひら画像を作成するところもAPI化されるといいのですが、APIの使い方の基礎を学ぶ教材としてはわかりやすいものですので、ぜひ、C#以外のコードでも試してもらえると幸いです。