3.2. Linuxクイックテスト

本サンプルはサンプルコードを提供し、SDK APIの呼び出し方法、基本機能のテスト方法を理解していただくためにのみご利用ください。サンプルコードは変更や実際の開発工程でプログラムを書き換えたりすることができます。

Linuxプラットフォームでは、C++言語及びJava言語のサンプルデモを提供しています。ここではUbuntuシステム、openvb3.2.0バージョンを例とした設定手順を解説しています。

SDK本体はOpenCVライブラリに依存しておらず、サンプルデモでのみ使用されています。opencv3.2ライブラリに依存します。

1. 依存パッケージのインストール

Java JDKのインストール(Javaプログラムでは必要です。C++プログラムで開発を行う場合にはインストールされません)。

1. Java SDKのダウンロード

JDKをダウンロードしてください。Linux x64を選択し、JDK 1.8をインストールすることを推奨します。

2. ターミナルで実行

sudo tar –zxvf jdk-8u65-linux-x64.gz –C /usr/lib/jvm (-C followed by unzipped directory)

3. 環境変数の設定

sudo vim /etc/profile

最後に下記の内容を追加し、保存します。

#set java environment
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

4. 設定を有効化

ターミナルでsource /etc/profileを入力します。

5. セットアップのテスト

java -versionをターミナルで入力し、バージョン情報が表示されるかを確認してください。

OpenCV ライブラリのインストールとコンパイル(C++ライブラリ、Java ライブラリおよび jar パッケージを含む)

1. 依存ファイルのインストール

次のコマンドを実行し、依存ファイルをインストールします。

sudo apt-get install build-essential pkg-config python-dev cmake ant

2. opencv3.2のダウンロード

opencv3.2のソースコードを[ダウンロード]してください。

3. opencv-3.2.0.zipを解凍して、解凍したディレクトリを入力

4. 解凍したディレクトリの中にbuildフォルダを新規作成し、フォルダの入力後、コマンドを入力

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TESTS=OFF -DWITH_FFMPEG=OFF ..

cmakeが有効になっているかを確認します。その後、コンパイルした内容にjavaが含まれているか確認します。

コンパイルした内容にjavaが含まれていない場合、環境変数を設定して前述のコマンドを再実行します。

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65

5. コンパイル

次のコマンドを順に実行します。

make -j4
sudo make install

6. コンパイルしたライブラリをコピー

インストールとコンパイルが成功すると、build/binディレクトリにopencv-320.jarファイルが表示されます。opencv/build/lib/libopencv_java320.soを、/usr/libへコピーします。

sdk/libs/linux-x86_64に含まれるすべてのファイル、およびsdk/samples/java/jni_libs/x86_64にあるlibjni_facepro.soを/usr/libにコピーします。

2. C++サンプルテストの設定

1. サンプルが存在するディレクトリを開く

sdk\samples\c++

2. makeコマンドを実行

3. SDKライセンスの認証を設定

このサンプルでは、サンプル設定ファイルXXX.ini中で設定されたパスであるlicense_filepathの下にライセンスファイルXXXXXX.licを保存する必要があります。サンプルの実行中に、SDKのライセンス認証APIは上記パス下にあるライセンスファイルXXX.licをロードします。なお他のAPIを呼び出す前に、ライセンス認証APIでライセンス認証する必要があります。

サンプルの実行中にライセンスファイルを変更した場合、senseid_facepro_snフォルダ(設定ファイルxxx.iniのactivation_code_dirフォルダのパスに対応しており、カスタマイズすることができます)、およびアクティベーションコードファイルを削除する必要があります。

ライセンス認証APIの定義については、「ライセンス認証 API について」をご参照ください。オンラインサンプルでは、アクティベーション版ライセンスの一般的な呼び出しプロセスを示します。

  1. stid_face_professional_online_activate_license APIは、JCVから提供されたライセンスファイルの内容をロードします。

  2. stid_face_professional_online_activate_license APIは、ネットワーク化してライセンスをアクティベートします。

  3. stid_face_professional_online_activate_license は、アクティベートされた新しいライセンスファイルの内容を出力します。

  4. stid_face_professional_load_license_content 出力された新しいライセンスファイルをロードします。

  5. stid_face_professional_load_license_content はSTID_OKを返し、承認認証が成功します。

  6. stid_license_release_contentは、アクティベートされたライセンスの内容を解放し、プロセスを終了します。

4. サンプルを実行

サンプルは次の2つの方法で実行できます。

1). サンプルに直接対応する.shスクリプトrun_sample_face_xxx.sh. を実行します。(sh には実行権限がありません。実行権限を付与するにはchmod+xが必要です)

2). LD_LIBRARY_PATHをライブラリフォルダパスsdk\libs\linux-x86_64に設定し,test_sample_face_XXXを実行します。(例: LD_LIBRARY_PATH=../../libs/linux-x86_64 test_sample_face_XXX [パラメーター] )

実行パラメーターについては、このサンプルのパート3「サンプルの機能紹介とパラメーターの説明」をご参照ください。

3. Javaサンプルテストの設定

この設定は、基本的にはWindows上でJavaサンプルを実行するテストプロジェクトと同じです。Windows上でJavaサンプルを実行する手順は、Windows クイックテストのWindowsプラットフォーム上でJavaサンプルを実行する手順をご参照ください。実行パラメーターについては、サンプルのパート4「機能説明とテスト手順」をご参照ください。

4. サンプルの機能紹介とパラメーターの説明

機能紹介とパラメーターの説明

1:パラメーターはマンドラインパラメーターと設定ファイル内のパラメーターの2種類に分けられています。コマンドラインパラメーターはサンプル固有の機能に必要なパラメーターを提供しています。設定ファイル内のパラメーターは各サンプルの基本設定(例えばライセンスファイルパスとモデルファイルパスなど)を提供します。

2:サンプルの実行中にライセンスファイルを変更した場合、senseid_facepro_snフォルダ(設定ファイルxxx.iniのactivation_code_dirフォルダのパスに対応しており、カスタマイズすることができます)およびアクティベーションコードファイルを削除する必要があります。

a). Sample_face_detect_1vs1(対応するJavaサンプル名はDetect_OneVSOneとなります)

1). 機能

設定命令セット、顔検知、顔特徴の抽出、顔の比較機能の検証。

2). 実行パラメーター

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。

3) 入出力

入力:2枚の写真および写真の中の顔の向き

出力:顔一致度スコア。2つの顔が同じ人物であるかどうかを判断します。

b). Sample_face_extract_image_feature_to_file(対応するjavaサンプル名はExtractFeatureとなります)

1). 機能

顔比較及び顔特徴抽出機能を検証。他の顔認証サンプルを使用できるように、特定のフォルダ内にあるすべての写真をjsonファイルに保存し、顔ライブラリを提供します。

2). 実行パラメーター

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。

3) 入出力

入力:画像の保存されたフォルダ名 出力:画像特徴の保存されたJSON形式のファイル

c). sample_face_singleliveness_1vsN

(対応するjavaサンプル名は、SinglelivenessOneVSNとなります)

1). 機能

モノキュラカメラによる顔トラッキング、フレーム選択、モノキュラカメラによる顔検知、顔特徴の1:N検索機能、モノキュラカメラによる生体顔検知、顔特徴データベース比較、および顔認証機能のシミュレーションの検証。

2). 実行パラメーター

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をご参照ください。

3) 入出力

入力:画像特徴のJSONファイルを保存し、比較Nデータベースを提供します。 出力:モノキュラカメラによる検知のスコアが返され、検知された顔が生体であるかどうかを判断します。比較スコアに応じて検知された顔と比較し、最も類似度スコアの高い複数の写真の名前を出力します。

4). 機能モジュールの指定

サンプルでは次の機能モジュールを指定できます。 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 に設定します。

d). sample_face_binocularliveness_1vsN

(対応するjavaサンプル名はBinocularlivenessOneVSNとなります)

1). 機能

ビノキュラカメラによる顔トラッキング、フレーム選択、ビノキュラカメラによる顔検知、顔特徴量抽出、顔特徴の1:N検索機能、ビノキュラRGBカメラによる生体顔検知、顔特徴データベース比較、顔認証機能のシミュレーションの検証。

2). 実行パラメーター

i). コマンドライン

[ini file path] [feature file name]

-ini file path:設定ファイルのパス

-feature file name:顔特徴の保存されたJSONファイルのパス

ii). 設定ファイル

license_filepath:ライセンスファイル

activation_code_dir:アクティベーションコードファイルの保存されたディレクトリ名

binocularliveness_model_filepath:ビノキュラRGBカメラによる顔検知モデルのパス

calcpose_model_filepath:顔の角度と方向を計算するモデル

Verify_model_filepath:顔特徴抽出モデルのパス

compare_model_filepath:顔特徴比較モデルのパス

binocularliveness_track_config:ビノキュラトラッキング設定。大顔検知モードおよび小顔検知モードのみをサポートしています。

Rgb_camera_index:RGBカメラのインデックス値

Infrared_camera_index:赤外線RGBカメラのインデックス値

camera_face_orientation:RGBカメラの向き

hack_threshold:生体検知しきい値。生体スコアがこの値より大きい場合、検知された顔が非生体に属していると判断されます。 しきい値範囲:0〜1。

frame_selector_threshold:顔写真品質チェックの設定(顔写真品質のパラメーター範囲、顔の角度や向きなど)。具体的な設定情報については、ヘッダファイルおよび設定ファイルtest.iniをご参照ください。

3) 入出力

入力:画像特徴のJSONファイルを保存し、比較Nデータベスを提供します。 出力:ビノキュラカメラによる検知のスコアが返され、検知された顔が生体であるかどうかを判断します。比較スコアに応じて検知された顔と比較し、最も類似度スコアの高い複数の写真の名前を出力します。

4). 機能モジュールの指定

サンプルでは次の機能モジュールを指定できます。 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エンコーディング形式で保存することを推奨します。

最終更新