2 ユーザーガイド
2.1 SDK のディレクトリ構造

2.2 開発環境へのSDK統合
SDKを使用前に、開発環境に統合する必要があります。プロジェクトの開発環境はXcode 7.0以降、動作環境はiOS 7.0以降である必要があります。
開発に必要な操作詳細は、以下の通りです。
2.2.1 開発環境の構成
SDK パッケージのインポート
コピーオプションがチェックされていることに注意しながら、libSTSilentLivenessController フォルダをプロジェクトにドラッグし、[Finish] ボタンをクリックします。
SDKは、CocoaPods によるインポートをサポートしていません。
ライセンスファイルのインポート
詳細はライセンス概要をご参照ください。
2.2.2 コンパイルオプションの設定
-ObjC および -lc++という、Xcodeリンカーパラメーターを追加する必要があります。
-ObjCパラメーターの追加後、リンカーは静的ライブラリ内のすべてのObjective-Cクラスとカテゴリーを最終実行ファイルに読み込むことができます。
静的ライブラリではC++標準ライブラリのサポートが必要なため、-lc++パラメーターを追加します。
追加方法:-lc++ および -ObjC を TARGETS -> Build Settings -> Linking -> Other Linker Flags に追加します。

使用する開発ツールがXcode 7.0以降の場合、手動でBitcodeを無効にする必要があります。
手順: TARGETS -> BuildSettings -> Enable BitcodeをNOに設定します。

2.2.3 カメラのアクセス許可設定
Xcode 8以降を使用してiOS 10以降のシステムをデバッグする場合、カメラ機能を呼び出す際に info.plist ファイルにカメラのアクセス許可を追加する必要があります。
<key>NSCameraUsageDescription</key>
<string>cameraDesciption</string
2.3 インターフェース呼び出しプロセス
サイレント生体検知のインターフェース呼び出しは、主にSTSilentLivenessControllerです。以下に、詳細な手順を解説します。
2.3.1 インターフェース呼び出しのフローチャート

1. STSilentLivenessDetectorDelegateプロトコルとSTSilentLivenessControllerDelegateプロトコルに準拠
@interface ViewController () <STSilentLivenessDetectorDelegate,STSilentLivenessControllerDelegate>
2. サイレント生体検知用ビューコントローラーの初期化
STSilentLivenessController *livenessVC = [[STSilentLivenessController alloc] initWithSetDelegate:self];
3. サイレント生体検知用オプションの条件設定
生体検出タイムアウト時間、通過条件、なりすまし閾値、隠し、照明条件、ぼやけ、閉じ目のフィルタリング条件を設定します。 SDKは、設定に従ってサイレント生体検知を実行します。
パラメーター
説明
setDetectTimeout
タイムアウト時間
setPassConditionMinDuration
認証最短時間
setPassConditionMinFrames
認証最小フレーム数
FaceDistanceRateWithFarRate
顔までの最大距離
FaceDistanceRateWithCloseRate
顔までの最小距離
setHackThreshold
なりすまし閾値
setIlluminationFilterEnable
明るさ検知を有効/無効
setBlurryFilterEnable
ぼやけ検知を有効/無効
setEyeOpenFilterEnable
目開き検知を有効/無効
setOcclusionEnable
顔のパーツ遮蔽検知を有効/無効
//タイムアウト時間を設定
[_detector setDetectTimeout:kSenseIdSilentLivenessDefaultTimeOutDuration];
//認証の最低条件を設定
[_detector setPassConditionMinDuration:0 minFrames:4];
//顔までの距離条件を設定
[_detector setFaceDistanceRateWithFarRate:0.4 closeRate:0.8];
//なりすまし阈值を設定
[_detector setHackThreshold:kSenseIdSilentLivenessDefaultHackThreshold];
//照明条件を設定
[_detector setIlluminationFilterEnable:YES
darkLightThreshold:kSenseIdSilentLivenessDefaultDarkLightThreshold
strongLightThreshold:kSenseIdSilentLivenessDefaultStrongLightThreshold];
//ぼやけ検知の設定
[_detector setBlurryFilterEnable:YES threshold:kSenseIdSilentLivenessDefaultBlurThreshold];
//目開き検知の設定
[_detector setEyeOpenFilterEnable:YES threshold:kSenseIdSilentLivenessDefaultEyeOpenThreshold];
//顔のパーツ遮蔽検知の設定
[_detector setOcclusionEnable:YES];
4. ナビゲーションバー付きのビューコントローラーをポップアウトさせる
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.livenessVC];
[self presentViewController:nav animated:YES completion:nil];
5. STSilentLivenessDetectorDelegateにcallbackメソッドを実装する
/**
* Callback for successful liveness detection
*
* @param protobufData Return encrypted binary data
* @param images Returns the STSilentImage array according to the specified output scheme. Refer to STSilentImage.h for STSilentImage properties.
* @param faceRects Returns the STSilentRect array according to the specified output scheme. Refer to STSilentRect.h for STSilentRect properties.
*/
- (void)silentLivenessSuccessWithProtobufData:(NSData *)protobufData
images:(NSArray *)images
faceRects:(NSArray *)faceRects{
}
/**
* Callback for liveness detection failure
*
* @param livenessResult Running result STIDSilentLivenessResult
* @param protobufData Return encrypted binary data
* @param images Returns the STSilentImage array according to the specified output scheme. Refer to STSilentImage.h for STSilentImage properties.
* @param faceRects Returns the STSilentRect array according to the specified output scheme. Refer to STSilentRect.h for STSilentRect properties.
*/
- (void)silentLivenessFailureWithErrorCode:(STIDSilentLivenessResult)livenessResult
protobufData:(NSData *)protobufData
images:(NSArray *)images
faceRects:(NSArray *)faceRects{
}
6. STSilentLivenessControllerDelegateにcallback メソッドを実装する
// Callback for device error type
-(void) silentLivenessControllerDeveiceError: (STIDSilentLivenessDeveiceError) deveiceError
{
}
// Cancel detection
-(void) cancelDetect
{
}
2.3.2 顔比較のためのサーバーインターフェースの呼び出し
生体検知の成功後、SDKは対応する顔画像と暗号化されたバイナリファイルを返します。返された値は、顔比較のためのサーバーインターフェースのパラメーターとして使用することができます。
サーバーインターフェースのドキュメントは、SenseIDマニュアルを参照してください。
2.4 インターフェースのカスタマイズ
サイレント生体検知 SDKは、複数のカスタマイズ方法に対応しています。必要に応じてUIをカスタマイズすることができます。
表:カスタマイズオプション
カスタマイズオプション
カスタマイズ内容
具体的な概要
部分的
以下を含むインターフェースの基本要素を変更します
ビューのレイアウト
写真、文字、ボタン、背景色、その他の変更
その他のインターフェース要素の追加または非表示
1. 標準のサイレント生体検知SDKを統合します 2. 以下のようにリソースファイルを変更または置換します 1) //インターフェースのレイアウト、写真要素、プロンプトの文字の変更 : - (void)setupUI 2) //画像リソースの変更 パス: libSTSilentLivenessController/ st_silent_liveness_resource.bundle/ images
フル
UI のリデザイン
1. 標準のサイレント生体検知SDKを統合します 2. STSilentLivenessViewクラスを書き換えます
Last updated