Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
本マニュアルでは本デバイスに搭載されたファームウェア最新バージョンでの説明を記載しております。
版
日付
改定内容
初版
2021/6/11
新規発行
第2版
2022/8/30
setScreenDirectionに関する記述を削除
第3版
2023/6/6
M20Sリリースに伴う記述を追加
M20/M20S AIビジョンモジュールの使用方法について説明します。
M20/M20S AIビジョンモジュールは、高精度のディープラーニング顔認識アルゴリズムを搭載した、双眼式(RGBカメラ+赤外線カメラ)生体検知技術をはじめ、顔の特徴点抽出、認識アルゴリズムSDK、金属製ケーシングなどを統合した新世代のインテリジェント顔認識AIビジョンモジュールです。
生体検知、顔認証による本人確認などの機能を備えており、各種端末機器に組み込むことで、端末機器のセキュリティー性能を飛躍的に向上させることができます。
本デバイスの使用方法について説明します。
本製品にお客様のシステムに組み込みご使用いただくユースケースを想定しております。
具体的は設置方法につきましては、2.1 ホスト機器との接続方法をご確認ください。
組み込まずにスタンドアロンでご使用いただく場合は、三脚等に固定いただき、各カメラの向きが地面と垂直となるように固定します。
本デバイスを不正アクセスから保護し、デバイスが改竄される、破壊される、機能を停止される、内部のデータを抽出されることを防ぐために、USBポートは露出しないように設置してください。
ノート
2021/6/11
Windows/Linux用SDK : V3.0.0
Android用SDK : V2.6.6
顔認証機能、及び生体検知機能を実行できる各種OS向けのSDKを新規リリース
2021/12/3
Raspberry Pi 4B向けARM Linux用SDK : V4.1.5
顔認証機能、及び生体検知機能を実行できるRaspberry Pi 4B向けSDKをリリース
2023/4/14
Windows/Linux/ARM Linux用SDK V4.1.5
Android用SDK: V4.0.8
M20Sリリースに伴い、SDKの更新版をリリース
本製品が不要となり廃却される場合は以下の内容に沿ってご対応ください。
産業廃棄物として各地方自治体の条例に従って適切に処理して下さい。また、本製品の一部または全部を再利用しないでください。
以下の対応するSDKにおけるデモアプリケーションにおいて、基本機能となる顔認証と生体検知機能の操作方法について説明します。
デモアプリケーションはダウンロードされたSDKのデータに含まれています。SDKのデータをダウンロードしてご利用ください。
・デモアプリケーションを動作させることで本製品の利用例をご確認いただくことができます。
・デモアプリケーションは本製品の利用例を確認する用途以外の目的で使用しないようお願いします 。
・デモアプリケーションで使用した顔認証用のIDデータは、使用後に消去することをお勧めします。
ホスト機器と接続された本デバイスの動作を安定させるために、接続した後40秒程度経過後にホスト機器側でデモアプリケーションを実行してください。
この項目で説明する内容はSDKで作成されたアプリケーションの一例であり、SDKで作成されるアプリケーションはこの例に限定されるものではありません。
以下の注意事項を守ってご使用ください。
Micro-USB端子に対する外部からの予期せぬ物理的なアクセスを防ぐため、当該端子部分は剥き出しにならないように管理してください。
1 以下のMulti LivingまたはSingle Livingの項目を選択します。
2 カメラで顔を検知した際検知枠の上にNONLIVENESS以外が表示されていることを確認します。
以下のようにNONLIVENESSと表示される場合は生体検知ができていない状態です。
1 デモ用アプリケーションをこちらからダウンロードしてください
2 zipファイルを解凍し、"Windows"フォルダ内の"uvcCamera.exe"を実行します。
3 以下の画面が表示されることを確認しDevicesからSettingを選択します。
4 以下の画面が表示されることを確認し、以下のようにUVC CameraとWindowsのUSBポートの接続した際の接続ポートを選択し、Applyボタンを押下します。
接続Portは通常自動で選択されます。
5 以下の画面が表示されRGBカメラで捉えた被写体が表示されていることを確認します。
下記のようなMicroUSB端子を備えたUSBケーブルを用意します。
ご用意いただくケーブルの詳細につきましては以下をご確認ください。
長さが0.5m未満の場合:26AWGのケーブルをご使用ください
長さが1m未満の場合:22AWGのケーブルをご使用ください
以下の各ホスト機器に応じた手順で接続します。
ホスト機器に接続後、デバイス自体の動作を安定させるために40秒程度お待ちください。
1 以下のようにWindowsOSホスト機器とUSBケーブルで接続します。
2 Plug and Playによりドライバーは自動でインストールされ接続が完了します。
1 以下のようにUSBケーブルで接続します。
2 以下のようにttyACM0が検出できれば接続が完了します。
1 以下のようにUSBケーブルで接続します。
1 被写体の画像に顔検出枠が表示されその上にStrangerと表示されていることを確認します。
2 Add base library by Cameraを選択します。
3 現在画面に表示されている画像を顔認証用の画像として登録するために、Image IDに任意のIDを入力します。
入力するIDに現在撮影している顔を画像として登録するため、カメラで顔を撮影した状態のままID入力を実施してください。
4 以下のダイアログが表示されたらOKボタンを選択します。
5 10秒程度経過するとStrangerの表示が3で登録したImage IDに変更されることを確認します。
ここからは顔認証画像の登録を解除する方法について説明します。登録解除を行うにはImage IDを削除します。
以下ではIDごとに個別に削除する方法を説明します。
6 Delete項目を選択します。
7 削除するImage IDを入力し、OKを選択します。
8 以下のダイアログが表示されたらOKを選択し、顔画像へのImage IDの登録が解除されます。
以下では全てのIDを削除する方法を説明します。
9 Delete All項目を選択します。
10 以下のダイアログが表示されたらYesを選択します。
11 以下のダイアログが表示されたらOKを選択し、全顔画像へのImage IDの登録が解除されます。
1 被写体の画像に顔検出枠が表示されその上にStrangerと表示されていることを確認します。
2 Add base library by Cameraを選択します。
3 現在画面に表示されている画像を顔認証用の画像として登録するために、Image IDに任意のIDを入力します。
入力するIDに現在撮影している顔を画像として登録するため、カメラで顔を撮影した状態のままID入力を実施してください。
4 以下のダイアログが表示されたらOKボタンを選択します。
5 10秒程度経過するとStrangerの表示が3で登録したImage IDに変更されることを確認します。
ここからは顔認証画像の登録を解除する方法について説明します。登録解除を行うにはImage IDを削除します。
以下ではIDごとに個別に削除する方法を説明します。
6 Delete項目を選択します。
8 削除するImage IDを入力し、OKを選択します。
9 以下のダイアログが表示されたらOKを選択し、顔画像へのImage IDの登録が解除されます。
以下では全てのIDを削除する方法を説明します。
10 Delete All項目を選択します。
11 以下のダイアログが表示されたらYesを選択します。
12 以下のダイアログが表示されたらOKを選択し、全顔画像へのImage IDの登録が解除されます。
1 デモ用アプリケーションをこちらからダウンロードしてください
2 LinuxDemoディレクトリが配置されているところまで移動します。
本説明ではデスクトップに配置されています
3 root権限でrun.shファイルを実行し、デモアプリケーションuvcCameaを実行します。
4 アプリケーションの画面が表示されることを確認します。
5 DevicesからSettingを選択します。
6 以下のようにUVC CameraとLinuxのUSBポートの選択を行いApplyボタンを押下します。
7 以下の画面が表示されRGBカメラで捉えた被写体が表示されていることを確認します。
1 以下のMulti LivingまたはSingle Livingの項目を選択します。
2 カメラで顔を検知した際検知枠の上にNONLIVENESS以外が表示されていることを確認します。
以下のようにNONLIVENESSと表示される場合は生体検知ができていない状態です。
1 Add base libraryを選択します。
2 ローカルストレージから顔認証用の画像ファイルを選択します。
ファイル形式はjpgです。また、登録可能となる画像サイズは300KB以下となります。
3 画像読み込み時に対応するImage IDを入力しOKを選択します。
4 以下のダイアログが表示されたらOKボタンを選択します。
5 10秒程度経過後に顔認証を行うと3で設定したImage IDに変更されることを確認します。
ここからは顔認証画像の登録を解除する方法について説明します。登録解除を行うにはImage IDを削除します。
以下ではIDごとに個別に削除する方法を説明します。
6 Delete項目を選択します。
7 削除するImage IDを入力し、OKを選択します。
8 以下のダイアログが表示されたらOKを選択し、顔画像へのImage IDの登録が解除されます。
以下では全てのIDを削除する方法を説明します。
9 Delete All項目を選択します。
10 以下のダイアログが表示されたらYesを選択します。
11 以下のダイアログが表示されたらOKを選択し、全顔画像へのImage IDの登録が解除されます。
1 デモ用アプリケーションをこちらからダウンロードしてください。
2 zipファイルを解凍し、"Android"フォルダ内の"SenseEngineCamera-demo-v4.0.8-debug.apk"をAndroid端末にインストールしてください。
3 以下のアプリケーションを起動します。
4 以下の画面が表示されることを確認し、ENTRYボタンを選択します。
1 Add base libraryを選択します。
2 ローカルストレージから顔認証用の画像ファイルを選択します。
ファイル形式はjpgです。また、登録可能となる画像サイズは300KB以下となります。
3 画像読み込み時に対応するImage IDを入力しOKを選択します。
4 以下のダイアログが表示されたらOKボタンを選択します。
5 10秒程度経過後に顔認証を行うと3で設定したImage IDに変更されることを確認します。
ここからは顔認証画像の登録を解除する方法について説明します。登録解除を行うにはImage IDを削除します。
以下ではIDごとに個別に削除する方法を説明します。
6 Delete項目を選択します。
7 削除するImage IDを入力し、OKを選択します。
8 以下のダイアログが表示されたらOKを選択し、顔画像へのImage IDの登録が解除されます。
以下では全てのIDを削除する方法を説明します。
9 Delete All項目を選択します。
10 以下のダイアログが表示されたらYesを選択します。
11 以下のダイアログが表示されたらOKを選択し、全顔画像へのImage IDの登録が解除されます。
1 被写体の画像に顔検出枠が表示されその上にStrangerと表示されていることを確認します。
2 ADD USERを選択します。
3 現在画面に表示されている画像を顔認証用の画像として登録するために、Image IDに任意のIDを入力します。
入力するIDに現在撮影している顔を画像として登録するため、カメラで顔を撮影した状態のままID入力を実施してください。
4 入力後、SUREを選択します。
5 画面にSUCESSと表示された10秒程度経過するとStrangerの表示が3で登録したImage IDに変更されることを確認します。
ここからは顔認証画像の登録を解除する方法について説明します。登録解除を行うにはImage IDを削除します。
以下ではIDごとに個別に削除する方法を説明します。
6 SETTINGを選択します。
7 DELETE USER項目を選択します。
8 削除するImage IDを入力します。
9 Success.と表示されたら顔画像へのImage IDの登録が解除されます。
以下の戻るボタンを選択し顔認証画面に戻ります。
以下では全てのIDを削除する方法を説明します。
10 DELETE ALL USERS項目を選択します。
11 以下のダイアログが表示されたらSUREを選択します。
12 Success.と表示されたら顔画像へのImage IDの登録が解除されます。
以下の戻るボタンを選択し顔認証画面に戻ります。
1 1:Nを選択します。
2 以下の画面が表示されたことを確認し、
1:N Single face and open checking livenessまたは1:N Multi face and open checking livenessを選択します。
3 カメラで顔を検知した際検知枠の上にNONLIVENESS以外が表示されていることを確認します。
以下のようにNONLIVENESSと表示される場合は生体検知ができていない状態です。
1 以下のMulti LivingまたはSingle Livingの項目を選択します。
2 カメラで顔を検知した際検知枠の上にNONLIVENESS以外が表示されていることを確認します。
本SDKをご利用いただくにはファームウェアV2.6.13へのアップデートが必要です。アップデート手順につきましては3.4.4 ファームウェアアップデート方法を参照ください。
1 以下のフォルダまで移動します。
/senseenginelib-release4B-v4.1.5/release/arm32pi4
2 コマンドsudo ./run.shを実行しデモアプリケーションuvcCameraを起動します。
3 アプリケーションの画面が表示されることを確認します。
4 DevicesメニューからSettingを選択します。
5 以下のようにUVC Cameraと Raspberry Pi 4BのUSBポートの選択を行いApplyボタンを押下します。
5 以下の画面が表示されRGBカメラで捉えた被写体が表示されていることを確認します。 DevicesメニューからSettingを選択します。
1 被写体の画像に顔検出枠が表示されその上にStrangerと表示されていることを確認します。
2 Add base library by Cameraを選択します。
3 現在画面に表示されている画像を顔認証用の画像として登録するために、Image IDに任意のIDを入力します。
入力するIDに現在撮影している顔を画像として登録するため、カメラで顔を撮影した状態のままID入力を実施してください。
4 以下のダイアログが表示されたらOKボタンを選択します。
5 10秒程度経過するとStrangerの表示が3で登録したImage IDに変更されることを確認します。
ここからは顔認証画像の登録を解除する方法について説明します。登録解除を行うにはImage IDを削除します。
以下ではIDごとに個別に削除する方法を説明します。
6 Delete項目を選択します。
7 削除するImage IDを入力し、OKを選択します。
8 以下のダイアログが表示されたらOKを選択し、顔画像へのImage IDの登録が解除されます。
以下では全てのIDを削除する方法を説明します。
9 Delete All項目を選択します。
10 以下のダイアログが表示されたらYesを選択します。
11 以下のダイアログが表示されたらOKを選択し、全顔画像へのImage IDの登録が解除されます。
1 Add base libraryを選択します。
2 ローカルストレージから顔認証用の画像ファイルを選択します。
ファイル形式はjpgです。また、登録可能となる画像サイズは300KB以下となります。
3 画像読み込み時に対応するImage IDを入力しOKを選択します。
4 以下のダイアログが表示されたらOKボタンを選択。
5 10秒程度経過後に顔認証を行うと3で設定したImage IDに変更されることを確認します。
ここからは顔認証画像の登録を解除する方法について説明します。登録解除を行うにはImage IDを削除します。
以下ではIDごとに個別に削除する方法を説明します。
6 Delete項目を選択します。
7 削除するImage IDを入力し、OKを選択します。
8 以下のダイアログが表示されたらOKを選択し、顔画像へのImage IDの登録が解除されます。
以下では全てのIDを削除する方法を説明します。
9 Delete All項目を選択します。
10 以下のダイアログが表示されたらYesを選択します。
11 以下のダイアログが表示されたらOKを選択し、全顔画像へのImage IDの登録が解除されます。
以下の手順でM20のファームウェアをアップデートいただけます。
1 デモアプリケーションのToolsのメニューからUpgradeを選択します。
2 表示された以下の画面からselect Filesを選択します。
3 アップデートするファームウェアのファイルを選択しOpenを選択します。
例)ファームウェアのファイル名がm20V2.6.13update_tar.binの場合
4 アップグレードボタンを選択します。
5 アップデートが開始されプログレスバーにてアップデートが進んでいることを確認します。
6 アップデートが完了すると以下の画面が表示されるため、完了後40秒経過したらOKボタンを選択します。
7 再度DevicesメニューからSettingを選択します。
8 UVC CameraとRaspberry Pi 4BのUSBポートの選択を行いApplyボタンを押下します。
9 ConfigメニューからGet Versionを選択します。
10 表示されたダイアログのsoftware_versionがアップデートされていることを確認します。
例)ファームウェアのファイル名がm20V2.6.13update_tar.binの場合
以下の各種SDKの仕様について説明します。
各SDK用APIは以下のバージョンで動作します。
本デバイスの各部名称について説明します。
本デバイスの仕様について説明します。
動作対象OS
バージョン
Windows
Windows10
Linux
Ubuntu 14及びそれ以降のバージョン
Android
4.4/5.1/6.0/7.1及びそれ以降のバージョン
ARM Linux for Raspberry Pi 4B
Raspbian GNU/Linux 10 (buster)
項目
説明
CPU
HI3516DV300
メモリ容量
RAM
512MB
FLASH
8GB EMMC
OS
Linux 4.9.37
RGB Camera
Resolution
200M
(1936 x 1096)
Frame Rate
10 - 25fps
IR camera
Resolution
200M
(1936 x 1096)
Frame Rate
10 - 25fps
インターフェース
Micro USB Type-B
USB2.0準拠
電源
5V, 1.2A
使用環境
室内
認証距離
0.5〜1.5m
認証時間
0.4秒
認証に必要な輝度
約20lux
デバイス内の保存可能な顔データの総数
20000件
デバイスのサイズ
88 x 22 x 18.9mm
重量
50g
デバイス本体のカバー素材
アルミニウム合金
デバイス外装色
グレー
環境温度
-20〜50℃
湿度
0〜93% RH
利用形態
組み込み
防塵・防滴・防水性能
非対応
ここではAndroid SDKで使用可能なAPIについて説明します。
MTC通信プロトコルオブジェクトを初期化するには、シリアルノードパスを渡す必要があります。モジュールがマウントされていない場合、呼び出しは失敗します。このとき、上位層はリトライ処理を実装いただく必要があります。
インターフェースの定義
public int mtcInit(String path)
parameter:
path:シリアル通信用の接続ノード。デバイスに複数のシリアルポートノードがある場合は、初期化の前に、使用するノードがSenseEngineが配置されているノードであるかどうかを確認する必要があります。例えば/dev/ttyACM0です。
return:
Status Code
Remark
0
成功
1
未初期化
-2
繰り返し不可能な初期化
-3
シリアルノードを開くことができません
-4
シリアルノード通信モードを設定できません
-5
シリアルノードのプロパティを設定できません
ホストコンピューターとSenseEngineAIModuleの間でmtcプロトコルが正常かどうかを確認します。
インターフェースの定義
public int mtcPing( )
parameter:
なし
return:
Status Code
Remark
0
成功
-8
返却された値が無効
-13
レスポンスタイムアウト
再初期化する場合は、既存のインスタンスを破棄する必要があります。これは安全な命令であり、インスタンスが初期化されずに破棄されても異常ではありません。
インターフェースの定義
public void mtcDestroy( )
parameter:
なし
return:
なし
特定のカメラからのビデオストリーム出力
インターフェースの定義
public int mtcDeviceCameraSwitch(int cammraId)
parameter:
Name
Status Code
Remark
cammraId
0
RGBカメラ
1
IRカメラ
return:
Status Code
Remark
0
成功
1
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
FPSのデータ幅は10から25です。
インターフェースの定義
public int mtcDeviceFpsSet (int fps)
parameter:
Name
Remark
fps
ビデオストリームのフレームレート(fps)は10~25
return:
Status Code
Remark
0
成功
-1
無効な命令
-13
レスポンスタイムアウト
1
実行失敗
FPSのデータ幅は10から25です。
インターフェースの定義
public int mtcDeviceFpsGet ()
parameter:
なし
return:
Status Code
Remark
0
成功
-13
レスポンスタイムアウト
1
実行失敗
インターフェースの定義
public int mtcDeviceScreenSizeSet(int screenSize)
parameter:
Name
Remark
Screen size
1
360p
0
720p
return:
Status Code
Remark
0
成功
1
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
インターフェースの定義
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 フィルライトは熱を発するため、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
レスポンスタイムアウト
インターフェースの定義
public int mtcDeviceIrLedGet( )
parameter:
なし
return:
Status Code
Remark
> 0
成功
-14
実行失敗
-13
レスポンスタイムアウト
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
レスポンスタイムアウト
カメラの動作状態を取得します。
インターフェース定義
public int mtcDeviceCameraStatusGet(int cameraId)
parameter:
Name
Remark
cameraId
0
RGBカメラ
1
IRカメラ
return:
Status Code
Remark
0
OFFにします
1
ONにします
-14
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
カメラ動作状態を設定します。
インターフェースの定義
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
レスポンスタイムアウト
現在の感光性の値を取得します。
インターフェースの定義
public int mtcDeviceBrightnessSensorGet( )
parameter:
なし
return:
Status Code
Remark
> 0
成功
-14
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
アルゴリズムを設定します。
インターフェースの定義
public static String mtcAiConfig (MREOConfig mREOConfig)
parameter:
Name
Remark
mREOConfig
アルゴリズム設定パラメーター
return:
Status Code
Remark
0
成功
-14
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
インターフェースの定義
public int mtcAiStatusGet ( )
parameter:
なし
return:
Status Code
Remark
0
ONにします
1
OFFにします
-1
無効な命令
-13
レスポンスタイムアウト
インターフェースの定義
public int mtcAiIDCountGet( )
parameter:
なし
return:
Status Code
Remark
>= 0
成功
-14
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
インターフェースの定義
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
レスポンスタイムアウト
インターフェースの定義
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
レスポンスタイムアウト
mtcAiPauseで停止させた認証を再開します。
インターフェースの定義
public static int mtcAiResume ()
parameter:
なし
return:
Status Code
Remark
0
成功
1
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
インターフェースの定義
public static int mtcAiPause ( )
parameter:
なし
return:
Status Code
Remark
0
成功
1
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
インターフェースの定義
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
レスポンスタイムアウト
インターフェースの定義
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
レスポンスタイムアウト
インターフェースの定義
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
レスポンスタイムアウト
インターフェースの定義
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
レスポンスタイムアウト
インターフェースの定義
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の長さが最大を超えました
インターフェースの定義
public static int mtcAiClearAllImage ( )
parameter:
なし
return:
Status Code
Remark
0
成功
1
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
ベースライブラリに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の長さが最大を超えました
データベースへ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に許可されていない文字が含まれています
ID照会によりfeatureを取得します。 ※照会できなかった場合はnullが返却されます。
インターフェースの定義
public static byte[] mtcAiQueryFeature (String featureId)
parameter:
Name
Remark
featureId
feature ID
※32bytesが上限
return:
Status Code
Remark
null以外
成功
null
失敗
特定の画像をライブラリ内の人物と比較することに使用し、データベース内でもっともマッチした顔データを返却します。
インターフェースの定義
public String mtcAiStaticVerify(int mode, byte[ ] imageBytes)
parameter:
Name
Remark
mode
0
比較用にカメラで画像をキャプチャします
1
比較用にホストコンピューターから画像を取り込みます
imageBytes
画像データのサイズ
※modeが1の場合は画像サイズの上限は4MB、それ以外の場合はnull
return:
Status Code
Remark
null以外
成功
null
失敗
ファームウェアアップグレードパッケージを取り込みます。
※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
レスポンスタイムアウト
取り込んだファームウェアアップグレードパッケージを適用します。適用が成功するとデバイスは再起動します。
インターフェースの定義
public int mtcSystemApplyUpgradePackage (String fileMD5)
parameter:
Name
Remark
fileMD5
アップグレードされたMD5チェック値
return:
Status Code
Remark
0
成功
1
実行失敗
-1
無効な命令
-13
レスポンスタイムアウト
再起動モードが設定されます。 ※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
レスポンスタイムアウト
インターフェースの定義
public String mtcGetDeviceSN( )
parameter:
なし
return
Status Code
Remark
null以外
成功
null
失敗
インターフェースの定義
public String mtcSystemVersionInfoGet( )
parameter:
なし
return:
Status Code
Remark
null以外
成功
null
失敗
コールバックインターフェースを登録すると、認証結果がリアルタイムで返送されます。カスタムインターフェイス関数で独自の処理ロジックを実装できます。なお、認証結果が失われる可能性があるためコールバックの処理操作に時間がかかりすぎないように注意してください。
インターフェースの定義
public void setReceiveCallback(IReceiveCallback callback)
parameter:
Name
Remark
callback
登録されたコールバック関数
コールバックに関するインターフェースプロトタイプは以下の通りです。
CAMERAをホストコンピューターに接続した後、デバイス自体をシリアルデバイスノードとして認証する必要があります。接続先となるホストコンピューターはACMをサポートする必要があります。デバイスマウント後のデフォルトノードパスは/ dev / ttyACM0です。アクセス後にデバイスが通信できない場合は、正常にマウントされているか、ノードに読み取り/書き込み/実行権限があるかどうかを確認してください。
以下は確認するための実行コマンドの一例です。
項目
説明
1
IRカメラ
2
RGBカメラ
3
LEDライト
4
光センサー
5
赤外線LED
6
赤外線LED
7
Micro-USB Type-B端子
1) 説明 : ログパラメータの設定
2) 関数 : int SetLogConfig(int nLogLever = 1, int nLogTarget = 2);
3) パラメータ :
nLogLever
int
nLogTatget
int
0 :LOG_LEVER_TRACE
TRACE DEBUG INFO WARN ERROR FATALレベルのログ出力
1 :LOG_LEVER_DEBUG
DEBUG INFO WARN ERROR FATALレベルのログ出力
2: LOG_LEVER_INFO
INFO WARN ERROR FATALレベルのログ出力
3 : LOG_LEVER_WARN
WARN ERROR FATALレベルのログ出力
4 :LOG_LEVER_ERROR
ERROR FATALレベルのログ出力
5 : LOG_LEVER_FATAL
FATAL levelレベルのログ出力
6 : LOG_LEVER_NONE
ログ出力しないレベルのログ出力
0 : LOG_TARGET_CONSOLE
コンソールへのログ出力
1 : LOG_TARGET_FILE
ファイルへのログ出力
2 : LOG_TARGET_ALL
コンソール及びファイルへのログ出力
4) 戻り値 :
成功
0x00
失敗
0x01
1) 説明 : ログパラメータの取得
2) 関数 : int GetLogConfig(int* pLogLever, int* pLogTarget);
3) パラメータ :
pLogLever
Int*
pLogTarget
Int*
0 :LOG_LEVER_TRACE
TRACE DEBUG INFO WARN ERROR FATALレベルのログ出力
1 :LOG_LEVER_DEBUG
DEBUG INFO WARN ERROR FATALレベルのログ出力
2: LOG_LEVER_INFO
INFO WARN ERROR FATALレベルのログ出力
3 : LOG_LEVER_WARN
WARN ERROR FATALレベルのログ出力
4 :LOG_LEVER_ERROR
ERROR FATALレベルのログ出力
5 : LOG_LEVER_FATAL
FATAL levelレベルのログ出力
6 : LOG_LEVER_NONE
ログ出力しないレベルのログ出力
0 : LOG_TARGET_CONSOLE
コンソールへのログ出力
1 : LOG_TARGET_FILE
ファイルへのログ出力
2 : LOG_TARGET_ALL
コンソール及びファイルへのログ出力
4) 戻り値 :
成功
0x00
失敗
0x01
1) 説明 : デバイスの初期化。ログ出力機能が有効の場合、本関数を呼ぶとSDKのバージョンもログに出力される
2) 関数 : void* Init();
3) パラメータ : null
4) 戻り値 : null
1) 説明 : Init()の削除
2) 関数 : int DeInit(void* dev);
3) パラメータ : handle*
4) 戻り値 : null
1) 説明 : 現在システムに接続されているデバイスのリストを照会します。カメラのフレンドリ名はvideoDevBufに保存され、serialBufの主な保存形式は "|"で区切られます。たとえば、serialBufは "COM0 |COM1| COM4"で、Linuxの"ttyACM0| ttyACM1"に相当します。
2) 関数 : int EnumDevice(char *videoDevBuf, int videoDevSize, char *serialBuf, int serialSize);
3) パラメータ :
videoDevBuf
char*
"|"で分離されます。文字列はUVC Cameraなどが該当します。
videoDevSize
int
serialBuf
uchar*
serialSize
int
"|"で分離されます。例えばCOM1|COM3のようになります。
4) 戻り値 :
成功
0x00
失敗
-1
1) 説明 : シリアルに接続
2) 関数 : int ConnectSerial(void* dev, const char* portName);
3) パラメータ :
dev
handle*
portName
const char*
Windowsでは "comX", Linuxでは"ttyACM*"
4) 戻り値 :
成功
0x00
失敗
-1
1) 説明 : カメラに接続
2) 関数 : int ConnectCamera(void* dev, const char* mediaName);
3) パラメータ :
dev
handle*
mediaName
const char*
Windowsでは "uvcCamera"
4) 戻り値 :
成功
0x00
失敗
-1
1) 説明 : シリアル
2) 関数 : int DisconnectSerial(void* dev);
3) パラメータ :
dev
handle*
4) 戻り値 :
成功
0x00
失敗
-1
1) 説明 : カメラを閉じる
2) 関数 : int DisconnectCamera(void* dev);
3) パラメータ :
dev
handle*
4) 戻り値 :
成功
0x00
失敗
-1
1) 説明 : 画像のフレームと検証情報を取得します。画像の保存形式はビットマップで、順序はBBGGRRAAです。このAPIを呼ぶ場合は、最新の画像を取得するためにこのインターフェイスをポーリングする必要があります。 それらの1つのバッファサイズをゼロに設定して、他の1つだけを取得できます。
例:imageBufとimageSizeを0とし、verifyBufを通常どおり渡すと、画像の代わりに顔認識情報のみを取得できます。
2) 関数 : int GetFrame(void* dev, char* imageBuf, int imageSize, char* verifyBuf, int verifySize);
3) パラメータ :
imageBuf
char*
imageSize
int
verifyBuf
char*
verifySize
int
4) 戻り値 :
成功
0x00
バッファが小さすぎるか、画像サイズと一致しません
0x01
検証情報バッファが小さすぎます
0x02
失敗
-1
verifyBufは、デバイスから送信された検証情報を格納します。形式はjsonです。
各フィールドは以下を参照:
face_info
array
認識されたすべての顔データが含まれています
rect
object
顔の長方形の座標
bottom
int
right
int
left
int
top
int
recognition_status
int
認識結果の状態値
0:まだ認識されていない
1:非生体
2:Kuzhongren
3:未登録者
4:認識されたことを示す
recognition_id
string
recognize_score
float
このアイテムは最初の成功で利用可能になります(recognition_statusが2の場合、recognition_statusが4の場合はありません)
liveness_score
float
Recognition_scoreと同様
1) 説明 : フレームの幅/高さを取得します。必要なバッファのサイズは次のとおりです。widthheight4
2) 関数 : int GetResolution(void* dev, int* width, int* height);
3) パラメータ :
dev
handle*
width
int*
height
int*
4) 戻り値 :
成功
0x00
失敗
-1
1) 説明 : UVCの切り替え
2) 関数 : int SetUvcSwitch(void* dev, char nMode);
3) パラメータ :
dev
handle*
nMode
int
0x00:プッシュを開く
0x01:プッシュをオフにする
4) 戻り値 :
成功
0x00
失敗
0x01
1) 説明 : カメラの切り替え
2) 関数 : int SetCameraStream(void* dev, char isCloseCamera, char nCameraType);
3) パラメータ :
dev
handle*
isCloseCamera
int*char
0x00:カメラの電源を入れます
0x01:カメラの電源を切ります
nCameraType
char
0x00:RGBカメラ
0x01:IRカメラ
4) 戻り値 :
成功
0x00
失敗
0x01
1) 説明 : カメラの切り替え状態を取得
2) 関数 : int GetCameraStream(void* dev, char nCameraType, uchar* isOpenCamera);
3) パラメータ :
dev
handle*
nCameraType
char
0x00:RGBカメラ
0x01:IRカメラ
isOpenCamera
uchar*
0x00:開いていません
0x01:すでに開いています
4) 戻り値 :
成功
0x00
失敗
0x01
1) 説明 : RGBとIRカメラの切り替え
2) 関数 : int SwitchCamRgbIr(void* dev, char nMode);
3) パラメータ :
dev
handle*
nMode
char
0x00:RGBの切り替え
0x01:IRの切り替え
4) 戻り値 :
成功
0x00
失敗
0x01
1) 説明 : ストリームフォーマットの設定
2) 関数 : int SetStreamFormat(void* dev, char nMode);
3) パラメータ :
dev
handle*
nMode
char
0x00:MJPEG
0x01:H.264
4) 戻り値 :
成功
0x00
失敗
0x01
未知のエラー
-1
1) 説明 : アンチフリッカー状態の取得
2) 関数 : int GetDeviceNoFlickerHz(void* dev, char nCameraId, uchar* pHz, uchar* isEnable);
3) パラメータ :
dev
handle*
nCameraId
char
0x00:IDが0のカメラ
0x01:IDが1のカメラ
pHz
char
0x00:50HZ
0x01:60HZ
isEnable
char
0x00:無効
0x01:有効
4) 戻り値 :
成功
0x00
失敗
0x01
未知のエラー
-1
ret_buf_sizaが小さすぎます
-2
1) 説明 : アンチフリッカー状態の設定
ai_configのae_modeフィールドの値が0の場合、ここでの設定が有効になります。ae_modeフィールドが1の場合、ai_config(setReoconfig関数)内でae_flicker_freqを構成する必要があります。
2) 関数 : int SetDeviceNoFlickerHz(void* dev, char nCameraId, char nHz, char isEnable);
3) パラメータ :
dev
handle*
nCameraId
char
0x00:IDが0のカメラ
0x01:IDが1のカメラ
nHz
char
0x00:50HZ
0x01:60HZ
isEnable
char
0x00:無効
0x01:有効
4) 戻り値 :
成功
0x00
失敗
0x01
未知のエラー
-1
1) 説明 : 画面サイズを設定し、360Pを切り替えた直後にUSB電源を抜き差ししないように注意し、モジュールが設定を同期するまで5秒間待ちます。
2) 関数 : int SetResolution(void* dev, char nMode);
3) パラメータ :
dev
handle*
nMode
char
0x01:360P
0x00:720P
4) 戻り値 :
成功
0x00
失敗
0x01
未知のエラー
-1
1) 説明 : フレームレートの取得
2) 関数 : int GetFrameRate(void* dev, uint* pFrameRate);
3) パラメータ :
dev
handle*
pFrameRate
uint*
データ長:4バイト
4) 戻り値 :
成功
0x00
失敗
0x01
未知のエラー
-1
1) 説明 : フレームレートの設定
2) 関数 : int SetFrameRate(void* dev, int nFrameRate);
3) パラメータ :
dev
handle*
pFrameRnFrameRateate
int
フレームレートを10〜25で設定
4) 戻り値 :
成功
0x00
失敗
0x01
未知のエラー
-1
フレームレートエラー
-2
1) 説明 : IRライトの明るさを取得します
2) 関数 : int GetIRlight(void* dev, uchar* pLuminance,uchar* pCloseTime);
3) パラメータ :
dev
handle*
pLuminance
uchar*
pCloseTime
uchar*
4) 戻り値 :
成功
0x00
照会失敗
0x01
未知のエラー
-1
ret_buf_sizaが小さすぎます
-2
1) 説明 : IRライトの明るさを設定します。
2) 関数 : int SetIRlight(void* dev, uchar nLuminance, uchar nCloseTime);
3) パラメータ :
dev
handle*
nLuminance
uchar
IRライトの明るさ
0〜200
nCloseTime
uchar
IRライトは自動的にオフになります。
時間の単位は秒、範囲は0x78で、0となった場合、検出動作は実行されません。
4) 戻り値 :
成功
0x00
失敗
0x01
未知のエラー
-1
輝度失敗
-2
1) 説明 : キャプチャとその結果をストレージへ保存
2) 関数 : int AddFace(void* dev, const void* pID, uint nIDLength);
3) パラメータ :
dev
handle*
pID
const void*
nIDLength
uint
4) 戻り値 :
成功
0x00
追加に失敗しました
顔が見つかりません
0x01
追加に失敗しました
顔が複数あります
0x02
追加に失敗しました
顔が小さすぎます
0x03
追加に失敗しました
Alingスコアが低い
0x04
追加に失敗しました
プロファイルを確認してください
0x05
追加に失敗しました
顔がぼやけています
0x06
追加に失敗しました
顔が遠すぎます
0x07
追加に失敗しました
IDの初期化に失敗しました
0x08
追加に失敗しました
関数入力エラー
0x09
追加に失敗しました
機能値が存在しません
0x0A
追加に失敗しました
暗号化チップエラー
0x0B
追加に失敗しました
このIDは存在しません
0x0C
追加に失敗しました
ライブラリが上限に達しました
0x0F
追加に失敗しました
無効なID
0x10
追加に失敗しました
ファイルの保存に失敗しました
0x11
追加に失敗しました
ファイルタイプがjpg形式ではありません
0x12
追加に失敗しました
RPC呼び出しに失敗しました
0x13
追加に失敗しました
不明なタグ
0x14
追加に失敗しました
AIサービスは初期化を完了しませんでした
0xA0
1) 説明 : ホストコンピュータからのベースマップをライブラリに転送
ベースマップの高さと幅は1080p未満である必要があります。
2) 関数 : int AddFaceByImage(void* dev, const void* pID, uint nIDLength, const void* pImage, uint nImageLength);
3) パラメータ :
dev
handle*
pID
const void*
データ長:4バイト
nIDLength
uint
pImage
const void*
取得画像データ
nImageLength
uint
pImageのデータ長
4) 戻り値 :
成功
0x00
追加に失敗しました
顔が見つかりません
0x01
追加に失敗しました
顔が複数あります
0x02
追加に失敗しました
顔が小さすぎます
0x03
追加に失敗しました
Alingスコアが低い
0x04
追加に失敗しました
プロファイルを確認してください
0x05
追加に失敗しました
顔がぼやけています
0x06
追加に失敗しました
顔が遠すぎます
0x07
追加に失敗しました
IDの初期化に失敗しました
0x08
追加に失敗しました
関数入力エラー
0x09
追加に失敗しました
機能値が存在しません
0x0A
追加に失敗しました
暗号化チップエラー
0x0B
追加に失敗しました
このIDは存在しません
0x0C
追加に失敗しました
ライブラリが上限に達しました
0x0F
追加に失敗しました
無効なID
0x10
追加に失敗しました
ファイルの保存に失敗しました
0x11
追加に失敗しました
ファイルタイプがjpg形式ではありません
0x12
追加に失敗しました
RPC呼び出しに失敗しました
0x13
追加に失敗しました
不明なタグ
0x14
追加に失敗しました
AIサービスは初期化を完了しませんでした
0xA0
1) 説明 : ライブラリにキャプチャを行いベースマップを出力する
retポインタが戻った後、上位のコンピュータはメモリを解放する必要があります
2) 関数 : int AddFaceReturnImage(void* dev, const void* pID, uint nIDLength, void** ppImage, uint *pImageLength);
3) パラメータ :
dev
handle*
pID
const void*
データ長:4バイト
nIDLength
uint
ppImage
void**
取得画像画像データを受信します(NULLポインタアドレスを渡します)
pImageLength
uint*
ppImageのデータ長
4) 戻り値 :
成功
0x00
追加に失敗しました
顔が見つかりません
0x01
追加に失敗しました
顔が複数あります
0x02
追加に失敗しました
顔が小さすぎます
0x03
追加に失敗しました
Alingスコアが低い
0x04
追加に失敗しました
プロファイルを確認してください
0x05
追加に失敗しました
顔がぼやけています
0x06
追加に失敗しました
顔が遠すぎます
0x07
追加に失敗しました
IDの初期化に失敗しました
0x08
追加に失敗しました
関数入力エラー
0x09
追加に失敗しました
機能値が存在しません
0x0A
追加に失敗しました
暗号化チップエラー
0x0B
追加に失敗しました
このIDは存在しません
0x0C
追加に失敗しました
ライブラリが上限に達しました
0x0F
追加に失敗しました
無効なID
0x10
追加に失敗しました
ファイルの保存に失敗しました
0x11
追加に失敗しました
ファイルタイプがjpg形式ではありません
0x12
追加に失敗しました
RPC呼び出しに失敗しました
0x13
追加に失敗しました
不明なタグ
0x14
追加に失敗しました
AIサービスは初期化を完了しませんでした
0xA0
1) 説明 : uploadAddImageByPcSliceは、uploadPackageSliceと同様に、スライスでアップグレードパッケージをアップロードするようにスライス(スライスあたり最大8080バイト)を介して大きな画像データ(最大サポート4M)を送信します。画像にaddImageByPcを使用することはお勧めしません。
2) 関数 : int GetFrameRate(void* dev, uint* pFrameRate);
3) パラメータ :
dev
handle*
pID
const void*
nIDLength
uint
nImageTotalLength
uint
画像全体のデータ長
nPosition
uint
データの開始位置(たとえば、最初のデータ片は0から始まり、2番目のデータ片は0 +最初のピースの長さです)
isLastSlice
int
最後のデータ片
0x00 : No
0x01 : Yes
pSliceData
const void*
データ片
nSliceDataLength
uint
データ片の長さ
4) 戻り値 :
成功
0x00
追加に失敗しました
顔が見つかりません
0x01
追加に失敗しました
顔が複数あります
0x02
追加に失敗しました
顔が小さすぎます
0x03
追加に失敗しました
Alingスコアが低い
0x04
追加に失敗しました
プロファイルを確認してください
0x05
追加に失敗しました
顔がぼやけています
0x06
追加に失敗しました
顔が遠すぎます
0x07
追加に失敗しました
IDの初期化に失敗しました
0x08
追加に失敗しました
関数入力エラー
0x09
追加に失敗しました
機能値が存在しません
0x0A
追加に失敗しました
暗号化チップエラー
0x0B
追加に失敗しました
このIDは存在しません
0x0C
追加に失敗しました
ライブラリが上限に達しました
0x0F
追加に失敗しました
無効なID
0x10
追加に失敗しました
ファイルの保存に失敗しました
0x11
追加に失敗しました
ファイルタイプがjpg形式ではありません
0x12
追加に失敗しました
RPC呼び出しに失敗しました
0x13
追加に失敗しました
不明なタグ
0x14
追加に失敗しました
AIサービスは初期化を完了しませんでした
0xA0
1) 説明 : baseライブラリからの顔データ削除
2) 関数 : int DeleteFace(void* dev, int nMode, const void* pID = nullptr, uint nIDLength = 0);
3) パラメータ :
dev
handle*
nMode
const void*
0x00 : 全ての画像を削除
0x01 : 1枚の画像を削除
pID
const void*
オプション
nIDLength
uint
オプション
4) 戻り値
成功
0x00
失敗
0x01
未知のエラー
-1
画像IDが残っている
-2
1) 説明 : ベースデータベースのFaceIDを取得し、json形式で返します。 Char *は684K確保する必要があります。
2) 関数 : int QueryFace(void* dev, const void* pID, uint nIDLength, int nMode = 0);
3) パラメータ :
dev
handle*
pID
const void*
必須
nIDLength
uint
必須
nMode
int
必須
初期値 : 0
IDにデータベースを
4) 戻り値
成功
0x00
アルゴリズムIF呼び出し失敗
0x01
ファイルの長さの取得失敗
0x02
無効なデータ位置
0x03
ファイルの読み込み失敗
0x04
未知のエラー
-1
ret_buf_sizeのサイズが十分ではない
-2
1) 説明 : モジュールスナップショットによってインポートされた静的比較(断片化なし)
2) 関数 : int StaticFaceCompare(void* dev, void** ppResImage, uint* pResImageLength);
3) パラメータ :
dev
handle*
ppResImage
void**
出力パラメータ
返却される比較結果データ
pResImageLength
uint
ppResImageのアプリケーションスペースサイズの比較結果
4) 戻り値
成功
0x00
失敗
0x01
未知のエラー
-1
1) 説明 : 静的比較(断片化なし)ホストコンピューターは画像をインポート
2) 関数 : int StaticFaceCompareReturnImage(void* dev, const void* pImage, uint nImageLength, void** ppResImage, uint* pResImageLength);
3) パラメータ :
dev
handle*
pImage
const void*
入力画像データ
nImageLength
uint
挿入された画像データの長
ppResImage
void**
出力パラメータ
返却された比較結果データ
pResImageLength
uint
比較結果データ長ppResImageのアプリケーションスペースサイズ
4) 戻り値
成功
0x00
失敗
0x01
未知のエラー
-1
1) 説明 : 製的比較
2) 関数 : int StaticFaceCompareSlice(void* dev, int nMode, uint nImageTotalLength, uint nPosition, int isLastSlice,const void* pSliceData, uint nSliceDataLength, void** ppResImage, uint* pResImageLength);
3) パラメータ :
dev
handle*
nMode
const void*
比較モード
0x00:モジュールスナップショットによってインポート
0x01:ホストコンピューターは画像をインポート
nImageTotalLength
uint
取り込んだ画像の全体の長さ
nPosition
uint
現在のデータセグメント開始ビット
isLastSlice
int
0x00 : 最後ではない
0x01 : 最後である
pSliceData
const void*
取り込まれた画像データ
nSliceDataLength
uint
取り込まれた画像データ長
ppResImage
void**
結果データの長さを比較すると、ライブラリ内のIDの数が空の場合、実行は成功しますが、結果の長さは0です。
pResImageLength
uint*
結果データの比較
4) 戻り値
成功
0x00
失敗
0x01
未知のエラー
-1
1) 説明 : 特徴値を使用してベースデータベースの顔データを追加し、ベースデータベースIDと顔の特徴値に従って顔情報をベースデータベースに入力します。
2) 関数 : int AddFeature(void* dev, const void* pID, uint nIDLength, const void* pFeature, uint nFeatureLength);
3) パラメータ :
dev
handle*
pID
const void*
機能値を使用してベースライブラリを追加します。pIDはaddFaceのIDと同じです。
nIDLength
uint
pIDの長さ
pFeature
const void*
特性データ
長さが約1500バイトのbase64の文字列
nFeatureLength
uint
pFeatureの長さ
4) 戻り値
成功
0x00
失敗
0x01
未知のエラー
-1
1) 説明 : 基本データベースIDに従って特徴値を照会し、基本データベースIDを使用して、検索データベースの顔情報の顔特徴値を照会します。
2) 関数 : int QueryFeature(void* dev, const void* pID, uint nIDLength, void* pFeature, uint nFeatureLength);
3) パラメータ :
dev
handle*
pID
const void*
機能値を使用してベースライブラリを追加します。pIDはaddFaceのIDと同じです。ce
nIDLength
uint
pIDの長さ
pFeature
const void*
特性データ
長さが約1500バイトのbase64の文字列
nFeatureLength
uint
pFeatureの長さ
4) 戻り値
成功
0x00
失敗
0x01
未知のエラー
-1
1) 説明 : 1:N 顔認証
2) 関数 : int StartOnetoNumRecognize(void* dev, int nRecMode, int nMulMode);
3) パラメータ :
dev
handle*
nRecMode
const void*
1 : 生体と認識モード
0 : 認識モード
nMulMode
int
1 : マルチプレイヤーモード
0 : シングルプレイヤーモード
4) 戻り値
成功
0x00
正常に起動します
0x01
非対応
0x02
認識ライブラリが異常です
0x03
この認証モードは非対応です
未知のエラー
-1
StartOnetoNumRecognize()
1) 説明 : 1:N 顔認証
2) 関数 : int StartOnetoNumRecognize(void* dev, int nRecMode, int nMulMode);
3) パラメータ :
dev
handle*
nRecMode
const void*
1 : 生体と認識モード
0 : 認識モード
nMulMode
int
1 : マルチプレイヤーモード
0 : シングルプレイヤーモード
4) 戻り値
成功
0x00
正常に起動します
0x01
非対応
0x02
認識ライブラリが異常です
0x03
この認証モードは非対応です
未知のエラー
-1
1) 説明 : 1:1の顔認識を開始します(断片化なし)
2) 関数 : int StartOnetoNumRecognize(void* dev, int nRecMode, int nMulMode);
3) パラメータ :
dev
handle*
nRecMode
1 : 生体と認識モード
0 : 認識モード
nMulMode
int
1 : マルチプレイヤーモード
0 : シングルプレイヤーモード
pImage
const void*
1:1の顔認識比較ベース画像データを開始します
nImageLength
uint
pImageの長さ
4) 戻り値
成功
0x00
正常に起動します
0x01
非対応
0x02
認識ライブラリが異常です
0x03
この認証モードは非対応です
未知のエラー
-1
1) 説明 : 1:1の顔認識(断片化)を開始し、1:1の認識モードを開始すると、動的に切り替えることができます。
2) 関数 : int StartOnetoOneRecognizeSlice(void* dev, int nRecMode, int nMulMode, uint nImageTotalLength, uint nPosition,int isLastSlice, const void* pSliceData, uint nSliceDataLength);
3) パラメータ :
dev
handle*
nRecMode
const void*
1 : 生体と認識モード
0 : 認識モード
nMulMode
int
1 : マルチプレイヤーモード
0 : シングルプレイヤーモード
nImageTotalLength
uint
ベースライブラリの画像の全長を比較する
nPosition
uint
現在のデータセグメント開始ビット
isLastSlice
int
0x00:最後ではない
0x01:最後
pSliceData
const void*
ベースライブラリの画像フラグメントのコンテンツを比較します。フラグメントは8Kを超えてはなりません。
nSliceDataLength
uint
ベースライブラリの画像フラグメントのコンテンツの長さを比較します
4) 戻り値
成功
0x00
正常に起動します
0x01
顔なし
0x02
複数の顔
0x03
顔が小さすぎる
0x04
Alingスコアが低い
0x05
プロフィール
0x06
ぼやけた顔
0x07
顔が遠すぎる
1) 説明 : 顔認識を継続する
2) 関数 : int ResumeRecognize(void* dev);
3) パラメータ :
dev
handle*
4) 戻り値
成功
0x00
成功継続
0x01
失敗継続
未知のエラー
-1
1) 説明 : 顔認識を一時停止します
2) 関数 : int PauseRecognize(void* dev);
3) パラメータ :
dev
handle*
4) 戻り値
成功
0x00
正常に中断されました
0x01
正常に中断されました
未知のエラー
-1
1) 説明 : 顔認識ステータスの照会
2) 関数 : int QueryRecognize(void* dev);
3) パラメータ :
dev
handle*
4) 戻り値
成功
0x00
顔認証オープン
0x01
顔認証OFF
未知のエラー
-1
1) 説明 : 顔認識の構成を設定する
2) 関数 : int SetRecConfig(void* dev, const void* pData, uint nDataLength, int nConfigType = 0);
3) パラメータ :
dev
handle*
pData
const void*
Jsonデータ
nDataLength
uint
Jsonデータ長
nConfigType
int
0x00 : アルゴリズム構成
4) 戻り値
成功
0x00
設定成功
0x01
設定失敗
未知のエラー
-1
1) 説明 : 顔認識構成を取得する
2) 関数 : int StartOnetoNumRecognize(void* dev, int nRecMode, int nMulMode);
3) パラメータ :
dev
handle*
pData
void*
Jsonデータ
nDataLength
uint
Jsonデータ長
nConfigType
int
0x00 : アルゴリズム構成
4) 戻り値
成功
0x00
設定成功
0x01
設定失敗
未知のエラー
-1
1) 説明 : フレームデータに認識結果を挿入するスイッチをオンにする(顔認識データはこのインターフェースを呼び出すことで取得でき、顔認識情報はgetFrame関数で取得できます)
2) 関数 : int OpenAutoUploadFaceInfoInFrame(void* dev);
3) パラメータ :
dev
handle*
4) 戻り値
成功
0x00
正常処理
0x01
処理失敗
未知のエラー
-1
1) 説明 : フレームデータスイッチへの認識結果をオフにする
2) 関数 : int CloseAutoUploadFaceInfoInFrame(void* dev);
3) パラメータ :
dev
handle*
4) 戻り値
成功
0x00
正常処理
0x01
処理失敗
未知のエラー
-1
1) 説明 : IDリストの出力
2) 関数 : int GetDeviceFaceID(void* dev, void* pIDList, uint nIDListLength);
3) パラメータ :
dev
handle*
pIDList
void*
IDリストのデータ内容
nIDListLength
uint
IDリストのデータ長
4) 戻り値
成功
0x00
正常処理
0x01
アルゴリズムインターフェイスの呼び出しに失敗しました
0x02
ファイルの長さを取得できませんでした
0x03
無効なデータ配置
0x04
ファイルの読み取りエラー
未知のエラー
-1
1) 説明 : 顔認証回数を設定する
2) 関数 : int SetRecognizeCount(void* dev, uchar nRecCount, uchar nLivingCount);nRecCount
3) パラメータ :
dev
handle*
nRecCount
uchar
1-10:認識回数
デフォルトは10回
nLivingCount
uchar
1-10:生体検知回数
デフォルトは10回
4) 戻り値
成功
0x00
正設に設定
0x01~0x16
失敗
未知のエラー
-1
1) 説明 : テンプレートの更新を設定する。
設定を更新するたびに、モジュールを再起動して有効にする必要があることに注意してください。
2) 関数 : int SetTemplateUpdate(void* dev, uchar isUpdate);
3) パラメータ :
dev
handle*
isUpdate
uchar
0x00:更新を閉じる
0x01:更新を開く(デフォルトの更新を開く)
4) 戻り値
成功
0x00
正常処理
0x01~0x16
アルゴリズム定義エラー
1) 説明 : テンプレートアップデートの取得
2) 関数 : int GetTemplateUpdate(void* dev, uchar* isUpdate); 3)parameter:
3) パラメータ :
dev
handle*
pIDisUpdateList
uchar*
クエリテンプレートが更新されているかどうかを返します。1バイト
0x00:更新を閉じる
0x01:更新を開く
4) 戻り値
成功
0x00
正常処理
0x01~0x16
アルゴリズム定義エラー
1) 説明 : QRコード認証パラメータの設定
2) 関数 : int SetQRCodeSwitch(void* dev, uchar isOpen, uchar interval);
3) パラメータ :
dev
handle*
isOpen
uchar
QRコード認識機能スイッチ
0x00:閉じる
0x01:開く
interval
uchar
識別レポートの間隔を設定します。デフォルトは5秒です。
4) 戻り値
成功
0x00
正常処理
失敗
0x001
処理失敗
1) 説明 : ベースライブラリ数を取得する
2) 関数 : int GetDeviceFaceLibraryNum(void* dev, uint *nFaceNum);
3) パラメータ :
dev
handle*
nFaceNum
uint
照会されたベースライブラリの数
4) 戻り値
成功
0x00
参照成功
失敗
0x01
参照失敗
1) 説明 : 単一の認識結果を取得する。
ビデオで顔が検出された場合、認識結果が返されます。ビデオで顔が検出されない場合、返される文字列は空です。
2) 関数 : int GetSingleRecognize(void* dev, void* pData, uint nDataLength);
3) パラメータ :
dev
handle*
pData
void*
nDataLength
uint
4) 戻り値
成功
0x00
成功
0x01
失敗
1) 説明 : コールバックレポート識別関数を登録する。
(この関数は、アクティブにレポートするために必要です。コールバックは識別結果データを取得します。デモのgetReoReportDataHandleコールバック関数のソースコードを参照できることに注意してください。)
2) 関数 : void RegisterRecoReportCb(void* dev, CallBackPtr_t handler_func);
3) パラメータ :
dev
handle*
pDahandler_functa
voidCallBackPtr_t*
4) 戻り値
void
1) 説明 : コールバックレポート追跡関数を登録する。
(この関数は、追跡結果データを取得するためにコールバックをアクティブにレポートするために必要です。デモでgetReoTrackHandleコールバック関数のソースコードを参照できることに注意してください。)
2) 関数 : void RegisterTrackReportCb(void* dev, CallBackPtr_t handler_func);
3) パラメータ :
dev
handle*
handler_func
CallBackPtr_t
コールバック関数ハンドル
4) 戻り値
void
1) 説明 : コールバックを登録して画像関数を報告する。
(この関数はアクティブに報告するために必要であり、コールバックは認識画像の結果データを取得するために使用されます。デモでgetReoImageHandleコールバック関数のソースコードを参照できることに注意してください。 )
2) 関数 : void RegisterImageReportCb(void* dev, CallBackPtr_t handler_func);
3) パラメータ :
dev
handle*
handler_func
CallBackPtr_t
コルバック関数ハンドラ
4) 戻り値
void
0x00
成功
1) 説明 : コールバックを登録して機能値関数をレポートする。
(この関数はアクティブにレポートするために必要です。コールバックは識別機能値の結果データを取得します。デモでgetReoFeatureHandleコールバック関数のソースコードを参照できることに注意してください)。
モジュール認識結果が多すぎると、認識機能値の一部が報告されません。したがって、アクティブレポートスイッチ機能のopenAutoUploadAiInfoパラメーターはモード0x02にすることをお勧めします。また、デモコール設定も同様です。
2) 関数 : void RegisterFeatureReportCb(void* dev, CallBackPtr_t handler_func);
3) パラメータ :
dev
handle*
handler_func
CallBackPtr_t
コールバック関数のハンドル
4) 戻り値
void
0x00
成功
1) 説明 : コールバックを登録してQRコード関数を報告する。
(この関数はアクティブに報告するために必要です。コールバックはQRコード認識の結果データを取得するために必要です。デモでgetQRCodeReportHandleコールバック関数のソースコードを参照できることに注意してください。)
SetQRCodeSwitch関数を呼び出してQRコードレポートスイッチをオンにすると、コールバック関数はQRコードの結果データを受信できます
2) 関数 : int GetSingleRecognize(void* dev, void* pData, uint nDataLength);
3) パラメータ :
dev
handle*
handler_func
CallBackPtr_t
コールバック関数のハンドル
4) 戻り値
void
ビデオフレーム検証情報の例:
{ "track_info": [ { "recognize_score": 0.986865, "liveness_score": 0.967434, "recognition_id": "fanzhao", "recognition_status": 0, "mask_sign": -1, "safety_hat": -1, "face_info": { "rect": { "bottom": 1113, "left": 30, "right": 442, "top": 637}, "track_id": 1196 } } ] }
Recognition_status(可能な値は0、1、2、3、4)
liveness_score(活性マッチングスコア、認識が成功した後にのみ表示されます)
Recognition_score(認識が成功した後にのみ表示される一致スコアを識別します)
face_info(顔情報)
rect(顔の座標)
track_id(顔追跡ID)
mask_signはマスクの着用判定
-1 : マスクを着用するかどうかを判断しませんでした
1 : マスクを着用しないと判断します
2 : マスクを着用するかどうかを判断します
3 : マスクを着用していると判断されますが、マスクはきれいに着用されていません
Reoconfig設定を設定する必要があります。 enable_mask_signがfalseに設定されている場合、mask_signは常に-1になります。マスクチェックがオンになっている場合は、認識スコアとライブスコア項目を使用してjsonを識別することをお勧めします。jsonは、認識スコアとライブスコア項目を含まない追跡結果ではありません。デモのソースコードを参照できます。
安全ヘルメットを着用するかどうか
ヘルメット検出をオンにすることはお勧めしません。デフォルトではオフになっています。
1) 説明 : デバイスの接続性をテストする
2) 関数 : int Ping(void* dev, const void* pTestData, uint nTestDataLength);
3) パラメータ :
dev
handle*
pTestData
const void*
オプション
nTestDataLength
uint
オプション
デフォルト0
4) 戻り値
成功
0x00
失敗
0x01
1) 説明 : アップグレードパッケージのアップロードを開始する。
2) 関数 : int UploadPackageSlice(void* dev, uint nPosition, const void* pPacketData, uint nPacketDataLength);
3) パラメータ :
dev
handle*
nPosition
uint
現在のデータの開始位置。たとえば、最初のピースは0で、2番目のピースは0に最初のピースの長さを加えたものです
pPacketData
cons void*
nPacketDataLength
uint
4) 戻り値
成功
0x00
0x00より小さい値
1) 説明 : モジュールハードウェアのバージョン番号を取得する。
2) 関数 : int GetDevModelAppVer(void* dev, void* pModelVersion, uint nModelVersionLength);
3) パラメータ :
dev
handle*
pModelVersion
void*
バージョン番号データ
nModelVersionLength
uint
バージョン番号データ長
4) 戻り値
成功
0x00
成功
0x01
呼び出し失敗
1) 説明 : md5値を16進数に変換し、小文字のままにしてください。そうでない場合、デバイスはそれを認識しません。
2) 関数 : int ApplyUpgrade(void* dev, const void* pHashData, uint nHashDataLength);
3) パラメータ :
dev
handle*
pHashData
const void*
nHashDataLength
uint
4) 戻り値
成功
0x00
0x01
1) 説明 : システムバージョン情報を照会する。
2) 関数 : int GetDeviceVersion(void* dev, void* pVersion, uint nLength);
3) パラメータ :
dev
handle*
pVersion
void*
システムバージョン情報
以下のものが含まれる
software_version hardware_version model
vendor= BUILD_TIME
nDataLength
uint
アプリケーションスペースサイズ
4) 戻り値
成功
0x00
照会成功
0x01
照会失敗
照会失敗
0x02
未知の
-1
ret_buf_size spaceが小さすぎます
-2
1) 説明 : システムを再起動する。
2) 関数 : int Reboot(void* dev, int nMode);
3) パラメータ :
dev
handle*
nMode
int
0x00:直接再起動
0x01:Uディスクユーザーモードに切り替えて再起動します
0x02:非Uディスクユーザーモードで再起動します
0x03:Uディスクファクトリモードに切り替えて再起動します
0x04:非Uディスクファクトリモードで再起動
4) 戻り値
成功
0x00
参照失敗
0x01
失敗
未知のエラー
-1
1) 説明 : システムを再起動する(再起動時の非Uディスクファクトリモードの再起動に対応します)
2) 関数 : int SetUmodeToEngin(void* dev);
3) パラメータ :
dev
handle*
4) 戻り値
成功
0x00
正常処理
0x01
処理失敗
未知のエラー
-1
1) 説明 : システムを再起動する(再起動時の直接再起動に対応します)
2) 関数 : Restart the system (corresponding to the direct restart in reboot):
3) パラメータ :
dev
handle*
4) 戻り値
成功
0x00
正常処理
0x01
処理失敗
未知のエラー
-1
1) 説明 : リセットする。
2) 関数 : int Recovery(void* dev, int nMode);
3) パラメータ :
dev
handle*
nMode
int
0x00 : ユーザー構成をクリアします
0x01 : ユーザー構成を保存します
4) 戻り値
成功
0x00
正常処理
0x01
処理失敗
未知のエラー
-1
1) 説明 : デバイスのSNを取得する
2) 関数 : int GetDevSn(void* dev, char nMode, void* pDevSn, uint nDevsnLength);
3) パラメータ :
dev
handle*
nMode
char
pDevSn
void*
nDevsnLength
uint
4) 戻り値
成功
0x00
成功
0x01
失敗
未知のエラー
-1
ret_buf_sizaが過ぎます
-2
1) 説明 : デバイスのモデルを取得する
2) 関数 : int GetDevModel(void* dev, void* pDevModel, uint nDevModelLength);
3) パラメータ :
dev
handle*
pDevModel
void*
nDevModelLength
uint
4) 戻り値
成功
0x00
成功
0x01
失敗
未知のエラー
-1
ret_buf_sizaが過ぎます
-2
1) 説明 : CUP温度を照会する。
2) 関数 : int GetCpuTemperature(void* dev, uint* nTemperature);
3) パラメータ :
dev
handle*
nTemperature
uint
CPU結合部温度
4) 戻り値
成功
0x00
成功
0x01
失敗
1) 説明 : 認識結果のシリアルポートデータのアクティブなレポートスイッチをオフにする。
このインターフェイスを呼び出すと、登録コールバック関数registerRecoReportCb、registerTrackReportCb、registerImageReportCb、registerFeatureReportCbに対応する顔認識データレポートがオフになります。
2) 関数 : int CloseAutoUploadAiInfo(void* dev);
3) パラメータ :
dev
handle*
4) 戻り値
成功
0x00
成功
0x01
失敗
未知のエラー
-1
1) 説明 : 認識結果のシリアルポートデータの自動レポートスイッチをオンにする。
このインターフェイスを呼び出すと、登録コールバック関数registerRecoReportCb、registerTrackReportCb、registerImageReportCb、registerFeatureReportCbに対応する顔認識データがレポートされます。
画像と認識機能値をレポートする必要がない場合は、アクティブレポートを有効にせず、フレームデータレポートopenAutoUploadFaceInfoInFrameのみを有効にして下さい。
2) 関数 : int OpenAutoUploadAiInfo(void* dev, char nUploadMode,char nImageMode);
3) パラメータ :
dev
handle*
nUploadMode
char
0x00:すべての情報を報告する
0x02:画像と認識を報告する(このパラメーターをお勧めします。認識が多すぎると特徴値データの一部が報告されないため、デモもこのパラメーターです)
0x03:機能の値と認識を報告する
0x04:レポートの識別
nImageMode
char
0x00:RGB顔、RGB背景、およびIR画像は報告されません。
0x01:RGB顔画像データのみを報告します。
0x02:RGB背景画像データのみを報告します。
0x03:RGB顔とRGB背景画像を報告します。
0x04:IRグラフデータのみを報告します。
0x05:IR画像とRGB顔画像を報告します。
0x06:IR画像とRGB背景画像を報告します。
4) 戻り値
成功
0x00
正常処理
0x01
処理失敗
未知のエラー
-1
モードエラー
-2
Windows用SDK V3.0.0でアプリケーションを作成いただく場合はQTの開発環境で作成いただく必要があります。そのため、以下の手順を参照いただきQTの開発環境をインストールして下さい。
1. 予めC++で作成されたソースコードのビルドを行うためにMicrosoft Visual Studioをインストールしておきます(インストール時はC++によるデスクトップ開発を選択してインストールして下さい)。
2. Qtのアカウントをお持ちでない場合はアカウント作成を行います。
3. 以下のURLからQt V5.12.3のopen sourceバージョンをダウンロードします。
https://download.qt.io/archive/qt/5.12/5.12.3/
4. ダウンロードしたファイルをダブルクリックして、Qtのインストールを行います。
5. インストールが開始され、以下の画面が表示されることを確認し、Nextを選択します。
6. 事前に登録したアカウントのemailアドレスとパスワードを入力し、Nextを選択します。
7. 次へを選択します。
8. 次へを選択します。
9. MSVC 2017を選択します。WindowsOSの32bit版をお使いの場合はMSVC 2017 32-bitをチェックし、64bit版をお使いの場合はMSVC 2017 64-bitをチェックします。その後、次へを選択します。
10. 必要なライセンス形態を選択し、実際のインストールを行います。インストールが開始されると以下の画面が表示されます。
11. インストールが完了し、以下の画面が表示されることを確認したら、完了を選択します。
12. 続いて環境変数の設定を実施します。以下の画面で、変数pathにQtCreatorとMSVCのインストールパス情報を追加します。
13. インストールしたQtのアプリケーションの中からQt Creatorを起動し、以下のようにツールからオプションを選択します。
14. Kitsからキットを選択し、予めインストールされたMicosoft Visual Studioを以下のようにCompilerのC:/C++:の部分で指定します。そのOKを選択してインストール作業は完了です。
以下は、サンプルコードをビルドする際の方法となります。
1. Windows用のSDKのzipファイル:Windows_Linux_SDK_V3.0.0.zipを解凍して作成されたフォルダWindows_Linux_SDK_V3.0.0.にSource¥SenseEngineUVC¥uvcCamera.proが存在することを確認します。
確認後、uvcCamera.proをダブルクリックし、先の手順で選択したMSVC2017 64bit(または32bit)が選択されていることを確認し、以下の画面でConfigure Projectを選択します。
2. uvcCamera¥Headers¥qmtc¥mtcmanager.hの以下の赤枠のコメント内容を削除します。
3. WindowsOSの64bit版をお使いの場合はuvcCamera¥uvcCamera.pro
に、以下の赤枠の内容(DEFINES += WIN64)を追加します。
4. 以下の画面からビルドを選択し、「すべてビルド」を選択します。
5. 以下の通り、ビルドされたアプリケーションが作成されていることを確認します。確認できれば、ビルド作業は完了です。
現状リリースしているWindows SDKのみ、M20とホストWindowsマシーンとのUSBによるシリアル通信機能の実装のためにQTの機能を使用しているため、QT環境でご利用いただく必要があります。なお、次のバージョンからはこの制限がなくなる予定です。
ここでは、Windows/Linux SDKで使用可能なAPIについて説明します。
本SDKの開発環境はQT/C#/VC++/CLIを想定しています。また下記APIの戻り値については特に指定がない場合はint型です。
WindowsSDKでアプリケーションを開発するにはQtの開発環境で開発いただく必要があります。Qtの開発環境のインストール方法についてはのQtのインストールを参照ください。
alias: initDev
parameter: null
return: handle*
alias: deInitDev
parameter: handle*
return: null
parameter:
Name
Type
Remark
videoDevBuf
char*
videoDevSize
int
"|"で区切られます
serialBuf
uchar*
serialSize
int
return:
検出されたデバイスの総数(ビデオデバイスの数+シリアルデバイスの数)を返します。
parameter:
Name
Type
Remark
dev
handle*
portName
char*
Windows上では"com *"
Linux上では"ttyacm *"
return code:
Status Code
Remark
0x00
success
0x01
failed
parameter:
Name
Type
Remark
dev
handle*
camName
char*
Windows上では"UVC Camera"
return code:
Status Code
Remark
0x00
success
0x01
failed
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
success
0x01
failed
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
success
0x01
failed
スナップショットにより画像を追加します。
parameter:
Name
Type
dev_handle
handle*
imageId
char*
imageIdLength
uint
return:
Status Code
Remark
0x00
成功
0x01
追加失敗
顔情報がありません
0x02
追加失敗
顔情報が複数あります
0x03
追加失敗
顔サイズが小さすぎます
0x04
追加失敗
アラインスコアが小さすぎます
0x05
追加失敗
横顔です
0x06
追加失敗
顔情報が曖昧すぎます
0x07
追加失敗
顔との距離が離れています
0x08
追加失敗
初期化に失敗しました
0x09
追加失敗
不正なパラメーターが入力されました
0x0A
追加失敗
featureが存在しません
0x0B
追加失敗
暗号化チップエラー
0x0C
追加失敗
このIDが存在しません
0x0F
追加失敗
この製品のベースは上限に達しました
0x10
追加失敗
IDが無効です
0x11
追加失敗
ファイルの保存に失敗しました
0x12
追加失敗 ファイルの種類がJPEGではありません
0x13
追加失敗
RPCの呼び出しに失敗しました
0x14
追加失敗
タグ情報が不明です
0xA0
追加失敗
AIサービスが初期化を完了しませんでした
キャプチャとベース画像のエクスポートします。
parameter:
Name
Type
Remark
dev
handle*
imageId
char*
imageIdLength
uint
ret
char**
受信する画像データ (null pointerを転送してください)
length
uint
retのデータ長
return:
Status Code
Remark
0x00
成功
0x01
追加失敗
顔情報がありません
0x02
追加失敗
顔情報が複数あります
0x03
追加失敗
顔サイズが小さすぎます
0x04
追加失敗
アラインスコアが小さすぎます
0x05
追加失敗
横顔です
0x06
追加失敗
顔情報が曖昧すぎます
0x07
追加失敗
顔との距離が離れています
0x08
追加失敗
初期化に失敗しました
0x09
追加失敗
不正なパラメーターが入力されました
0x0A
追加失敗
featureが存在しません
0x0B
追加失敗
暗号化チップエラー
0x0C
追加失敗
このIDが存在しません
0x0F
追加失敗
この製品のベースは上限に達しました
0x10
追加失敗
IDが無効です
0x11
追加失敗
ファイルの保存に失敗しました
0x12
追加失敗 ファイルの種類がJPEGではありません
0x13
追加失敗
RPCの呼び出しに失敗しました
0x14
追加失敗
タグ情報が不明です
0xA0
追加失敗
AIサービスが初期化を完了しませんでした
ホストコンピューターから画像を本デバイス側にアップロードします。
parameter:
Name
Type
Remark
dev_handle
handle*
imageId
char*
imageIdLength
uint
data
char*
受信した画像データ
length
uint
dataのデータ長
return:
Status Code
Remark
0x00
成功
0x01
追加失敗
顔情報がありません
0x02
追加失敗
顔情報が複数あります
0x03
追加失敗
顔サイズが小さすぎます
0x04
追加失敗
アラインスコアが小さすぎます
0x05
追加失敗
横顔です
0x06
追加失敗
顔情報が曖昧すぎます
0x07
追加失敗
顔との距離が離れています
0x08
追加失敗
初期化に失敗しました
0x09
追加失敗
不正なパラメーターが入力されました
0x0A
追加失敗
featureが存在しません
0x0B
追加失敗
暗号化チップエラー
0x0C
追加失敗
このIDが存在しません
0x0F
追加失敗
この製品のベースは上限に達しました
0x10
追加失敗
IDが無効です
0x11
追加失敗
ファイルの保存に失敗しました
0x12
追加失敗
ファイルの種類がJPEGではありません
0x13
追加失敗
RPCの呼び出しに失敗しました
0x14
追加失敗
タグ情報が不明です
0xA0
追加失敗
AIサービスが初期化を完了しませんでした
スライス(1スライスあたり最大8080バイト)の手法によって、大きな画像データを転送するために使用されます。
parameter:
Name
Type
Remark
dev_handle
handle*
imageId
char*
imageIdLength
uint
sliceData
char*
スライスされたデータ
sliceDataLength
uint
スライスされたデータの長さ
position
int
スライスされたデータの開始位置(たとえば、最初のデータは0から始まり、2番目は0 +最初のスライスデータの長さです)
imageTotalLength
uint
画像データ全体の長さ
islastSlice
int
最後のスライスされたデータかどうかを確認
0x00:NO
0x01:YES
return:
Status Code
Remark
0x00
成功
0x01
追加失敗
顔情報がありません
0x02
追加失敗
顔情報が複数あります
0x03
追加失敗
顔サイズが小さすぎます
0x04
追加失敗
アラインスコアが小さすぎます
0x05
追加失敗
横顔です
0x06
追加失敗
顔情報が曖昧すぎます
0x07
追加失敗
顔との距離が離れています
0x08
追加失敗
初期化に失敗しました
0x09
追加失敗
不正なパラメーターが入力されました
0x0A
追加失敗
featureが存在しません
0x0B
追加失敗
暗号化チップエラー
0x0C
追加失敗
このIDが存在しません
0x0F
追加失敗
この製品のベースは上限に達しました
0x10
追加失敗
IDが無効です
0x11
追加失敗
ファイルの保存に失敗しました
0x12
追加失敗 ファイルの種類がJPEGではありません
0x13
追加失敗
RPCの呼び出しに失敗しました
0x14
追加失敗
タグ情報が不明です
0xA0
追加失敗
AIサービスが初期化を完了しませんでした
一番下のデータベースのFaceIDを取得しJSON形式で返します。
parameter:
Name
Type
Remark
dev_handle
handle*
ret
char*
Mandatory
ret_buf_size
uint
Mandatory
return:
Status Code
Remark
0x00
成功
0x01
アルゴリズムインターフェースの呼び出しに失敗しました
0x02
ファイルの長さの取得に失敗しました
0x03
フラグメントデータの場所が無効です
0x04
ファイルの読み込みに失敗しました
-1
unknown error
-2
ret_buf_sizeの長さが足りません
parameter:
Name
Type
Remark
dev_handle
handle*
mode
int
imageId
char*
imageIdLength
uint
return:
Status Code
Remark
0x00
成功
ID does not exist
IDが存在しません
-1
unknown error
-2
ImageIDを空にすることはできません
parameter:
Name
Type
Remark
dev_handle
handle*
mode
int
imageId
char*
imageIdLength
uint
return:
Status Code
Remark
0x00
成功
0x01
IDが存在しません
0x02
照会に失敗しました
-1
unknown error
-2
ImageIDを空にすることはできません
parameter:
Name
Type
Remark
dev_handle
handle*
recognizeCount
char*
クエリの認証回数を返却します
recognizeCount_size
unsigned int
クエリの認証回数のデータサイズを返却します、1バイト
return:
Status Code
Remark
0x00
成功
0x01~0x16
失敗
-1
unknown error
-2
サイズが違います
parameter:
Type
Remark
handle*
char*
クエリの認証回数を返却します、1バイト
unsigned int
クエリの認証回数のデータサイズを返却します、1バイト
char*
クエリの生体のカウント数を返却します、1バイト
unsigned int
クエリの生体のカウント数のサイズを返却します、1バイト
return:
Status Code
Remark
0x00
成功
0x01~0x16
失敗
-1
unknown error
-2
サイズが違います
※設定を更新するたびに、モジュールを再起動して有効にする必要があります。
parameter:
Name
Type
Remark
dev_handle
handle*
0x00:アップデートを閉じます
templateMode
int
0x01:アップデートを開きます(デフォルト)
return:
Status Code
Remark
0x00
成功
-1
失敗
-2
パラメーターエラー
parameter:
Name
Type
Remark
dev_handle
handle*
templateMode
char*
テンプレートの更新を有効にするかどうかのクエリを返却します
0x00:Close
0x01:Open
templateMode _size
unsigned int
return:
Status Code
Remark
0x00
成功
-1
失敗
-2
パラメーターエラー
parameter:
Name
Type
Remark
dev_handle
handle*
0x00:スナップショットによるコントラスト
mode
int
0x00:デバイス側で撮影された際のコントラスト
0x01:ホストコンピューターからアップロードされた際のコントラスト
data
char*
モードが0x01の場合の画像データ
length
uint
モードが0x01の場合の画像データの長さ
ret
char*
比較結果として返却されるデータ
ret_size
uint
比較結果として返却されるデータサイズ
return:
Status Code
0x00
成功
-1
unknown error
-2
ret_sizeが小さすぎます
parameter:
Name
Type
Remark
dev_handle
handle*
featureId
conset char*
固有値を使用してライブラリの下部に追加します。IDはaddimageのIDと同じです。
featureIdLength
uint
IDの長さ
data
char*
featureのデータ(長さが約1500バイトのBase64エンコードの文字列)
length
uint
featureのデータの長さ
return:
Status Code
Remark
0x00
成功
-1
unknown error
-2
ret_sizeが小さすぎます
parameter:
Name
Type
Remark
dev_handle
handle*
featureId
conset char*
featureのID
featureIdLength
uint
featureのIDの長さ
ret
char*
出力パラメータ、返却されるクエリ固有値
ret_size
uint
返却されるクエリ固有値のサイズ
return:
Status Code
Remark
0x00
成功
-1
unknown error
-2
ret_sizeが小さすぎます
1: Nの顔認証を開始します。
parameter:
Name
Type
Remark
dev_handle
handle*
reomode
int
1 生体検知かつ認証パターン
0 認証のみのパターン
mulmode
int
1 複数パターン
0 シングルパターン
return:
Status Code
Remark
0x00
成功
0x01
サポート外
0x02
ライブラリ例外
-1
unknown error
1: 1の顔認証を開始します。
parameter:
Name
Type
Remark
dev_handle
handle*
reomode
int
1 生体検知かつ認証パターン
0 認証のみのパターン
mulmode
int
1 複数パターン
0 シングルパターン
data
char*
1:1顔認識の下部データベースの画像データ
length
uint
dataの長さ
return:
Status Code
Remark
0x00
成功
0x01
サポート外
0x02
ライブラリ識別
exceptions
例外
-1
unknown error
認証を再開します。
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
認証を停止します。
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
顔認識ステータスの照会を行います。
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
顔認証の設定を行います。
parameter:
Name
Type
Remark
dev_handle
handle*
mode
int
0x00 アルゴリズムの設定
jsonData
char*
以下に具体的な説明を記載
jsonDataLength
uint
return:
Status Code
Remark
0x00
成功
0x0
失敗
-1
unknown error
顔認証の設定情報をします。
parameter:
Name
Type
Remark
dev_handle
handle*
mode
int
0x00 アルゴリズムの設定
ret
char*
ret_buf_size
uint
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
認証結果のシリアルポートデータのアクティブレポートスイッチをオンにします(このAPIを呼び出すと、顔認識データレポートが利用可能になります。登録されたコールバック関数registerRecoReportCb、registerTrackReportCb、registerImageReportCb、registerFeatureReportCbに対応します)。
※画像認識と特徴値が取得できない場合は、アクティブレポートをオンにしないことをお勧めします。
後述するopenAutoUploadFaceInfoInFrameを使用するには、フレームデータレポートのみを有効にする必要があります。
parameter:
Name
Type
Remark
dev_handle
handle*
mode
int
0x00: 全情報をレポートします
0x02: 画像と認証結果をレポートします
0x03: 特徴量と認証結果をレポートします
0x04: 認証結果をレポートします
imageMode
int
0x00:RGB顔、RGB背景、IR画像はレポートされません
0x01:RGB顔画像がレポートされます
0x02:RGB背景がレポートされます
0x03:RGB顔画像と背景のマップがレポートされます
0x04:IRのチャートがレポートされます
0x05:IR画像とRGB顔画像がレポートされます
0x06:IRとRGB背景画像がレポートされます
0x07:RGB顔、RGB背景、IR画像がレポートされます
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
-2
モデルエラー
認証結果シリアルポートデータアクティブレポートスイッチをオフにします(このAPIを呼び出すと、参照登録コールバック関数registerRecoReportCb、registerTrackReportCb、registerImageReportCb、registerFeatureReportCbに対応する顔認識データレポートがオフになります)。
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
コールバックレポート認証関数を登録します(この関数は、要件をアクティブにレポートし、コールバックして認証結果データを取得します)。
parameter:
Name
Type
Remark
dev_handle
handle*
handler_func
CallBackPtr_t
コールバック関数のハンドル
return:
void
コールバックレポート追跡関数を登録します(この関数は、需要をアクティブに報告し、コールバックして追跡結果データを取得します)。
parameter:
Name
Type
Remark
dev_handle
handle*
handler_func
CallBackPtr_t
Handle to the callback function
return:
void
画像をレポートするコールバック関数を登録します(この関数は画像をアクティブにレポートし、コールバックして認識画像の結果データを取得します)。
parameter:
Name
Status Code
Remark
dev_handle
handle*
handler_func
CallBackPtr_t
コールバック関数のハンドル
return:
void
コールバックレポート固有値関数を登録します(この関数は要件アクティブレポートです。コールバックは固有値結果を識別するデータを取得します)。
※モジュール認識結果が多すぎる場合、一部の認識機能の値は報告されません。
parameter:
Name
Type
Remark
dev_handle
handle*
handler_func
CallBackPtr_t
Handle to the callback function
return:
void
登録コールバックが再度開かれると、上位のコンピューターとの接続が切断されます。そのため、新規接続を開始した際、モジュールの自己起動に対応します。最後の接続に関するアクティブなレポートを有効にする場合、新規の接続状態を維持することもできます。
parameter:
Name
Type
Remark
handler_func
CallBackPtr_t
コールバック関数のハンドル
return:
void
認証結果をフレームデータに挿入するスイッチをオンにします(このインターフェイスを呼び出して顔認識データを取得し、getFrame関数を呼び出して顔認識情報を取得します)。
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
認識結果をフレームデータに挿入するスイッチをオフにします。
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
parameter:
Name
Type
Remark
dev_handle
handle*
data
char*
オプション
length
uint
オプション(デフォルト0)
return:
Status Code
Remark
0x00
成功
0x01
失敗
parameter:
Name
Type
Remarks
dev_handle
handle*
position
int
現在のデータスライスの開始位置
最初のスライスは0、2番目のスライスは0に最初のスライスの長さを加えたものです。
data
char
length
uint
return:
Status Code
Remark
0
成功
< 0
失敗
parameter:
Name
Type
Remark
dev_handle
handle*
hash
char*
取り込んだMD5のデータを受信
length
uint
return:
Status Code
Remark
0x00
成功
0x01
失敗
parameter:
Name
Type
Remark
dev_handle
handle*
ret
char*
システムバージョン情報を取得するための出力パラメーター
ret_buf_size
uint
retのサイズ
return:
Status Code
Remark
0x00
成功
0x01
失敗
0x02
エラー
-1
unknown error
-2
ret_buf_sizeが小さすぎます
reboot
parameter:
Name
Type
Remark
dev_handle
handle*
mode
int
0x00:直接再起動
0x01:USBメモリによるユーザーモードで再起動
0x02:USBメモリ以外によるユーザーモードで再起動
0x03:USBメモリによるファクトリーモードで再起動
0x04:USBメモリ以外によるファクトリーモードで再起動
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
システムの再起動(USBメモリ以外によるファクトリーモードでの再起動と同様)します。
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
システム再起動(ダイレクトリスタートと同様)します。
parameter:
Name
Type
Remark
dev_handle
handle*
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
ファクトリー設定を復元します。
parameter:
Name
Type
Remark
dev_handle
handle*
mode
int
0x00 : ユーザー設定消去
0x01 : ユーザー設定保存
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
デバイスのシリアルナンバーを取得します。
parameter:
Name
Type
Remark
dev_handle
handle*
ret
char*
ret_buf_size
uint
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
-2
ret_buf_sizeが小さすぎます
デバイスモデルを取得します。
parameter:
Name
Type
Remark
dev_handle
handle*
ret
char*
ret_buf_size
uint
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
-2
ret_buf_sizeが小さすぎます
カメラを切り替えます。
parameter:
Name
Type
Remark
dev_handle
handle*
disposeMode
int
0x00:カメラを有効にする
0x01:カメラを無効にする
cameraMode
int
0x00:RGBカメラ
0x01:IRカメラ
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
カメラスイッチの状態を取得します。
parameter:
Name
Type
Remark
dev_handle
handle*
cameraMode
int
0x00:RGB camera
0x01:IR camera
ret
char*
0x00:Camera off
0x01:Camera on
ret_buf_size
uint
return:
Status Code
Remark
0x00
success
0x01
failed
-1
unknown error
-2
ret_buf_sizeが小さすぎます
parameter:
Name
Type
Remark
dev_handle
handle*
mode
int
0x00:RGBに変更
0x01:IRに変更
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
IRライトの輝度を設定します。
parameter:
Name
Type
Remark
dev_handle
handle*
luminance
int
IR ライト輝度,0-200
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
-2
輝度エラー
IRライトを自動でOFFにする時間を設定します。
parameter:
Name
Type
Remark
dev_handle
handle*
luminance
int
IRライト輝度,0-200
time
int
IRライトが自動的に消灯する時間。単位は秒、範囲は0〜12(0x00〜0x78)。 0の場合、検出は行われません。最後の顔の検出時間が計算され、最大誤差は1秒です。現在の値のみが有効で、再起動は無効です。設定値が範囲を超える場合は、制限値を優先します。デフォルト値:30
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
-2
輝度エラー
IRライトの輝度を取得します。
parameter:
Name
Type
Remark
dev_handle
handle*
ret
char*
ret_buf_size
uint
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
-2
ret_buf_sizeが小さすぎます
フレームレートを設定します。
parameter:
Name
Status Code
Remark
dev_handle
handle*
frame_rate
int
フレームレート,10-25
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
-2
フレームレートエラー
フレームレートを取得します。
parameter:
Name
Type
Remark
dev_handle
handle*
ret
char*
ret_buf_size
uint
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
-2
ret_buf_sizeが小さすぎます
画面サイズを設定します(360pに変更する際はご注意ください)。USB電源をすぐにオフにしないで、モジュールが同期して設定されるまで5秒間待ちます。
parameter:
Name
Type
Remark
dev_handle
handle*
mode
int
360:360P
720:720P
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
スクリーンモードの取得
parameter:
Name
Type
Remark
dev_handle
handle*
ret
ret_buf_size
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
-2
ret_buf_sizeが小さすぎます
アンチフリッカー状態を設定します。
parameter:
Name
Type
Remark
dev_handle
handle*
camera_id
int
0x00:ID 0のカメラ
0x01:ID 1のカメラ
Hz
int
0x00:50HZ
0x01:60HZ
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
アンチフリッカー状態を取得します。
parameter:
Name
Type
Remark
dev_handle
handle*
camera_id
int
0x00:ID 0のカメラ
0x01:ID 1のカメラ
ret
char*
ret_buf_size
uint
return:
Status Code
0x00
成功
0x01
失敗
-1
unknown error
-2
ret_buf_sizeが小さすぎます
現在の感光性の値を取得します。
parameter:
Name
Type
Remark
dev_handle
handle*
ret
char*
ret_buf_size
int
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
デバイスにインストールされたアプリケーションのバージョン情報を取得します。
parameter:
Name
Type
Remark
dev_handle
handle*
ret
char*
ret_buf_size
uint
return:
Status Code
Remark
0x00
成功
0x01
失敗
-1
unknown error
ビデオデコーダーの設定に使用します。 connectCameraを実行した後、カメラは自動的に再接続します。異なるデコーダーの効率は異なる場合があります。実際の状況に応じて選択してください。現在のインターフェースは無効に設定されており、MJPEGのみをサポートします。
parameter:
Name
Type
Remark
dev
handle*
mode
int
0 - MJPEG
1 - H.264
フレームの幅を取得します。バッファサイズは幅 x 高さ x 4です。
parameter:
Name
Type
dev
handle*
フレームの高さを取得します。バッファサイズは幅 x 高さ x 4です。
parameter:
Name
Type
dev
handle*
画像のフレームと検証情報を取得します。画像の保存形式はビットマップで、順序はBBGGRRAAです。呼び出し元は、最新の画像を取得するためにAPIをポーリングする必要があります。これらのアイテムの1つについて、バッファサイズをゼロに設定して、1つのアイテムのみが取得されるようにできます。たとえば、imageBufとimageSizeが0の場合、verifyBufが通常渡されると、画像の代わりに顔認識情報を取得できます。
parameter:
Name
Type
dev
handle
imageBuf
char*
imageSize
int
verifyBuf
char*
verifySize
int
return:
Status Code
Remark
0x00
成功
0x01
バッファが小さすぎるか、画像サイズと一致しません
0x02
検証情報用のバッファが小さすぎます
-1
新しい画像はまだありません
Verifybufはデバイスから送信された検証情報をJSONの形式で保存します。
Verifybufのデータ構造における各フィールド名称とその説明は以下の通りです。
Name
Type
Remark
faceinfo
array
rect
object
bottom
int
right
int
left
int
top
int
recognition_status
int
認証結果の状態を示す値:
0:まだ認証されていない
1:非生体
2:ライブラリに保存されている人物
3:未登録者
4:識別結果
recognition_id
string
UNKNOWN
NOLIVENESS
PERSON ID
STRANGER
recognize_score
float
初回成功時のみ取得可能です
liveness_score
floa
上記と同様です
Verifybufの例:
trackinfoとして説明すると以下となります。
説明
track_info (認証結果)
recognition_id
(取り得る値はPERSON ID, UNKNOW, STRANGER,NONLIVENESS)
recognition_status
(取り得る値は0,1,2,3,4)
liveness_score
(生体検知のスコアは認証が成功した後に取得できます)
recognize_score
(認証スコアは認証が成功した後に取得できます)
face_info (顔情報)
rect (顔の座標)
track_id (顔追尾ID)
masksign
(マスクをしているかどうか)
-1:マスクをしているかどうかの判定なし
1:マスクをしていない
2:マスクをしている
3:マスクが正しい位置に無い
setreoconfigの設定が必要です。 enable mask_signがfalseに設定されている場合、mask_signは常に-1になります。
マスク検知がオンになっている場合は、追跡結果を含むJSONではなく、認証スコアと生体検知スコア項目を使用してJSONを識別することをお勧めします。
safety_hat
安全ヘルメットを検出します
安全ヘルメット検出をオンにすることはお勧めしません。デフォルトではオフになっています。
AIサービスの構成情報を設定するjsonDataのデータ構造について説明します。具体的には以下の構造となります。
各々のパラメーターについては以下で説明します。
パラメーター名
パラメータータイプ
パラメーター範囲とデフォルト値
work_mode
enum
0: 1:N 認証
1: 1:1 認証
デフォルト値: 0
recognize_mode
enum
0:認証のみ
1:認証と生体検知
2:生体検知のみ
デフォルト値: 1
face_mode
enum
0:1つの顔に対応
1:複数の顔に対応
デフォルト値: 1
enable_qr_code
Boolean
false:QRコード設定モードをOFF
true: QRコード設定モードをON
デフォルト値: false
enable_track_box
Boolean
false:track feedback box を無効にする
true: rack feedback box を有効にする
デフォルト値: true
liveness_thresh
Float
生体認証しきい値
データの取得範囲 0~1
デフォルト値: 0.98
recognition_thresh
Float
認証しきい値
データの取得範囲 0~1
デフォルト値: 0.90
verify_thresh
float
1:1 認証しきい値
データの取得範囲 0~1
デフォルト値: 0.90
recognition_interval
Int
同じ顔追跡IDを連続認証する際の時間間隔
デフォルト値: 5
report_interval
Int
データベースに同じユーザーIDを継続してレポートする際の時間間隔
デフォルト値: 5
max_face_cnt
Int
顔追尾可能な顔最大数
デフォルト値: 4
face_size
Int
フィルタできる顔ピクセルの最大値
デフォルト値: 10
enable_feature_export
boolean
false:featureを返送しない
true:featureを返送する
デフォルト値:false
enable_image_export
boolean
false: ライブ画像を返送しない
true:ライブ画像を返送する
デフォルト値:true
ae_mode
int
0:モジュールに備えられたAE機能
1:個人で開発したAE機能
デフォルト値:0
ae_flicker_freq
int
AEアンチフリッカー周波数
0:アンチフリッカーをON
50:50HzでアンチフリッカーをON
60:60HzでアンチフリッカーをON
デフォルト値:0
enable_safety_hat
Boolean
false:safety_hat検知を無効にする
true:safety_hat検知を有効にする
デフォルト値: false
enable_mask_sign
Boolean
false:マスク検知を無効にする
true:マスク検知を有効にする
デフォルト値: false