hzt_asc 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/inc/merror.h ADDED
@@ -0,0 +1,141 @@
1
+ /*----------------------------------------------------------------------------------------------
2
+ *
3
+ * This file is ArcSoft's property. It contains ArcSoft's trade secret, proprietary and
4
+ * confidential information.
5
+ *
6
+ * The information and code contained in this file is only for authorized ArcSoft employees
7
+ * to design, create, modify, or review.
8
+ *
9
+ * DO NOT DISTRIBUTE, DO NOT DUPLICATE OR TRANSMIT IN ANY FORM WITHOUT PROPER AUTHORIZATION.
10
+ *
11
+ * If you are not an intended recipient of this file, you must not copy, distribute, modify,
12
+ * or take any action in reliance on it.
13
+ *
14
+ * If you have received this file in error, please immediately notify ArcSoft and
15
+ * permanently delete the original and any copy of any file and any printout thereof.
16
+ *
17
+ *-------------------------------------------------------------------------------------------------*/
18
+
19
+
20
+ #ifndef __MERROR_H__
21
+ #define __MERROR_H__
22
+
23
+
24
+ #define MERR_NONE (0)
25
+ #define MOK (0)
26
+
27
+
28
+ #define MERR_BASIC_BASE 0X0001 //通用错误类型
29
+ #define MERR_UNKNOWN MERR_BASIC_BASE //错误原因不明
30
+ #define MERR_INVALID_PARAM (MERR_BASIC_BASE+1) //无效的参数
31
+ #define MERR_UNSUPPORTED (MERR_BASIC_BASE+2) //引擎不支持
32
+ #define MERR_NO_MEMORY (MERR_BASIC_BASE+3) //内存不足
33
+ #define MERR_BAD_STATE (MERR_BASIC_BASE+4) //状态错误
34
+ #define MERR_USER_CANCEL (MERR_BASIC_BASE+5) //用户取消相关操作
35
+ #define MERR_EXPIRED (MERR_BASIC_BASE+6) //操作时间过期
36
+ #define MERR_USER_PAUSE (MERR_BASIC_BASE+7) //用户暂停操作
37
+ #define MERR_BUFFER_OVERFLOW (MERR_BASIC_BASE+8) //缓冲上溢
38
+ #define MERR_BUFFER_UNDERFLOW (MERR_BASIC_BASE+9) //缓冲下溢
39
+ #define MERR_NO_DISKSPACE (MERR_BASIC_BASE+10) //存贮空间不足
40
+ #define MERR_COMPONENT_NOT_EXIST (MERR_BASIC_BASE+11) //组件不存在
41
+ #define MERR_GLOBAL_DATA_NOT_EXIST (MERR_BASIC_BASE+12) //全局数据不存在
42
+
43
+
44
+ #define MERR_FSDK_BASE 0X7000 //Free SDK通用错误类型
45
+ #define MERR_FSDK_INVALID_APP_ID (MERR_FSDK_BASE+1) //无效的App Id
46
+ #define MERR_FSDK_INVALID_SDK_ID (MERR_FSDK_BASE+2) //无效的SDK key
47
+ #define MERR_FSDK_INVALID_ID_PAIR (MERR_FSDK_BASE+3) //AppId和SDKKey不匹配
48
+ #define MERR_FSDK_MISMATCH_ID_AND_SDK (MERR_FSDK_BASE+4) //SDKKey 和使用的SDK 不匹配
49
+ #define MERR_FSDK_SYSTEM_VERSION_UNSUPPORTED (MERR_FSDK_BASE+5) //系统版本不被当前SDK所支持
50
+ #define MERR_FSDK_LICENCE_EXPIRED (MERR_FSDK_BASE+6) //SDK有效期过期,需要重新下载更新
51
+
52
+
53
+ #define MERR_FSDK_FR_ERROR_BASE 0x12000 //Face Recognition错误类型
54
+ #define MERR_FSDK_FR_INVALID_MEMORY_INFO (MERR_FSDK_FR_ERROR_BASE+1) //无效的输入内存
55
+ #define MERR_FSDK_FR_INVALID_IMAGE_INFO (MERR_FSDK_FR_ERROR_BASE+2) //无效的输入图像参数
56
+ #define MERR_FSDK_FR_INVALID_FACE_INFO (MERR_FSDK_FR_ERROR_BASE+3) //无效的脸部信息
57
+ #define MERR_FSDK_FR_NO_GPU_AVAILABLE (MERR_FSDK_FR_ERROR_BASE+4) //当前设备无GPU可用
58
+ #define MERR_FSDK_FR_MISMATCHED_FEATURE_LEVEL (MERR_FSDK_FR_ERROR_BASE+5) //待比较的两个人脸特征的版本不一致
59
+
60
+
61
+ #define MERR_FSDK_FACEFEATURE_ERROR_BASE 0x14000 //人脸特征检测错误类型
62
+ #define MERR_FSDK_FACEFEATURE_UNKNOWN (MERR_FSDK_FACEFEATURE_ERROR_BASE+1) //人脸特征检测错误未知
63
+ #define MERR_FSDK_FACEFEATURE_MEMORY (MERR_FSDK_FACEFEATURE_ERROR_BASE+2) //人脸特征检测内存错误
64
+ #define MERR_FSDK_FACEFEATURE_INVALID_FORMAT (MERR_FSDK_FACEFEATURE_ERROR_BASE+3) //人脸特征检测格式错误
65
+ #define MERR_FSDK_FACEFEATURE_INVALID_PARAM (MERR_FSDK_FACEFEATURE_ERROR_BASE+4) //人脸特征检测参数错误
66
+ #define MERR_FSDK_FACEFEATURE_LOW_CONFIDENCE_LEVEL (MERR_FSDK_FACEFEATURE_ERROR_BASE+5) //人脸特征检测结果置信度低
67
+
68
+ #define MERR_ASF_EX_BASE 0x15000 //ASF错误类型
69
+ #define MERR_ASF_EX_FEATURE_UNSUPPORTED_ON_INIT (MERR_ASF_EX_BASE+1) //Engine不支持的检测属性
70
+ #define MERR_ASF_EX_FEATURE_UNINITED (MERR_ASF_EX_BASE+2) //需要检测的属性未初始化
71
+ #define MERR_ASF_EX_FEATURE_UNPROCESSED (MERR_ASF_EX_BASE+3) //待获取的属性未在process中处理过
72
+ #define MERR_ASF_EX_FEATURE_UNSUPPORTED_ON_PROCESS (MERR_ASF_EX_BASE+4) //PROCESS不支持的检测属性组合,例如FR,有自己独立的处理函数
73
+ #define MERR_ASF_EX_INVALID_IMAGE_INFO (MERR_ASF_EX_BASE+5) //无效的输入图像
74
+ #define MERR_ASF_EX_INVALID_FACE_INFO (MERR_ASF_EX_BASE+6) //无效的脸部信息
75
+
76
+ #define MERR_ASF_BASE 0x16000 //人脸比对基础错误类型
77
+ #define MERR_ASF_ACTIVATION_FAIL (MERR_ASF_BASE+1) //SDK激活失败,请打开读写权限
78
+ #define MERR_ASF_ALREADY_ACTIVATED (MERR_ASF_BASE+2) //SDK已激活
79
+ #define MERR_ASF_NOT_ACTIVATED (MERR_ASF_BASE+3) //SDK未激活
80
+ #define MERR_ASF_SCALE_NOT_SUPPORT (MERR_ASF_BASE+4) //detectFaceScaleVal 不支持
81
+ #define MERR_ASF_ACTIVEFILE_SDKTYPE_MISMATCH (MERR_ASF_BASE+5) //激活文件与SDK类型不匹配,请确认使用的sdk
82
+ #define MERR_ASF_DEVICE_MISMATCH (MERR_ASF_BASE+6) //设备不匹配
83
+ #define MERR_ASF_UNIQUE_IDENTIFIER_ILLEGAL (MERR_ASF_BASE+7) //唯一标识不合法
84
+ #define MERR_ASF_PARAM_NULL (MERR_ASF_BASE+8) //参数为空
85
+ #define MERR_ASF_LIVENESS_EXPIRED (MERR_ASF_BASE+9) //活体已过期
86
+ #define MERR_ASF_VERSION_NOT_SUPPORT (MERR_ASF_BASE+10) //版本不支持
87
+ #define MERR_ASF_SIGN_ERROR (MERR_ASF_BASE+11) //签名错误
88
+ #define MERR_ASF_DATABASE_ERROR (MERR_ASF_BASE+12) //激活信息保存异常
89
+ #define MERR_ASF_UNIQUE_CHECKOUT_FAIL (MERR_ASF_BASE+13) //唯一标识符校验失败
90
+ #define MERR_ASF_COLOR_SPACE_NOT_SUPPORT (MERR_ASF_BASE+14) //颜色空间不支持
91
+ #define MERR_ASF_IMAGE_WIDTH_HEIGHT_NOT_SUPPORT (MERR_ASF_BASE+15) //图片宽高不支持,宽度需四字节对齐
92
+
93
+ #define MERR_ASF_BASE_EXTEND 0x16010 //人脸比对基础错误类型
94
+ #define MERR_ASF_READ_PHONE_STATE_DENIED (MERR_ASF_BASE_EXTEND) //android.permission.READ_PHONE_STATE权限被拒绝
95
+ #define MERR_ASF_ACTIVATION_DATA_DESTROYED (MERR_ASF_BASE_EXTEND+1) //激活数据被破坏,请删除激活文件,重新进行激活
96
+ #define MERR_ASF_SERVER_UNKNOWN_ERROR (MERR_ASF_BASE_EXTEND+2) //服务端未知错误
97
+ #define MERR_ASF_INTERNET_DENIED (MERR_ASF_BASE_EXTEND+3) //INTERNET权限被拒绝
98
+ #define MERR_ASF_ACTIVEFILE_SDK_MISMATCH (MERR_ASF_BASE_EXTEND+4) //激活文件与SDK版本不匹配,请重新激活
99
+ #define MERR_ASF_DEVICEINFO_LESS (MERR_ASF_BASE_EXTEND+5) //设备信息太少,不足以生成设备指纹
100
+ #define MERR_ASF_LOCAL_TIME_NOT_CALIBRATED (MERR_ASF_BASE_EXTEND+6) //客户端时间与服务器时间(即北京时间)前后相差在30分钟以上
101
+ #define MERR_ASF_APPID_DATA_DECRYPT (MERR_ASF_BASE_EXTEND+7) //数据校验异常
102
+ #define MERR_ASF_APPID_APPKEY_SDK_MISMATCH (MERR_ASF_BASE_EXTEND+8) //传入的AppId和AppKey与使用的SDK版本不一致
103
+ #define MERR_ASF_NO_REQUEST (MERR_ASF_BASE_EXTEND+9) //短时间大量请求会被禁止请求,30分钟之后解封
104
+ #define MERR_ASF_ACTIVE_FILE_NO_EXIST (MERR_ASF_BASE_EXTEND+10) //激活文件不存在
105
+ #define MERR_ASF_DETECT_MODEL_UNSUPPORTED (MERR_ASF_BASE_EXTEND+11) //检测模型不支持,请查看对应接口说明,使用当前支持的检测模型
106
+ #define MERR_ASF_CURRENT_DEVICE_TIME_INCORRECT (MERR_ASF_BASE_EXTEND+12) //当前设备时间不正确,请调整设备时间
107
+ #define MERR_ASF_ACTIVATION_QUANTITY_OUT_OF_LIMIT (MERR_ASF_BASE_EXTEND+13) //年度激活数量超出限制,次年清零
108
+ #define MERR_ASF_IP_BLACK_LIST (MERR_ASF_BASE_EXTEND+14) //频繁请求,4小时后解禁
109
+
110
+ #define MERR_ASF_NETWORK_BASE 0x17000 //网络错误类型
111
+ #define MERR_ASF_NETWORK_COULDNT_RESOLVE_HOST (MERR_ASF_NETWORK_BASE+1) //无法解析主机地址
112
+ #define MERR_ASF_NETWORK_COULDNT_CONNECT_SERVER (MERR_ASF_NETWORK_BASE+2) //无法连接服务器
113
+ #define MERR_ASF_NETWORK_CONNECT_TIMEOUT (MERR_ASF_NETWORK_BASE+3) //网络连接超时
114
+ #define MERR_ASF_NETWORK_UNKNOWN_ERROR (MERR_ASF_NETWORK_BASE+4) //网络未知错误
115
+
116
+ #define MERR_ASF_ACTIVEKEY_BASE 0x18000 //激活码错误类型
117
+ #define MERR_ASF_ACTIVEKEY_COULDNT_CONNECT_SERVER (MERR_ASF_ACTIVEKEY_BASE+1) //无法连接激活服务器
118
+ #define MERR_ASF_ACTIVEKEY_SERVER_SYSTEM_ERROR (MERR_ASF_ACTIVEKEY_BASE+2) //服务器系统错误
119
+ #define MERR_ASF_ACTIVEKEY_POST_PARM_ERROR (MERR_ASF_ACTIVEKEY_BASE+3) //请求参数错误
120
+ #define MERR_ASF_ACTIVEKEY_PARM_MISMATCH (MERR_ASF_ACTIVEKEY_BASE+4) //ACTIVEKEY与APPID、SDKKEY不匹配
121
+ #define MERR_ASF_ACTIVEKEY_ACTIVEKEY_ACTIVATED (MERR_ASF_ACTIVEKEY_BASE+5) //ACTIVEKEY已经被使用
122
+ #define MERR_ASF_ACTIVEKEY_ACTIVEKEY_FORMAT_ERROR (MERR_ASF_ACTIVEKEY_BASE+6) //ACTIVEKEY信息异常
123
+ #define MERR_ASF_ACTIVEKEY_APPID_PARM_MISMATCH (MERR_ASF_ACTIVEKEY_BASE+7) //ACTIVEKEY与APPID不匹配
124
+ #define MERR_ASF_ACTIVEKEY_SDK_FILE_MISMATCH (MERR_ASF_ACTIVEKEY_BASE+8) //SDK与激活文件版本不匹配
125
+ #define MERR_ASF_ACTIVEKEY_EXPIRED (MERR_ASF_ACTIVEKEY_BASE+9) //ACTIVEKEY已过期
126
+ #define MERR_ASF_ACTIVEKEY_DEVICE_OUT_OF_LIMIT (MERR_ASF_ACTIVEKEY_BASE+10) //批量授权激活码设备数超过限制
127
+
128
+
129
+ #define MERR_ASF_OFFLINE_BASE 0x19000 //离线激活错误码类型
130
+ #define MERR_ASF_LICENSE_FILE_NOT_EXIST (MERR_ASF_OFFLINE_BASE+1) //离线授权文件不存在或无读写权限
131
+ #define MERR_ASF_LICENSE_FILE_DATA_DESTROYED (MERR_ASF_OFFLINE_BASE+2) //离线授权文件已损坏
132
+ #define MERR_ASF_LICENSE_FILE_SDK_MISMATCH (MERR_ASF_OFFLINE_BASE+3) //离线授权文件与SDK版本不匹配
133
+ #define MERR_ASF_LICENSE_FILEINFO_SDKINFO_MISMATCH (MERR_ASF_OFFLINE_BASE+4) //离线授权文件与SDK信息不匹配
134
+ #define MERR_ASF_LICENSE_FILE_FINGERPRINT_MISMATCH (MERR_ASF_OFFLINE_BASE+5) //离线授权文件与设备指纹不匹配
135
+ #define MERR_ASF_LICENSE_FILE_EXPIRED (MERR_ASF_OFFLINE_BASE+6) //离线授权文件已过期
136
+ #define MERR_ASF_LOCAL_EXIST_USEFUL_ACTIVE_FILE (MERR_ASF_OFFLINE_BASE+7) //离线授权文件不可用,本地原有激活文件可继续使用
137
+ #define MERR_ASF_LICENSE_FILE_VERSION_TOO_LOW (MERR_ASF_OFFLINE_BASE+8) //离线授权文件版本过低,请使用新版本激活助手重新进行离线激活
138
+
139
+
140
+ #endif
141
+
package/index.js ADDED
@@ -0,0 +1,2 @@
1
+ var addon = require('bindings')('hzt_asc_v3');
2
+ module.exports = addon;
package/package.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "hzt_asc",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "description": "hzt_asc_v3.",
6
+ "author": {
7
+ "name": "wucpeng",
8
+ "email": "wuchangpeng@haizitong.com"
9
+ },
10
+ "dependencies": {
11
+ "bindings": "~1.2.1",
12
+ "node-addon-api": "^1.0.0"
13
+ },
14
+ "keywords": [
15
+ "test",
16
+ "face"
17
+ ],
18
+ "license": "ISC",
19
+ "scripts": {
20
+ "install": "cmake-js compile"
21
+ }
22
+ }
@@ -0,0 +1 @@
1
+ EWEPEPEOGMGTELIZJUGECKIUJDBCJTCNISGPBNHLJTJUBHEWGNAKGEGAIOHJDQAJGNCFDRFZJEDMJTIBIVDTAFIVJOHDHLHQFUEOGPITCBHREAFKAYFKIHIEBODIBGGUGQHEBGCTGBCXJTCLFBGSJJFUBUCJEFEMCCHADVBJHKIYGFCYHSAPGFFOHSDWBRAUJBFXIEBUIZFVJAGCFFJJCVCJBTFZDRJLBTFZGHBIDVJVEMEOANDVDYCDFCJPAVERIMDLFHFEEZBXALBIGHDAGTDYIDDUFBDWGZELAPICDAAVGBJDGIFVHWFUBKCQFBESAOAWERGIAPCPDOIIDDAJGRJLBYHIEWCIEXBEDGEVHIFOETAXGFAYABAMGSDABGHLBAJFBPBOASEOFQJIJTIWGYHVEFBXHNFQEUGKIBHVCSHNBTDUGNGSBHCNBECQDVFGEEEHCDDEELHTJPJJHGCOHSANFPGZEJIQAUINCKAFAAEBCVETFSFHILFEEDAXENBSAXHEDVAVGDFSGEBDHCDSAOICGLENARHDBJGQGZBPJFBSEWCFHDJSARINIQGXAVGCHNCMDXDRHDELBIIQBNJVHBCYDOGXGHCJGQCPFTJJFKHFJJGLECDNDNIYINABGUDNGQEIBLHUIIDEIIHZHCFCBCHTARHWDYELECDYEJIIDUIPFVEGAIIBAGCCAKHECPEMCOCGHZFKAIBHBOJQCFDRAWCUBTCQACGUBYDSBLGOAZCPIYBNILAQIECFFCFHFXDPFUBZDVDDBKEZCMAEFAGZDIEHERELGJEEBTEAAIIHHGEBCXCTBHIIFPDZEFCUBMGYIXIKCHGZFTESHMAHIEHLHWEWAQGXAMEQGIBZBEIEANHFFJDPBMCVIKBMESEUFYELASJNGSBRHIBFFGFUADAQDIJREFBYALBNJREZIFGSBDFYBFCQIOFFCXFAAYGSEBGNBGHXCSAQHAIGBVJQHSAQBOCEEKGFBXDBAGDKHRDGBCBBHOJLAKGCBBDUJKHTBNISFICADWHSHZDBAGGGHDJDDDAMAUEZAQBTBFCCBCHTCGBLHSBQHQFZBHJIIFAOERATAXEIDSDYJTEKCKHHDWFTGBGCFJCWBZFHJKCSGCCOBJFGFUHFGLITDLCXFYCFIXGPHTFBHPDSISEUIECDJDFCFGAECKGBBSDWCTJRISGCDTHUHRAH
package/sample/demo.js ADDED
@@ -0,0 +1,74 @@
1
+ const path = require('path');
2
+ let printMem = ()=> {
3
+ var mem = process.memoryUsage();
4
+ var format = function(bytes) {
5
+ return (bytes/1024/1024).toFixed(2)+'MB';
6
+ };
7
+ console.log('Process1: heapTotal '+format(mem.heapTotal) + ' heapUsed ' + format(mem.heapUsed) + ' rss ' + format(mem.rss));
8
+ }
9
+ printMem()
10
+ var addon = require('bindings')('hzt_asc_v3');
11
+
12
+ const APPID = "EMZi3CQ9AhTn6p6qA4X83Wnc8XHPDzz6SMPdhSCfMsim";
13
+ const SDKKEY = "H6qfq4qxwCN146W5Rs5t5PAgFG6WVq7CqvUT5UWo8Fwa";
14
+ const ACTIVEKEY = "82K1-118E-813R-CJQ3";
15
+
16
+ let start = Date.now();
17
+ let ask = new addon.ASK(APPID, SDKKEY, ACTIVEKEY);
18
+ printMem()
19
+ console.log("init end", Date.now() - start);
20
+
21
+ for(let i = 0; i < 1; ++i) {
22
+ let num = ask.FaceDetect(path.join(__dirname, '../images/20200829105722.jpg'))
23
+ console.log("FaceDetect", num)
24
+ printMem()
25
+ }
26
+
27
+ // console.log(num)
28
+ console.log("detect end", Date.now() - start);
29
+ let feature = null;
30
+ for(let i = 0; i < 1; ++i) {
31
+ let num2 = ask.FaceFeatureExtract(path.join(__dirname, '../images/20200829105722.jpg'))
32
+ console.log("FaceFeatureExtract", num2);
33
+ if (num2.faceNum && num2.faceRects.length) {
34
+ feature = num2.faceRects[0].feature;
35
+ }
36
+ printMem()
37
+ }
38
+ console.log("extract end", Date.now() - start);
39
+
40
+ //FaceFeatureCompare
41
+ if (feature) {
42
+ let compareResult = ask.FaceFeatureCompare(feature, feature);
43
+ console.log("FaceFeatureCompare", compareResult);
44
+ console.log("FaceFeatureCompare end", Date.now() - start);
45
+ let list = [
46
+ {searchId: 1, tag: "wo", feature},
47
+ {searchId: 2, tag: "wo2", feature},
48
+ ];
49
+ let imageResult = ask.ImageFaceCompare(path.join(__dirname, '../images/20200829105722.jpg'), list, 1);
50
+ console.log("imageResult", JSON.stringify(imageResult, null, 4));
51
+ console.log("ImageFaceCompare end", Date.now() - start);
52
+ let str = Buffer.from(feature).toString('base64');
53
+ console.log("str", str, str.length);
54
+
55
+ }
56
+
57
+
58
+ // let num5 = ask.FaceFeatureInfo(path.join(__dirname, '../images/20200829105722.jpg'))
59
+ // console.log("FaceFeatureInfo", num5)
60
+
61
+
62
+ //
63
+
64
+
65
+
66
+ // let num2 = ask.FaceFeatureExtract(path.join(__dirname, '20200829105722.jpg'))
67
+ // printMem()
68
+ // console.log(num2, typeof num2)
69
+ // console.log(Date.now() - start);
70
+ // console.log("buffer size", num2.faceRects[0].feature.byteLength)
71
+
72
+
73
+ // ask.FaceFeatureCompare(num2.faceRects[0].feature)
74
+ // printMem()
Binary file
Binary file