3.1. Windowsクイックテスト
Last updated
Last updated
Windowsプラットフォームでは、C++言語およびJava言語のサンプルデモを提供しています。サンプルはsdk\samplesディレクトリに存在します。サンプルはC++11標準コードを使用しているため、Visual Studio 2012の使用を推奨します。現在、Windows XPはサポートしていません。
本サンプルはサンプルコードを提供し、SDK APIの呼び出し方法、基本機能のテスト方法を理解していただくためにのみご利用ください。サンプルコードは変更したり、実際の開発工程でプログラムを書き換えたりすることができます。
1. OpenCVライブラリのインストールまたはコンパイル
SDK本体はOpenCVライブラリに依存しておらず、サンプルデモでのみ使用されています。サンプルの実行はopencv3.2ライブラリに依存します。
opencvの公式Webサイトから、Windowsプラットフォーム用のopencv3.2.0をダウンロードします。
ダウンロード後にファイルを開き、ディレクトリを選択してインストールします。選択したディレクトリ内へ、OpenCVフォルダを解凍します。
次のように、システム環境変数にOpenCVライブラリディレクトリを追加します。
1) [マイコンピューター]を右クリックし、[プロパティ]をクリックします。
2) システムの詳細設定を選択します。
3) [詳細] > [環境変数]を選択してください。
4) 環境変数のPathを追加します。
opencv 3.2.0のexeインストールパッケージは,64bitライブラリのみが提供されています。32bitテストプログラムを実行する場合は、OpenCVのソースコードを使用して32bit OpenCVライブラリをコンパイルする必要があります。このとき、64bit OpenCVライブラリもソースコードと合わせてコンパイルすることを推奨します。
SDKパッケージはVisual Studioテストプロジェクトを提供しています。C++11標準コードが使用しているため、Visual Studioバージョン2012、またはそれ以降のバージョンを推奨します。 以下はsample_face_detect_1vs1を例としたテストプロジェクトの設定手順です。
Visual Studioバージョン2012、またはそれ以降のバージョンで、[ツールバー] > [ファイル] > [開く] > [プロジェクト/ソリューション] を選択します。
次に、入手済みのSDKファイルが配置されたフォルダの中にある、下記プロジェクトファイルをクリックしてプロジェクトを開きます。
sdk\samples\c++\sample_face_detect_1vs1\sample_face_detect_1vs1.vcxproj
インクルードディレクトリおよびライブラリディレクトリを順に変更します。 操作方法:[ソリューションエクスプローラー] > [プロジェクトの選択]の順にクリックします。[プロパティ]を右クリックし、[VC++ディレクトリ] > [インクルードディレクトリ]、または[ライブラリディレクトリ]を選択します。
[インクルードディレクトリ]または[ライブラリディレクトリ]を選択し、ドロップダウンメニューから[編集]を選択します。
手順1:SDKヘッダファイルディレクトリを追加します(相対パスも利用可能です)。 例:../ and../../../ include
手順2:OpenCVヘッダファイルディレクトリを追加します。例では、E:\opencv\build\include、E:\opencv\build\include\opencv および E:\opencv\build\include\opencv2です。
手順3:SDKライブラリファイルディレクトリを追加します(相対パスも利用可能です)。例ではsdk\libs\windows-x86_64(32bitシステムでは、windows-x86を選択)です。
手順4:OpenCV SDKライブラリファイルディレクトリを追加します。例では、E:\opencv\build\x64\vc14\libです。
操作方法:[ソリューションエクスプローラー] > [プロジェクトの選択]の順にクリックします。[プロパティ]を右クリックし、[リンカー] > [入力] > [追加の依存ファイル]を選択します。
SDKライブラリファイル:
SDKライブラリファイル stidface_professional.lib を追加します。
OpenCV ライブラリファイル
OpenCVライブラリファイル:コンパイルしたOpenCVライブラリを使用している場合は、リリースバージョンに以下の内容を追加してください。
デバッグバージョンに、以下の内容を追加します。
libと同じファイル名で、OpenCVに対応するdllライブラリをexe 実行時のexeディレクトリまたはシステムディレクトリに配置してください。
exeから解凍したOpenCVライブラリを直接使用する場合、デバッグバージョンとリリースバージョンに、以下の内容を追加します。
exeを実行する場合、opencv_world320.dllはexeディレクトリまたはシステムディレクトリに配置します。
前述の設定が完了した後、プロジェクトをコンパイルすることができます。exeを実行する際、SDKライブラリファイルfstidface_professional.dllをexeファイルと同じディレクトリに配置する必要があります。
このサンプルでは、サンプル設定ファイル(ファイル拡張子はiniに該当)中で設定されたパスであるlicense_filepathの下に、ライセンスファイル(ファイル拡張子はlicに該当)を保存する必要があります。サンプル実行中、SDKのライセンス認証APIは上記パス下にあるライセンスファイル(ファイル拡張子はlicに該当)をロードします。なお、他のAPIを呼び出す前に、ライセンス認証APIでライセンス認証する必要があります。
サンプルの実行中にライセンスファイルを変更した場合、senseid_facepro_snフォルダ(設定ファイルのactivation_code_dirフォルダのパスに対応しており、カスタマイズすることが可能)、およびアクティベーションコードファイルを削除する必要があります。licファイルはアクティベーションコードファイルに対応しています。
ライセンス認証APIの定義については、「ライセンス認証 API」をご参照ください。オンラインサンプルでは、アクティベーション版ライセンスの一般的な呼び出しプロセスを示します。
stid_face_professional_online_activate_license APIは、JCVから提供されたライセンスファイルの内容をロードします。
stid_face_professional_online_activate_license APIは、ネットワーク化してライセンスをアクティベートします。
stid_face_professional_online_activate_license は、アクティベートされた新しいライセンスファイルの内容を出力します。
stid_face_professional_load_license_contentは、出力された新しいライセンスファイルをロードします。
stid_face_professional_load_license_content は、STID_OKを返し、承認認証が成功します。
stid_license_release_content は、アクティベートされたライセンスの内容を解放し、プロセスを終了します。
実行パラメーターについては、サンプルのパート3「サンプルの機能紹介とパラメーターの説明」をご参照ください。
公式WebサイトからWindows用のopencv3.2.0をダウンロードします。
ダウンロード後にファイルを開き、ディレクトリを選択してインストールします。選択したディレクトリ内のOpenCVフォルダを解凍します。
32-bit システムの場合は、E:\opencv\build\java\x86\opencv_java320.dll をC:\windows\system32へコピーします。 64-bit システムの場合は、E:\opencv\build\java\x86\opencv_java320.dll をC:\windows\syswow64へコピーし、同時にE:\opencv\build\java\x64\opencv_java320.dll をC:\windows\system32 へコピーします。
SDKパッケージはeclipseテストプロジェクトを提供します。 以下は、Detect_OneVSOneを例としたテストプロジェクトの設定手順です。
eclipseを開き、[Toolbar] > [File] > [Import] を選択します。[Genreal] > [Existing Projects in Workspace]を選択し、[Next] ボタンをクリックします。[Select root directory] > [Browse..]から、SDK内のJavaサンプルの場所のパス、sdk \samples\java\java_samples\Detect_OneVSOneを選択し、[Confirm]をクリックします。
(1) JREシステムライブラリの設定
デモプロジェクト名を右クリックし、[Properties] > [Java Build Path] > [Libraries]をクリックします。全ての項目を選択し、[Remove]を右クリックします。[Add Library]を右クリックし、表示されたダイアログボックスで、[JRE System Library]を選択して、下部の[Next]をクリックします。次に[Workspace default JRE]を選択し、[Finish]をクリックします。
(2) テストプロジェクトに必要な jarパッケージを追加
Javaサンプルのテストには、JSON fileを解析するjarパッケージ gson-2.3.1.jar をダウンロードする必要があります。
デモプロジェクト名を右クリックし、[Properties] > [Java Build Path] > [Libraries] > [Add External JARs...] をクリックします。その後、OpenCVインストールディレクトリ内のjarパッケージ opencv\build\java\opencv-320.jarを選択します。
SDKディレクトリ内のSDK jarパッケージsdk\samples\java\StidFaceProfessional.jar およびJSONファイルを解析するjarパッケージgson-2.3.1.jarを選択します。
下部の [Apply and Close]をクリックします。
(3) SDKライブラリをシステムディレクトリへコピー
サンプルを実行するには、下記のとおりにdllファイルをWindowsシステムディレクトリにコピーします。
ⅰ).32bitシステムの場合
sdk\libs\windows-x86\stidface_professional.dllおよびsdk\samples\java\jni_libs\x86\jni_facepro.dllをC:\Windows\system32 へコピーします。
ⅱ).64bitシステムの場合
sdk\libs\windows-x86_64\stidface_professional.dllおよびsdk\samples\java\jni_libs\x86_64\jni_facepro.dllをC:\Windows\system32へ、さらにsdk\libs\windows-x86\stidface_professional.dllおよびsdk\samples\java\jni_libs\x86\jni_facepro.dllをC:\Windows\system64へ、それぞれコピーする必要があります。
(4) 上記の設定の完了後、プロジェクトをコンパイルして使用することができます。
(5) 実行パラメーターについては、サンプルのパート3「サンプルの機能紹介とパラメーターの説明」をご参照ください。
このサンプルでは、サンプル設定ファイル(ファイル拡張子はiniに該当)中で設定されたパスであるlicense_filepathの下にライセンスファイル(ファイル拡張子はlicに該当)を保存する必要があります。サンプルの実行中に、SDKのライセンス認証APIは上記パス下にあるライセンスファイル(ファイル拡張子はlicに該当)をロードします。なお、他のAPIを呼び出す前に、ライセンス認証APIでライセンス認証する必要があります。
サンプルの実行中にライセンスファイルを変更した場合、senseid_facepro_snフォルダ(設定ファイルのactivation_code_dirフォルダのパスに対応しており、カスタマイズ可能)、およびアクティベーションコードファイルを削除する必要があります。licファイルはアクティベーションコードファイルに対応しています。
ライセンス認証APIの定義については、「ライセンス認証 API について」をご参照ください。オンラインサンプルでは、アクティベーション版ライセンスの一般的な呼び出しプロセスを示します。
stid_face_professional_online_activate_license APIは、JCVから提供されたライセンスファイルの内容をロードします。
stid_face_professional_online_activate_license APIは、ネットワーク化してライセンスをアクティベートします。
stid_face_professional_online_activate_license は、アクティベートされた新しいライセンスファイルの内容を出力します。
stid_face_professional_load_license_content 出力された新しいライセンスファイルをロードします。
stid_face_professional_load_license_content は STID_OKを返し、承認認証が成功します。
stid_license_release_contentは、アクティベートされたライセンスの内容を解放し、プロセスを終了します。
1:パラメーターはコマンドラインパラメーターと設定ファイル内のパラメーターの2種類に分けられています。コマンドラインパラメーターはサンプル固有の機能に必要なパラメーターを提供しています。設定ファイル内のパラメーターは各サンプルの基本設定(ライセンスファイルパスとモデルファイルパスなど)を提供します。
2:サンプルの実行中にライセンスファイルを変更した場合、senseid_facepro_snフォルダおよびアクティベーションコードファイルを削除する必要があります。
設定命令セット、顔検知、顔特徴の抽出、顔の比較機能の検証。
i). コマンドライン
[ini file path] [image A path] [image B path] ([image face orienttation])
-ini file path: 設定ファイルのパスとファイル名
-image A path: 画像Aのパスとファイル名
-image B path: 画像Bのパスとファイル名
-image face orientation:(オプション)画像中の顔の向きを指定するパラメーターです(2枚の写真はデフォルトで同じ向き)。 0:上向き、1:左向き、2:右向き、3:下向き このパラメーターがない場合、デフォルトで上向きとします。
ii). 設定ファイル
license_filepath:ライセンスファイル
activation_code_dir:アクティベーションコードファイルの保存されたディレクトリ名
alignment_model_filepath:顔検知モデルのパス
Verify_model_filepath:顔特徴抽出モデルのパス
compare_model_filepath:顔特徴比較モデルのパス
detector_config:顔検知モード設定。大顔認識モード、小顔認識モード、大小混合認識モード
alignment_count:(オプション)顔面の特徴点の繰り返す回数。回数を増やすことで特徴点の精度を上げることができますが、効率が下がります。 数値範囲:0x1〜0xff。
compare_threshold:顔比較のしきい値です。顔一致度のスコアが設定されたしきい値より高い場合、同じ人物として認定されます。 しきい値範囲:0~1。
入力:2枚の写真および写真の中の顔の向き
出力:顔一致度スコア。2つの顔が同じ人物であるかどうかを判断します。
顔比較及び顔特徴抽出機能を検証。他の顔認証サンプルが使用できるよう、特定のフォルダ内にあるすべての写真をjsonファイルに保存し、顔ライブラリを提供します
新しいサンプルを実行する際には、「3. Javaサンプルテストの設定」の「a) テストプロジェクトのインポート」を再度実行する必要があります。
i). コマンドライン
[ini file path] [search image dir] [output feature file name] ([image face orientation])
-ini file path:設定ファイルのパスとファイル名
-search image dir:抽出元となる画像が保存されたフォルダ名
-output feature file name:画像特徴が保存されたJSONファイル名
-image face orientation(オプション)画像中の顔の向きを指定するパラメーターです(2枚の写真はデフォルトで同じ向き)。 0:上向き、1 :左向き、2:右向き、3:下向き このパラメーターがない場合、デフォルトで上向きとします。
ii). 設定ファイル
license_filepath:ライセンスファイル
activation_code_dir:アクティベーションコードファイルの保存されたディレクトリ名
alignment_model_filepath:顔検知モデルのパス
Verify_model_filepath:顔特徴抽出モデルのパス
detector_config:顔検知モード設定。大顔認識モード、小顔認識モード、大小混合認識モード
alignment_count:(オプション)顔面の特徴点の繰り返す回数。回数を増やすことで特徴点の精度を上げることができますが、効率が下がります。 数値範囲:0x1〜0xff。
Input:画像の保存されたフォルダ名
Output:画像特徴の保存されたJSON形式のファイル
(対応するjavaサンプル名は、SinglelivenessOneVSNとなります)
モノキュラカメラによる顔トラッキング、フレーム選択、モノキュラカメラによる顔検知、顔特徴の1:N検索機能、モノキュラカメラによる生体顔検知、顔特徴データベース比較、および顔認証機能のシミュレーションの検証。
i). コマンドライン
[ini file path] [feature file name]
-ini file path:設定ファイルのパスとファイル名
-feature file name:顔特徴の保存されたJSONファイルのパスとファイル名
ii). 設定ファイル
license_filepath:ライセンスファイル
activation_code_dir:アクティベーションコードファイルの保存されたディレクトリ名
singleliveness_model_filepath:モノキュラカメラによる顔検知モデルのパス
calcpose_model_filepath:顔の角度と方向を計算するモデル
Verify_model_filepath:顔特徴抽出モデルのパス
compare_model_filepath:顔特徴比較モデルのパス
singleliveness_track_config:モノキュラカメラによる顔トラッキング設定。大顔検知モードまたは小顔検知モードのみをサポートしています。
rgb_camera_index:モノキュラカメラのインデックス値
camera_face_orientation:カメラの向き
hack_threshold:生体検知しきい値。生体スコアがこの値より大きい場合、検知された顔が非生体に属していると判断されます。 閾値範囲:0〜1。
frame_selector_threshold:顔写真品質チェックの設定(顔写真品質のパラメーター範囲、顔の角度や向きなど)。具体的な設定情報については、ヘッダファイルおよび設定ファイルtest.iniをご参照ください。
入力:画像特徴のJSONファイルを保存し、比較Nデータベースを提供します。 出力:モノキュラカメラによる検知のスコアが返され、検知された顔が生体であるかどうかを判断します。 比較スコアに応じて検知された顔と比較し、最も類似度スコアの高い複数の写真の名前を出力します。
サンプルでは次の機能モジュールを指定できます。 1. フレーム選択機能:顔写真品質チェックと顔の角度と向きの計算 2. フレーム選択機能+生体検知機能 3. フレーム選択機能+生体検知機能+1:N 検索機能
i). C++ サンプル
マクロ定義で異なる機能モジュールを開きます。フレーム選択機能: TRACK FRAMESELECTORマクロを使用します。
フレーム選択機能+生体検知機能:TRACK_FRAMESELECTORマクロと TRACK_FRAMESELECTOR_LIVENESSマクロを使用します。
フレーム選択機能+生体検知機能+1:N 検索:TRACK_FRAMESELECTORマクロ、TRACK_FRAMESELECTOR_LIVENESSマクロ、TRACK_FRAMESELECTOR_LIVENESS_1VSNマクロを使用します。
ii). Java サンプル
静的変数定義で異なる機能モジュールを開きます。 フレーム選択機能:TRACK FRAMESELECTORを1に設定します。
フレーム選択機能+生体検知機能:TRACK_FRAMESELECTORを1に、TRACK_FRAMESELECTOR_BINOCULARLIVENESSをTRACK_FRAMESELECTOR&1に設定します。
フレーム選択機能+生体検知機能+1:N検索:TRACK_FRAMESELECTORを1に、TRACK_FRAMESELECTOR_SINGLELIVENESS をTRACK_FRAMESELECTOR&1、TRACK_FRAMESELECTOR_SINGLELIVENESS_1VSNをTRACK_FRAMESELECTOR_SINGLELIVENESS&1に設定します。
ビノキュラカメラによる顔トラッキング、フレーム選択、ビノキュラカメラによる顔検知、顔特徴量抽出、顔特徴の1:N検索機能、ビノキュラカメラによる生体顔検知、顔特徴データベース比較、顔認証機能のシミュレーションの検証。
i). コマンドライン
[ini file path] [feature file name]
-ini file path:設定ファイルのパスとファイル名
-feature file name:顔特徴の保存されたJSONファイルのパスとファイル名
ii). 設定ファイル
license_filepath:ライセンスファイル
activation_code_dir:アクティベーションコードファイルの保存されたディレクトリ名
calcpose_model_filepath:顔の角度と方向を計算するモデル
calcpose_model_filepath: 顔の角度と方向を計算するモデル
Verify_model_filepath:顔特徴抽出モデルのパス
compare_model_filepath: 顔特徴比較モデルのパス
binocularliveness_track_config:ビノキュラトラッキング設定。大顔検知モードおよび小顔検知モードのみをサポートしています。
Rgb_camera_index:RGBカメラのインデックス値
Infrared_camera_index:IRカメラのインデックス値
camera_face_orientation:カメラの向き
hack_threshold:生体検知しきい値。生体スコアがこの値より大きい場合、検知された顔が非生体に属していると判断されます。しきい値範囲:0〜1。
frame_selector_threshold:顔写真品質チェックの設定(顔写真品質のパラメーター範囲、顔の角度や向きなど)。具体的な設定情報については、ヘッダファイルおよび設定ファイルtest.iniをご参照ください。
入力:画像特徴のJSONファイルを保存し、比較Nデータベースを提供します。 出力:ビノキュラカメラによる検知のスコアが返され、検知された顔が生体であるかどうかを判断します。比較スコアに応じて検知された顔と比較し、最も類似度スコアの高い複数の写真の名前を出力します。
サンプルでは次の機能モジュールを指定できます。 1. フレーム選択機能:顔写真品質チェックと顔の角度と向きの計算 2. フレーム選択機能+ 生体検知機能 3. フレーム選択機能+生体検知機能+1:N検索機能。
i). C++ サンプル
マクロ定義で異なる機能モジュールを開きます。フレーム選択機能: TRACK FRAMESELECTORマクロを使用します。
フレーム選択機能+生体検知機能:TRACK_FRAMESELECTORマクロとTRACK_FRAMESELECTOR_LIVENESSマクロを使用します。
フレーム選択機能+生体検知機能+1:N検索:TRACK_FRAMESELECTORマクロ、TRACK_FRAMESELECTOR_LIVENESSマクロ、TRACK_FRAMESELECTOR_LIVENESS_1VSNマクロを使用します。
ii). Javaサンプル
静的変数定義で異なる機能モジュールを開きます。 フレーム選択機能:TRACK FRAMESELECTORを1に設定します。
フレーム選択機能+生体検知機能:TRACK_FRAMESELECTORを1に、TRACK_FRAMESELECTOR_BINOCULARLIVENESSをTRACK_FRAMESELECTOR&1に設定します。
フレーム選択機能+生体検知機能+1:N 検索:TRACK_FRAMESELECTORを1に、TRACK_FRAMESELECTOR_BINOCULARLIVENESSをTRACK_FRAMESELECTOR&1、TRACK_FRAMESELECTOR_BINOCULARLIVENESS_1VSNをTRACK_FRAMESELECTOR_BINOCULARLIVENESS&1に設定します。
注意:Notepad++ソフトウェアを使用してini設定ファイルを変更し、utf-8エンコーディング形式で保存することを推奨します。
デモプロジェクト名を右クリックし、[Properties] > [Java Build Path] > [Libraries] をクリックした際に、「モジュールパス」と「クラスパス」が表示される場合には、「クラスパス」配下へ上記3つのJarパッケージを[Add External JARs...] にて追加してください。