開発関連
FSEは25個のAPIを提供するソフトウェアライブラリです。アプリケーションはこのAPIを呼び出してFSEの各機能を実装します。 以下ではFSEライブラリを利用したアプリケーション開発の概要について示します。
利用イメージ
FSEの利用イメージは以下の通りです。
アプリケーションはまず1ピクセル8ビットのグレースケールの画像データをFSEに渡して顔検出と顔特徴点抽出を行います。 また事前にFSEを利用して個人識別データを顔DBに登録し、 FSEに対して参照指定することで個人識別を利用することができます。

- ※1カメラからの画像キャプチャや画像ファイルの読み込みはアプリケーションで行います。
- ※2個人識別データを登録する顔DBはアプリケーションで管理します。
処理の流れ
アプリケーションの基本的な処理の流れは以下の通り初期化/メイン処理/終了処理の3つに分けられます。
初期化
初期化ではまずFSEが利用する作業用メモリを確保します。
メモリサイズはFSEが提供するAPIを利用して計算します。
次にFSEのハンドルを作成します。
このとき、先ほど確保したメモリを渡す必要があります。
さらにFSEのハンドルにFSEの動作を決定する処理パラメータや顔検出用の辞書を設定します。
また個人識別を行う場合には個人識別登録情報を設定します。
※複数のハンドルを生成することで、複数の顔認識を並行して実行できます。
メイン処理
メイン処理は画像の準備/FSE処理の実行/処理結果の利用の3つに分けられます。処理対象の画像がある間、このメイン処理を繰り返します。
画像の準備
カメラからキャプチャしたり、画像ファイルから読み込むことで画像データを取得します。
次にその画像データをFSEに渡すことができる8ビットのグレースケール画像に変換します。
FSE処理の実行
グレースケール画像を引数にしてFSEのAPIを呼び出し、顔検出、顔特徴点抽出の処理を行います。
また個人識別を行う場合には、画像と顔検出、特徴点抽出の結果を引数に指定し、再度FSEのAPIを呼び出します。
処理結果の利用
FSEの顔検出、顔特徴点抽出の処理結果である顔の位置や顔特徴点の座標を画像データに描画して、アプリケーション画面に表示します。 また個人識別を行っている場合には特定した人物の名前などを表示します。
終了処理
終了処理はメイン処理が終了し、FSEのハンドルが不要になった場合に行います。
まずFSEのハンドルを開放し、その後に最初に確保したメモリを開放します。

画像データ形式について
FSEに渡す画像データ形式は1ピクセル8ビットのグレースケール画像です。アプリケーションは、自身が扱う画像データ形式がRGB形式あるいはYUV形式の場合、以下の画像に変換してFSEに渡します。
- RGB形式: G(グリーン)のみを取り出した8ビットの画像
- YUV形式: Yのみを取り出した8ビットの画像