6.2 Android SDK
ここではAndroid SDKで使用可能なAPIについて説明します。
6.2.1 MTC Basic Control Interface
MTC protocol初期化
API – mtcInit
MTC通信プロトコルオブジェクトを初期化するには、シリアルノードパスを渡す必要があります。モジュールがマウントされていない場合、呼び出しは失敗します。このとき、上位層はリトライ処理を実装いただく必要があります。
インターフェースの定義
public int mtcInit(String path)
parameter:
path:シリアル通信用の接続ノード。デバイスに複数のシリアルポートノードがある場合は、初期化の前に、使用するノードがSenseEngineが配置されているノードであるかどうかを確認する必要があります。例えば/dev/ttyACM0です。
return:
Status Code | Remark |
0 | 成功 |
1 | 未初期化 |
-2 | 繰り返し不可能な初期化 |
-3 | シリアルノードを開くことができません |
-4 | シリアルノード通信モードを設定できません |
-5 | シリアルノードのプロパティを設定できません |
MCTプロトコルの接続検知
API – mtcPing
ホストコンピューターとSenseEngineAIModuleの間でmtcプロトコルが正常かどうかを確認します。
インターフェースの定義
public int mtcPing( )
parameter:
なし
return:
Status Code | Remark |
0 | 成功 |
-8 | 返却された値が無効 |
-13 | レスポンスタイムアウト |
MTCの破棄
API – mtcDestroy
再初期化する場合は、既存のインスタンスを破棄する必要があります。これは安全な命令であり、インスタンスが初期化されずに破棄されても異常ではありません。
インターフェースの定義
public void mtcDestroy( )
parameter:
なし
return:
なし
Output Video From Specified Camera
API – mtcDeviceCameraSwitch
特定のカメラからのビデオストリーム出力
インターフェースの定義
public int mtcDeviceCameraSwitch(int cammraId)
parameter:
Name | Status Code | Remark |
cammraId | 0 | RGBカメラ |
1 | IRカメラ |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
FPSの設定
API – mtcDeviceFpsSet
FPSのデータ幅は10から25です。
インターフェースの定義
public int mtcDeviceFpsSet (int fps)
parameter:
Name | Remark |
fps | ビデオストリームのフレームレート(fps)は10~25 |
return:
Status Code | Remark |
0 | 成功 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
1 | 実行失敗 |
FPSの取得
API – mtcDeviceFpsGet
FPSのデータ幅は10から25です。
インターフェースの定義
public int mtcDeviceFpsGet ()
parameter:
なし
return:
Status Code | Remark |
0 | 成功 |
-13 | レスポンスタイムアウト |
1 | 実行失敗 |
スクリーンサイズの設定
API – mtcDeviceScreenSizeSet
インターフェースの定義
public int mtcDeviceScreenSizeSet(int screenSize)
parameter:
Name | Remark | |
Screen size | 1 | 360p |
0 | 720p |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
UVCの設定
API – mtcDeviceUvcSet
インターフェースの定義
public int mtcDeviceUvcSet(int mode)
parameter:
Name | Remark | |
mode | 0 (Turn on) | ONにします |
1 (Turn off) | OFFにします |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
IR LED 輝度の設定
API – mtcDeviceIrLedSet
IR フィルライトは熱を発するため、30秒間顔を検出しないと自動的にOFFになります。
インターフェースの定義
public int mtcDeviceIrLedSet(int brightness)
parameter:
Name | Remark | |
brightness | 0~200 | 0はオフです。デフォルト設定は200で、30秒以内に顔を検出しないと自動的にOFFになります |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
IR LEDの輝度取得
API – mtcDeviceIrLedGet
インターフェースの定義
public int mtcDeviceIrLedGet( )
parameter:
なし
return:
Status Code | Remark |
> 0 | 成功 |
-14 | 実行失敗 |
-13 | レスポンスタイムアウト |
Set Working LED Status
API – mtcDeviceStatusLedSet
LEDライトの状態をONまたはOFFに設定します。ライト自体は電源のライトです。
インターフェースの定義
public int mtcDeviceStatusLedSet (int brightness)
Name | Remark | |
brightness | 0(Turn off) | ONにします |
1(Turn on) | OFFにします |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
return:
Status Code | Remark |
0 | |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
Get Working LED Status
API – mtcDeviceCameraStatusGet
カメラの動作状態を取得します。
インターフェース定義
public int mtcDeviceCameraStatusGet(int cameraId)
parameter:
Name | Remark | |
cameraId | 0 | RGBカメラ |
1 | IRカメラ |
return:
Status Code | Remark |
0 | OFFにします |
1 | ONにします |
-14 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
カメラの動作状態の設定
API – mtcDeviceCameraStatusSet
カメラ動作状態を設定します。
インターフェースの定義
public int mtcDeviceCameraStatusSet(int mode, int cameraId)
parameter:
Name | Remark | |
cameraId | 0 | RGBカメラ |
1 | IRカメラ | |
mode | 0 | カメラをONにします |
1 | カメラをOFFにします |
return:
Status Code | Remark |
0 | |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
センサーの値の取得
API – mtcDeviceBrightnessSensorGet
現在の感光性の値を取得します。
インターフェースの定義
public int mtcDeviceBrightnessSensorGet( )
parameter:
なし
return:
Status Code | Remark |
> 0 | 成功 |
-14 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
2. 認証アルゴリズム制御の設定
アルゴリズムの設定
API – mtcAiConfig
アルゴリズムを設定します。
インターフェースの定義
public static String mtcAiConfig (MREOConfig mREOConfig)
parameter:
Name | Remark |
mREOConfig | アルゴリズム設定パラメーター |
return:
Status Code | Remark |
0 | 成功 |
-14 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
アルゴリズムの認証状態の取得
API – mtcAiStatusGet
インターフェースの定義
public int mtcAiStatusGet ( )
parameter:
なし
return:
Status Code | Remark |
0 | ONにします |
1 | OFFにします |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
ID数の取得
API – mtcAiIDCountGet
インターフェースの定義
public int mtcAiIDCountGet( )
parameter:
なし
return:
Status Code | Remark |
>= 0 | 成功 |
-14 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
1:N認証を有効にする
API – mtcAiStartRecognize
インターフェースの定義
public int mtcAiStartRecognize(int reco_mode, int face_mode)
parameter:
Name | Remark | |
reco_mode | 0 | 認証 |
1 | 認証&生体検知 | |
face_mode | 0 | 一つの顔 |
1 | 複数の顔 |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
1:1認証を有効にする
API – mtcAiStartVerify
インターフェースの定義
public int mtcAiStartVerify(int reco_mode, int face_mode, byte[ ] imageBytes, String Id)
parameter:
Name | Remark | |
reco_mode | 0 | 認証 |
1 | 認証&生体検知 | |
face_mode | 0 | 一つの顔 |
1 | 複数の顔 | |
imageBytes | 画像データ ※画像データのサイズは4MB | |
Id | 画像ID ※32bytesが上限 |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
認証の再開
API – mtcAiResume
mtcAiPauseで停止させた認証を再開します。
インターフェースの定義
public static int mtcAiResume ()
parameter:
なし
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
認証の停止
API – mtcAiPause
インターフェースの定義
public static int mtcAiPause ( )
parameter:
なし
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
認証情報の自動アップロード
API – mtcAiControlAutoUploadAiInfo
インターフェースの定義
public int mtcAiControlAutoUploadAiInfo(int mode)
parameter:
Name | Remark | |
mode | 0 | 認証機能を含む自動レポート/認証画像/ライブラリ内の人物のfeatureをONにします |
1 | 自動レポートをOFFにします | |
2 | 認証機能を含む自動レポート/認証画像をONにします | |
3 | 認証機能を含む自動レポート/ライブラリ内の人物のfeatureをONにします | |
4 | 認証機能を含む自動レポートをONにします |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
フレームデータによる認証情報のアップロード
API – mtcUploadFrameAiInfo
インターフェースの定義
public int mtcUploadFrameAiInfo (int mode)
parameter:
Name | Remark | |
mode | 0 (Turn on) | ONにします |
1 (Turn off) | OFFにします |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
カメラによるユーザー追加
API – mtcAiAddImageByCamera
インターフェースの定義
public static int mtcAiAddImageByCamera (String Id)
parameter:
Name | Remark |
Id | 画像ID ※最大32文字 |
return:
Status Code | Remark |
0 | 成功 |
0x01 | 顔情報無し |
0x02 | 複数の顔情報 |
0x03 | 顔サイズが小さすぎます |
0x04 | アラインスコアが小さすぎます |
0x05 | 横顔です |
0x06 | 顔情報が曖昧すぎます |
0x07 | 顔との距離が離れています |
0x08 | 初期化失敗 |
0x09 | 不正なパラメーターの入力 |
0x0a | featureのファイルがありません |
0x0b | 暗号化チップエラー |
0x0c | 証明書の検証に失敗しました |
0x0f | ライブラリ内のIDの数が上限に達しました |
-1001 | IDがnullです |
-1002 | IDの長さが最大を超えました |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
転送画像からのユーザー追加
API – mtcAiAddImageFromExternal
インターフェースの定義
public static int mtcAiAddImageFromExternal (byte[ ] imageBytes,String Id)
parameter:
Name | Remark |
imageBytes | 画像データ ※画像データのサイズは4MB |
Id | 画像ID ※32bytesが上限 |
return:
Status Code | Remark |
0 | 成功 |
0x01 | 顔情報無し |
0x02 | 複数の顔情報 |
0x03 | 顔サイズが小さすぎます |
0x04 | アラインスコアが小さすぎます |
0x05 | 横顔です |
0x06 | 顔情報が曖昧すぎます |
0x07 | 顔との距離が離れています |
0x08 | 初期化失敗 |
0x09 | 不正なパラメーターの入力 |
0x0a | featureのファイルがありません |
0x0b | 暗号化チップエラー |
0x0c | 証明書の検証に失敗しました |
0x0f | ライブラリ内のIDの数が上限に達しました |
-1001 | IDがnullです |
-1002 | IDの長さが最大を超えました |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
IDによる特定ユーザーの消去
API – mtcAiDelUserImageById
インターフェースの定義
public static int mtcAiDelUserImageById (String Id)
parameter:
Name | Remark |
Id | 画像ID ※32bytesが上限 |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
-1001 | IDがnullです |
-1002 | IDの長さが最大を超えました |
全ユーザーの消去
API – mtcAiClearAllImage
インターフェースの定義
public static int mtcAiClearAllImage ( )
parameter:
なし
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
IDの照会
API – mtcAiQueryId
ベースライブラリにIDが入っているかどうか確認します。
インターフェースの定義
public static int mtcAiQueryId (String Id)
parameter:
Name | Remark |
Id | 画像ID ※32bytesが上限 |
return:
Status Code | Remark |
0 | IDが存在します |
1 | IDが存在しません |
2 | 照会失敗 |
-13 | レスポンスタイムアウト |
-1001 | IDがnullです |
-1002 | IDの長さが最大を超えました |
Import Feature
API – mtcAiAddFeature
データベースへfeatureを取り込みます。
インターフェースの定義
public static int mtcAiAddFeature (byte[ ] featureDatas,String Id)
parameter:
Name | Remark |
featureDatas | featuredデータ ※featureの最大データサイズは4MB |
Id | 画像ID ※32bytesが上限 |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
-1001 | IDがnull |
-1002 | IDの長さが最大を超えました |
-1003 | featureデータがありません |
-1004 | featureデータが大きすぎます |
-1005 | IDに許可されていない文字が含まれています |
featureの取得
API – mtcAiQueryFeature
ID照会によりfeatureを取得します。 ※照会できなかった場合はnullが返却されます。
インターフェースの定義
public static byte[] mtcAiQueryFeature (String featureId)
parameter:
Name | Remark |
featureId | feature ID ※32bytesが上限 |
return:
Status Code | Remark |
null以外 | 成功 |
null | 失敗 |
静的な検証
API – mtcAiStaticVerify
特定の画像をライブラリ内の人物と比較することに使用し、データベース内でもっともマッチした顔データを返却します。
インターフェースの定義
public String mtcAiStaticVerify(int mode, byte[ ] imageBytes)
parameter:
Name | Remark | |
mode | 0 | 比較用にカメラで画像をキャプチャします |
1 | 比較用にホストコンピューターから画像を取り込みます | |
imageBytes | 画像データのサイズ ※modeが1の場合は画像サイズの上限は4MB、それ以外の場合はnull |
return:
Status Code | Remark |
null以外 | 成功 |
null | 失敗 |
システムアップグレードパッケージのアップロード
API – mtcSystemUploadUpgradePackage
ファームウェアアップグレードパッケージを取り込みます。
※UART送信のバッファ制限により、アップグレードパッケージデータをセグメント単位でアップロードするには、このコマンドを周期的に呼び出す必要があります。
インターフェースの定義
public int mtcSystemUploadUpgradePackage (int position,byte [ ] data,int dataLength)
parameter:
Name | Remark |
position | 0から始まるファイルセグメントの位置を読み取ります |
data | 読み取ったアップグレードパッケージデータ |
dataLength | データの長さ ※最大長は51200です |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
システムアップグレードパッケージの適用
API – mtcSystemApplyUpgradePackage
取り込んだファームウェアアップグレードパッケージを適用します。適用が成功するとデバイスは再起動します。
インターフェースの定義
public int mtcSystemApplyUpgradePackage (String fileMD5)
parameter:
Name | Remark |
fileMD5 | アップグレードされたMD5チェック値 |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-1 | 無効な命令 |
-13 | レスポンスタイムアウト |
カメラの再起動
API – mtcSystemReboot
再起動モードが設定されます。 ※factoryモードを選択すると、カメラ再起動後にこのSDKでカメラに接続することはできません。
インターフェースの定義
public int mtcSystemReboot(int mode)
parameter:
Name | Remark | |
mode | 0 | 直接再起動 |
1 | USBメモリによるユーザーモードで再起動 | |
2 | USBメモリ以外によるユーザーモードで再起動 | |
3 | USBメモリによるファクトリーモードで再起動 | |
4 | USBメモリ以外によるファクトリーモードで再起動 |
return:
Status Code | Remark |
0 | 成功 |
1 | 実行失敗 |
-13 | レスポンスタイムアウト |
デバイスのシリアルナンバー照会
API – mtcDeviceSnGet
インターフェースの定義
public String mtcGetDeviceSN( )
parameter:
なし
return
Status Code | Remark |
null以外 | 成功 |
null | 失敗 |
システム情報の取得
API – mtcSystemVersionInfoGet
インターフェースの定義
public String mtcSystemVersionInfoGet( )
parameter:
なし
return:
Status Code | Remark |
null以外 | 成功 |
null | 失敗 |
2.4 データにより構造化された顔認証コールバックインターフェイス
認証コールバックインターフェース
API – setReceiveCallback
コールバックインターフェースを登録すると、認証結果がリアルタイムで返送されます。カスタムインターフェイス関数で独自の処理ロジックを実装できます。なお、認証結果が失われる可能性があるためコールバックの処理操作に時間がかかりすぎないように注意してください。
インターフェースの定義
public void setReceiveCallback(IReceiveCallback callback)
parameter:
Name | Remark |
callback | 登録されたコールバック関数 |
コールバックに関するインターフェースプロトタイプは以下の通りです。
3. Note
3.1 ノード接続に対する許可がない場合
CAMERAをホストコンピューターに接続した後、デバイス自体をシリアルデバイスノードとして認証する必要があります。接続先となるホストコンピューターはACMをサポートする必要があります。デバイスマウント後のデフォルトノードパスは/ dev / ttyACM0です。アクセス後にデバイスが通信できない場合は、正常にマウントされているか、ノードに読み取り/書き込み/実行権限があるかどうかを確認してください。
以下は確認するための実行コマンドの一例です。
Last updated