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

登録されたコールバック関数

コールバックに関するインターフェースプロトタイプは以下の通りです。

public interface IReceiveCallback {
 void onTracking(String data);// 追尾/認証結果
 void onVerify(String data);// 認証結果
 void onPhotoData(int trackId,String recognizeId,ByteBuffer rgbHeadpose,B yteBuffer rgbBackground,ByteBuffer irBackgroud);//認証した顔のスナップショット
 void onFeatureData(String traceId,ByteBuffer feature);// 認証したライブラリ内の人物のfeatureをアップロード }

3. Note

3.1 ノード接続に対する許可がない場合

CAMERAをホストコンピューターに接続した後、デバイス自体をシリアルデバイスノードとして認証する必要があります。接続先となるホストコンピューターはACMをサポートする必要があります。デバイスマウント後のデフォルトノードパスは/ dev / ttyACM0です。アクセス後にデバイスが通信できない場合は、正常にマウントされているか、ノードに読み取り/書き込み/実行権限があるかどうかを確認してください。

以下は確認するための実行コマンドの一例です。

adb root
adb shell
chmod 777 ttyACM0

Last updated