AipFace.php 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585
  1. <?php
  2. /*
  3. * Copyright (c) 2017 Baidu.com, Inc. All Rights Reserved
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  6. * use this file except in compliance with the License. You may obtain a copy of
  7. * the License at
  8. *
  9. * Http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  13. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  14. * License for the specific language governing permissions and limitations under
  15. * the License.
  16. */
  17. require_once 'lib/AipBase.php';
  18. class AipFace extends AipBase {
  19. /**
  20. * 人脸检测 detect api url
  21. * @var string
  22. */
  23. private $detectUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/detect';
  24. /**
  25. * 人脸搜索 search api url
  26. * @var string
  27. */
  28. private $searchUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/search';
  29. /**
  30. * 人脸搜索 M:N 识别 multi_search api url
  31. * @var string
  32. */
  33. private $multiSearchUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/multi-search';
  34. /**
  35. * 人脸注册 user_add api url
  36. * @var string
  37. */
  38. private $userAddUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add';
  39. /**
  40. * 人脸更新 user_update api url
  41. * @var string
  42. */
  43. private $userUpdateUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/update';
  44. /**
  45. * 人脸删除 face_delete api url
  46. * @var string
  47. */
  48. private $faceDeleteUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/face/delete';
  49. /**
  50. * 用户信息查询 user_get api url
  51. * @var string
  52. */
  53. private $userGetUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/get';
  54. /**
  55. * 获取用户人脸列表 face_getlist api url
  56. * @var string
  57. */
  58. private $faceGetlistUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/face/getlist';
  59. /**
  60. * 获取用户列表 group_getusers api url
  61. * @var string
  62. */
  63. private $groupGetusersUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/getusers';
  64. /**
  65. * 复制用户 user_copy api url
  66. * @var string
  67. */
  68. private $userCopyUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/copy';
  69. /**
  70. * 删除用户 user_delete api url
  71. * @var string
  72. */
  73. private $userDeleteUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/delete';
  74. /**
  75. * 创建用户组 group_add api url
  76. * @var string
  77. */
  78. private $groupAddUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/add';
  79. /**
  80. * 删除用户组 group_delete api url
  81. * @var string
  82. */
  83. private $groupDeleteUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/delete';
  84. /**
  85. * 组列表查询 group_getlist api url
  86. * @var string
  87. */
  88. private $groupGetlistUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/getlist';
  89. /**
  90. * 身份验证 person_verify api url
  91. * @var string
  92. */
  93. private $personVerifyUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/person/verify';
  94. /**
  95. * 语音校验码接口 video_sessioncode api url
  96. * @var string
  97. */
  98. private $videoSessioncodeUrl = 'https://aip.baidubce.com/rest/2.0/face/v1/faceliveness/sessioncode';
  99. /**
  100. * 人脸融合 merge api url
  101. * @var string
  102. */
  103. private $mergeUrl = 'https://aip.baidubce.com/rest/2.0/face/v1/merge';
  104. /**
  105. * 人脸属性编辑 editattr api url
  106. * @var string
  107. */
  108. private $editattrUrl = 'https://aip.baidubce.com/rest/2.0/face/v1/editattr';
  109. /**
  110. * 人脸检测接口V3
  111. *
  112. * @param string $image - 图片信息(**总数据大小应小于10M**),图片上传方式根据image_type来判断
  113. * @param string $imageType - 图片类型 <br> **BASE64**:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M; <br>**URL**:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长); <br>**FACE_TOKEN**: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。
  114. * @param array $options - 可选参数对象,key: value都为string类型
  115. * @description options列表:
  116. * face_field 包括**age,beauty,expression,face_shape,gender,glasses,landmark,landmark72,landmark150,race,quality,eye_status,emotion,face_type信息** <br> 逗号分隔. 默认只返回face_token、人脸框、概率和旋转角度
  117. * max_face_num 最多处理人脸的数目,默认值为1,仅检测图片中面积最大的那个人脸;**最大值10**,检测图片中面积最大的几张人脸。
  118. * face_type 人脸的类型 **LIVE**表示生活照:通常为手机、相机拍摄的人像图片、或从网络获取的人像图片等**IDCARD**表示身份证芯片照:二代身份证内置芯片中的人像照片 **WATERMARK**表示带水印证件照:一般为带水印的小图,如公安网小图 **CERT**表示证件照片:如拍摄的身份证、工卡、护照、学生证等证件图片 默认**LIVE**
  119. * liveness_control 活体检测控制 **NONE**: 不进行控制 **LOW**:较低的活体要求(高通过率 低攻击拒绝率) **NORMAL**: 一般的活体要求(平衡的攻击拒绝率, 通过率) **HIGH**: 较高的活体要求(高攻击拒绝率 低通过率) **默认NONE**
  120. * @return array
  121. */
  122. public function detect($image, $imageType, $options=array()){
  123. $data = array();
  124. $data['image'] = $image;
  125. $data['image_type'] = $imageType;
  126. $data = array_merge($data, $options);
  127. return $this->request($this->detectUrl, json_encode($data), array(
  128. 'Content-Type' => 'application/json',
  129. ));
  130. }
  131. /**
  132. * 人脸搜索接口
  133. *
  134. * @param string $image - 图片信息(**总数据大小应小于10M**),图片上传方式根据image_type来判断
  135. * @param string $imageType - 图片类型 <br> **BASE64**:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M; <br>**URL**:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长); <br>**FACE_TOKEN**: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。
  136. * @param string $groupIdList - 从指定的group中进行查找 用逗号分隔,**上限20个**
  137. * @param array $options - 可选参数对象,key: value都为string类型
  138. * @description options列表:
  139. * max_face_num 最多处理人脸的数目<br>**默认值为1(仅检测图片中面积最大的那个人脸)** **最大值10**
  140. * match_threshold 匹配阈值(设置阈值后,score低于此阈值的用户信息将不会返回) 最大100 最小0 默认80 <br>**此阈值设置得越高,检索速度将会越快,推荐使用默认阈值`80`**
  141. * quality_control 图片质量控制 **NONE**: 不进行控制 **LOW**:较低的质量要求 **NORMAL**: 一般的质量要求 **HIGH**: 较高的质量要求 **默认 NONE**
  142. * liveness_control 活体检测控制 **NONE**: 不进行控制 **LOW**:较低的活体要求(高通过率 低攻击拒绝率) **NORMAL**: 一般的活体要求(平衡的攻击拒绝率, 通过率) **HIGH**: 较高的活体要求(高攻击拒绝率 低通过率) **默认NONE**
  143. * user_id 当需要对特定用户进行比对时,指定user_id进行比对。即人脸认证功能。
  144. * max_user_num 查找后返回的用户数量。返回相似度最高的几个用户,默认为1,最多返回50个。
  145. * @return array
  146. */
  147. public function search($image, $imageType, $groupIdList, $options=array()){
  148. $data = array();
  149. $data['image'] = $image;
  150. $data['image_type'] = $imageType;
  151. $data['group_id_list'] = $groupIdList;
  152. $data = array_merge($data, $options);
  153. return $this->request($this->searchUrl, json_encode($data), array(
  154. 'Content-Type' => 'application/json',
  155. ));
  156. }
  157. /**
  158. * 人脸搜索 M:N 识别接口
  159. *
  160. * @param string $image - 图片信息(**总数据大小应小于10M**),图片上传方式根据image_type来判断
  161. * @param string $imageType - 图片类型 <br> **BASE64**:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M; <br>**URL**:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长); <br>**FACE_TOKEN**: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。
  162. * @param string $groupIdList - 从指定的group中进行查找 用逗号分隔,**上限20个**
  163. * @param array $options - 可选参数对象,key: value都为string类型
  164. * @description options列表:
  165. * max_face_num 最多处理人脸的数目<br>**默认值为1(仅检测图片中面积最大的那个人脸)** **最大值10**
  166. * match_threshold 匹配阈值(设置阈值后,score低于此阈值的用户信息将不会返回) 最大100 最小0 默认80 <br>**此阈值设置得越高,检索速度将会越快,推荐使用默认阈值`80`**
  167. * quality_control 图片质量控制 **NONE**: 不进行控制 **LOW**:较低的质量要求 **NORMAL**: 一般的质量要求 **HIGH**: 较高的质量要求 **默认 NONE**
  168. * liveness_control 活体检测控制 **NONE**: 不进行控制 **LOW**:较低的活体要求(高通过率 低攻击拒绝率) **NORMAL**: 一般的活体要求(平衡的攻击拒绝率, 通过率) **HIGH**: 较高的活体要求(高攻击拒绝率 低通过率) **默认NONE**
  169. * max_user_num 查找后返回的用户数量。返回相似度最高的几个用户,默认为1,最多返回50个。
  170. * @return array
  171. */
  172. public function multiSearch($image, $imageType, $groupIdList, $options=array()){
  173. $data = array();
  174. $data['image'] = $image;
  175. $data['image_type'] = $imageType;
  176. $data['group_id_list'] = $groupIdList;
  177. $data = array_merge($data, $options);
  178. return $this->request($this->multiSearchUrl, json_encode($data), array(
  179. 'Content-Type' => 'application/json',
  180. ));
  181. }
  182. /**
  183. * 人脸注册接口
  184. *
  185. * @param string $image - 图片信息(总数据大小应小于10M),图片上传方式根据image_type来判断。注:组内每个uid下的人脸图片数目上限为20张
  186. * @param string $imageType - 图片类型 <br> **BASE64**:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M; <br>**URL**:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长); <br>**FACE_TOKEN**: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。
  187. * @param string $groupId - 用户组id(由数字、字母、下划线组成),长度限制128B
  188. * @param string $userId - 用户id(由数字、字母、下划线组成),长度限制128B
  189. * @param array $options - 可选参数对象,key: value都为string类型
  190. * @description options列表:
  191. * user_info 用户资料,长度限制256B
  192. * quality_control 图片质量控制 **NONE**: 不进行控制 **LOW**:较低的质量要求 **NORMAL**: 一般的质量要求 **HIGH**: 较高的质量要求 **默认 NONE**
  193. * liveness_control 活体检测控制 **NONE**: 不进行控制 **LOW**:较低的活体要求(高通过率 低攻击拒绝率) **NORMAL**: 一般的活体要求(平衡的攻击拒绝率, 通过率) **HIGH**: 较高的活体要求(高攻击拒绝率 低通过率) **默认NONE**
  194. * action_type 操作方式 APPEND: 当user_id在库中已经存在时,对此user_id重复注册时,新注册的图片默认会追加到该user_id下,REPLACE : 当对此user_id重复注册时,则会用新图替换库中该user_id下所有图片,默认使用APPEND
  195. * @return array
  196. */
  197. public function addUser($image, $imageType, $groupId, $userId, $options=array()){
  198. $data = array();
  199. $data['image'] = $image;
  200. $data['image_type'] = $imageType;
  201. $data['group_id'] = $groupId;
  202. $data['user_id'] = $userId;
  203. $data = array_merge($data, $options);
  204. return $this->request($this->userAddUrl, json_encode($data), array(
  205. 'Content-Type' => 'application/json',
  206. ));
  207. }
  208. /**
  209. * 人脸更新接口
  210. *
  211. * @param string $image - 图片信息(**总数据大小应小于10M**),图片上传方式根据image_type来判断
  212. * @param string $imageType - 图片类型 <br> **BASE64**:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M; <br>**URL**:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长); <br>**FACE_TOKEN**: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。
  213. * @param string $groupId - 更新指定groupid下uid对应的信息
  214. * @param string $userId - 用户id(由数字、字母、下划线组成),长度限制128B
  215. * @param array $options - 可选参数对象,key: value都为string类型
  216. * @description options列表:
  217. * user_info 用户资料,长度限制256B
  218. * quality_control 图片质量控制 **NONE**: 不进行控制 **LOW**:较低的质量要求 **NORMAL**: 一般的质量要求 **HIGH**: 较高的质量要求 **默认 NONE**
  219. * liveness_control 活体检测控制 **NONE**: 不进行控制 **LOW**:较低的活体要求(高通过率 低攻击拒绝率) **NORMAL**: 一般的活体要求(平衡的攻击拒绝率, 通过率) **HIGH**: 较高的活体要求(高攻击拒绝率 低通过率) **默认NONE**
  220. * action_type 操作方式 APPEND: 当user_id在库中已经存在时,对此user_id重复注册时,新注册的图片默认会追加到该user_id下,REPLACE : 当对此user_id重复注册时,则会用新图替换库中该user_id下所有图片,默认使用APPEND
  221. * @return array
  222. */
  223. public function updateUser($image, $imageType, $groupId, $userId, $options=array()){
  224. $data = array();
  225. $data['image'] = $image;
  226. $data['image_type'] = $imageType;
  227. $data['group_id'] = $groupId;
  228. $data['user_id'] = $userId;
  229. $data = array_merge($data, $options);
  230. return $this->request($this->userUpdateUrl, json_encode($data), array(
  231. 'Content-Type' => 'application/json',
  232. ));
  233. }
  234. /**
  235. * 人脸删除接口
  236. *
  237. * @param string $userId - 用户id(由数字、字母、下划线组成),长度限制128B
  238. * @param string $groupId - 用户组id(由数字、字母、下划线组成),长度限制128B
  239. * @param string $faceToken - 需要删除的人脸图片token,(由数字、字母、下划线组成)长度限制64B
  240. * @param array $options - 可选参数对象,key: value都为string类型
  241. * @description options列表:
  242. * @return array
  243. */
  244. public function faceDelete($userId, $groupId, $faceToken, $options=array()){
  245. $data = array();
  246. $data['user_id'] = $userId;
  247. $data['group_id'] = $groupId;
  248. $data['face_token'] = $faceToken;
  249. $data = array_merge($data, $options);
  250. return $this->request($this->faceDeleteUrl, json_encode($data), array(
  251. 'Content-Type' => 'application/json',
  252. ));
  253. }
  254. /**
  255. * 用户信息查询接口
  256. *
  257. * @param string $userId - 用户id(由数字、字母、下划线组成),长度限制128B
  258. * @param string $groupId - 用户组id(由数字、字母、下划线组成),长度限制128B
  259. * @param array $options - 可选参数对象,key: value都为string类型
  260. * @description options列表:
  261. * @return array
  262. */
  263. public function getUser($userId, $groupId, $options=array()){
  264. $data = array();
  265. $data['user_id'] = $userId;
  266. $data['group_id'] = $groupId;
  267. $data = array_merge($data, $options);
  268. return $this->request($this->userGetUrl, json_encode($data), array(
  269. 'Content-Type' => 'application/json',
  270. ));
  271. }
  272. /**
  273. * 获取用户人脸列表接口
  274. *
  275. * @param string $userId - 用户id(由数字、字母、下划线组成),长度限制128B
  276. * @param string $groupId - 用户组id(由数字、字母、下划线组成),长度限制128B
  277. * @param array $options - 可选参数对象,key: value都为string类型
  278. * @description options列表:
  279. * @return array
  280. */
  281. public function faceGetlist($userId, $groupId, $options=array()){
  282. $data = array();
  283. $data['user_id'] = $userId;
  284. $data['group_id'] = $groupId;
  285. $data = array_merge($data, $options);
  286. return $this->request($this->faceGetlistUrl, json_encode($data), array(
  287. 'Content-Type' => 'application/json',
  288. ));
  289. }
  290. /**
  291. * 获取用户列表接口
  292. *
  293. * @param string $groupId - 用户组id(由数字、字母、下划线组成),长度限制128B
  294. * @param array $options - 可选参数对象,key: value都为string类型
  295. * @description options列表:
  296. * start 默认值0,起始序号
  297. * length 返回数量,默认值100,最大值1000
  298. * @return array
  299. */
  300. public function getGroupUsers($groupId, $options=array()){
  301. $data = array();
  302. $data['group_id'] = $groupId;
  303. $data = array_merge($data, $options);
  304. return $this->request($this->groupGetusersUrl, json_encode($data), array(
  305. 'Content-Type' => 'application/json',
  306. ));
  307. }
  308. /**
  309. * 复制用户接口
  310. *
  311. * @param string $userId - 用户id(由数字、字母、下划线组成),长度限制128B
  312. * @param array $options - 可选参数对象,key: value都为string类型
  313. * @description options列表:
  314. * src_group_id 从指定组里复制信息
  315. * dst_group_id 需要添加用户的组id
  316. * @return array
  317. */
  318. public function userCopy($userId, $options=array()){
  319. $data = array();
  320. $data['user_id'] = $userId;
  321. $data = array_merge($data, $options);
  322. return $this->request($this->userCopyUrl, json_encode($data), array(
  323. 'Content-Type' => 'application/json',
  324. ));
  325. }
  326. /**
  327. * 删除用户接口
  328. *
  329. * @param string $groupId - 用户组id(由数字、字母、下划线组成),长度限制128B
  330. * @param string $userId - 用户id(由数字、字母、下划线组成),长度限制128B
  331. * @param array $options - 可选参数对象,key: value都为string类型
  332. * @description options列表:
  333. * @return array
  334. */
  335. public function deleteUser($groupId, $userId, $options=array()){
  336. $data = array();
  337. $data['group_id'] = $groupId;
  338. $data['user_id'] = $userId;
  339. $data = array_merge($data, $options);
  340. return $this->request($this->userDeleteUrl, json_encode($data), array(
  341. 'Content-Type' => 'application/json',
  342. ));
  343. }
  344. /**
  345. * 创建用户组接口
  346. *
  347. * @param string $groupId - 用户组id(由数字、字母、下划线组成),长度限制128B
  348. * @param array $options - 可选参数对象,key: value都为string类型
  349. * @description options列表:
  350. * @return array
  351. */
  352. public function groupAdd($groupId, $options=array()){
  353. $data = array();
  354. $data['group_id'] = $groupId;
  355. $data = array_merge($data, $options);
  356. return $this->request($this->groupAddUrl, json_encode($data), array(
  357. 'Content-Type' => 'application/json',
  358. ));
  359. }
  360. /**
  361. * 删除用户组接口
  362. *
  363. * @param string $groupId - 用户组id(由数字、字母、下划线组成),长度限制128B
  364. * @param array $options - 可选参数对象,key: value都为string类型
  365. * @description options列表:
  366. * @return array
  367. */
  368. public function groupDelete($groupId, $options=array()){
  369. $data = array();
  370. $data['group_id'] = $groupId;
  371. $data = array_merge($data, $options);
  372. return $this->request($this->groupDeleteUrl, json_encode($data), array(
  373. 'Content-Type' => 'application/json',
  374. ));
  375. }
  376. /**
  377. * 组列表查询接口
  378. *
  379. * @param array $options - 可选参数对象,key: value都为string类型
  380. * @description options列表:
  381. * start 默认值0,起始序号
  382. * length 返回数量,默认值100,最大值1000
  383. * @return array
  384. */
  385. public function getGroupList($options=array()){
  386. $data = array();
  387. $data = array_merge($data, $options);
  388. return $this->request($this->groupGetlistUrl, json_encode($data), array(
  389. 'Content-Type' => 'application/json',
  390. ));
  391. }
  392. /**
  393. * 身份验证接口
  394. *
  395. * @param string $image - 图片信息(**总数据大小应小于10M**),图片上传方式根据image_type来判断
  396. * @param string $imageType - 图片类型 <br> **BASE64**:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M; <br>**URL**:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长); <br>**FACE_TOKEN**: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。
  397. * @param string $idCardNumber - 身份证号(真实身份证号号码)
  398. * @param string $name - utf8,姓名(真实姓名,和身份证号匹配)
  399. * @param array $options - 可选参数对象,key: value都为string类型
  400. * @description options列表:
  401. * quality_control 图片质量控制 **NONE**: 不进行控制 **LOW**:较低的质量要求 **NORMAL**: 一般的质量要求 **HIGH**: 较高的质量要求 **默认 NONE**
  402. * liveness_control 活体检测控制 **NONE**: 不进行控制 **LOW**:较低的活体要求(高通过率 低攻击拒绝率) **NORMAL**: 一般的活体要求(平衡的攻击拒绝率, 通过率) **HIGH**: 较高的活体要求(高攻击拒绝率 低通过率) **默认NONE**
  403. * @return array
  404. */
  405. public function personVerify($image, $imageType, $idCardNumber, $name, $options=array()){
  406. $data = array();
  407. $data['image'] = $image;
  408. $data['image_type'] = $imageType;
  409. $data['id_card_number'] = $idCardNumber;
  410. $data['name'] = $name;
  411. $data = array_merge($data, $options);
  412. return $this->request($this->personVerifyUrl, json_encode($data), array(
  413. 'Content-Type' => 'application/json',
  414. ));
  415. }
  416. /**
  417. * 语音校验码接口接口
  418. *
  419. * @param array $options - 可选参数对象,key: value都为string类型
  420. * @description options列表:
  421. * appid 百度云创建应用时的唯一标识ID
  422. * @return array
  423. */
  424. public function videoSessioncode($options=array()){
  425. $data = array();
  426. $data = array_merge($data, $options);
  427. return $this->request($this->videoSessioncodeUrl, json_encode($data), array(
  428. 'Content-Type' => 'application/json',
  429. ));
  430. }
  431. /**
  432. * 在线活体检测 faceverify api url
  433. * @var string
  434. */
  435. private $faceverifyUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/faceverify';
  436. /**
  437. * 在线活体检测接口
  438. *
  439. * @param array $images
  440. * @return array
  441. */
  442. public function faceverify($images){
  443. return $this->request($this->faceverifyUrl, json_encode($images), array(
  444. 'Content-Type' => 'application/json',
  445. ));
  446. }
  447. /**
  448. * 人脸比对 match api url
  449. * @var string
  450. */
  451. private $matchUrl = 'https://aip.baidubce.com/rest/2.0/face/v3/match';
  452. /**
  453. * 人脸比对接口
  454. *
  455. * @param array $images
  456. * @return array
  457. */
  458. public function match($images){
  459. return $this->request($this->matchUrl, json_encode($images), array(
  460. 'Content-Type' => 'application/json',
  461. ));
  462. }
  463. /**
  464. * 人脸比对接口
  465. *
  466. * @param array $images
  467. * @return array
  468. */
  469. public function merge($images){
  470. return $this->request($this->matchUrl, json_encode($images), array(
  471. 'Content-Type' => 'application/json',
  472. ));
  473. }
  474. /**
  475. * 人脸属性编辑
  476. *
  477. * @param array $images
  478. * @return array
  479. */
  480. public function editattr($images, $imageType, $actionType,$target=0, $qualityControl='NONE'){
  481. $data['image'] = $images;
  482. $data['image_type'] = $imageType;
  483. $data['action_type'] = $actionType;
  484. $data['target'] = $target;
  485. $data['quality_control'] = $qualityControl;
  486. return $this->request($this->editattrUrl, json_encode($data), array(
  487. 'Content-Type' => 'application/json',
  488. ));
  489. }
  490. }