AipOcr.php 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110
  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 AipOcr extends AipBase {
  19. /**
  20. * 通用文字识别 general_basic api url
  21. * @var string
  22. */
  23. private $generalBasicUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic';
  24. /**
  25. * 通用文字识别(高精度版) accurate_basic api url
  26. * @var string
  27. */
  28. private $accurateBasicUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic';
  29. /**
  30. * 通用文字识别(含位置信息版) general api url
  31. * @var string
  32. */
  33. private $generalUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general';
  34. /**
  35. * 通用文字识别(含位置高精度版) accurate api url
  36. * @var string
  37. */
  38. private $accurateUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate';
  39. /**
  40. * 通用文字识别(含生僻字版) general_enhanced api url
  41. * @var string
  42. */
  43. private $generalEnhancedUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_enhanced';
  44. /**
  45. * 网络图片文字识别 web_image api url
  46. * @var string
  47. */
  48. private $webImageUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/webimage';
  49. /**
  50. * 身份证识别 idcard api url
  51. * @var string
  52. */
  53. private $idcardUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/idcard';
  54. /**
  55. * 银行卡识别 bankcard api url
  56. * @var string
  57. */
  58. private $bankcardUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/bankcard';
  59. /**
  60. * 驾驶证识别 driving_license api url
  61. * @var string
  62. */
  63. private $drivingLicenseUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/driving_license';
  64. /**
  65. * 行驶证识别 vehicle_license api url
  66. * @var string
  67. */
  68. private $vehicleLicenseUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/vehicle_license';
  69. /**
  70. * 车牌识别 license_plate api url
  71. * @var string
  72. */
  73. private $licensePlateUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate';
  74. /**
  75. * 营业执照识别 business_license api url
  76. * @var string
  77. */
  78. private $businessLicenseUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/business_license';
  79. /**
  80. * 通用票据识别 receipt api url
  81. * @var string
  82. */
  83. private $receiptUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/receipt';
  84. /**
  85. * 火车票识别 train_ticket api url
  86. * @var string
  87. */
  88. private $trainTicketUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/train_ticket';
  89. /**
  90. * 出租车票识别 taxi_receipt api url
  91. * @var string
  92. */
  93. private $taxiReceiptUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/taxi_receipt';
  94. /**
  95. * 表格文字识别同步接口 form api url
  96. * @var string
  97. */
  98. private $formUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/form';
  99. /**
  100. * 表格文字识别 table_recognize api url
  101. * @var string
  102. */
  103. private $tableRecognizeUrl = 'https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/request';
  104. /**
  105. * 表格识别结果 table_result_get api url
  106. * @var string
  107. */
  108. private $tableResultGetUrl = 'https://aip.baidubce.com/rest/2.0/solution/v1/form_ocr/get_request_result';
  109. /**
  110. * VIN码识别 vin_code api url
  111. * @var string
  112. */
  113. private $vinCodeUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/vin_code';
  114. /**
  115. * 定额发票识别 quota_invoice api url
  116. * @var string
  117. */
  118. private $quotaInvoiceUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/quota_invoice';
  119. /**
  120. * 户口本识别 household_register api url
  121. * @var string
  122. */
  123. private $householdRegisterUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/household_register';
  124. /**
  125. * 港澳通行证识别 HK_Macau_exitentrypermit api url
  126. * @var string
  127. */
  128. private $HKMacauExitentrypermitUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/HK_Macau_exitentrypermit';
  129. /**
  130. * 台湾通行证识别 taiwan_exitentrypermit api url
  131. * @var string
  132. */
  133. private $taiwanExitentrypermitUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/taiwan_exitentrypermit';
  134. /**
  135. * 出生医学证明识别 birth_certificate api url
  136. * @var string
  137. */
  138. private $birthCertificateUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/birth_certificate';
  139. /**
  140. * 机动车销售发票识别 vehicle_invoice api url
  141. * @var string
  142. */
  143. private $vehicleInvoiceUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/vehicle_invoice';
  144. /**
  145. * 车辆合格证识别 vehicle_certificate api url
  146. * @var string
  147. */
  148. private $vehicleCertificateUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/vehicle_certificate';
  149. /**
  150. * 税务局通用机打发票识别 invoice api url
  151. * @var string
  152. */
  153. private $invoiceUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/invoice';
  154. /**
  155. * 行程单识别 air_ticket api url
  156. * @var string
  157. */
  158. private $airTicketUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/air_ticket';
  159. /**
  160. * 保单识别 insurance_documents api url
  161. * @var string
  162. */
  163. private $insuranceDocumentsUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/insurance_documents';
  164. /**
  165. * 增值税发票识别 vat_invoice api url
  166. * @var string
  167. */
  168. private $vatInvoiceUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/vat_invoice';
  169. /**
  170. * 二维码识别 qrcode api url
  171. * @var string
  172. */
  173. private $qrcodeUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/qrcode';
  174. /**
  175. * 数字识别 numbers api url
  176. * @var string
  177. */
  178. private $numbersUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/numbers';
  179. /**
  180. * 彩票识别 lottery api url
  181. * @var string
  182. */
  183. private $lotteryUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/lottery';
  184. /**
  185. * 护照识别 passport api url
  186. * @var string
  187. */
  188. private $passportUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/passport';
  189. /**
  190. * 名片识别 business_card api url
  191. * @var string
  192. */
  193. private $businessCardUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/business_card';
  194. /**
  195. * 手写文字识别 handwriting api url
  196. * @var string
  197. */
  198. private $handwritingUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/handwriting';
  199. /**
  200. * 自定义模板文字识别 custom api url
  201. * @var string
  202. */
  203. private $customUrl = 'https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise';
  204. /**
  205. * 通用文字识别接口
  206. *
  207. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  208. * @param array $options - 可选参数对象,key: value都为string类型
  209. * @description options列表:
  210. * language_type 识别语言类型,默认为CHN_ENG。可选值包括:<br>- CHN_ENG:中英文混合;<br>- ENG:英文;<br>- POR:葡萄牙语;<br>- FRE:法语;<br>- GER:德语;<br>- ITA:意大利语;<br>- SPA:西班牙语;<br>- RUS:俄语;<br>- JAP:日语;<br>- KOR:韩语;
  211. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  212. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  213. * probability 是否返回识别结果中每一行的置信度
  214. * @return array
  215. */
  216. public function basicGeneral($image, $options=array()){
  217. $data = array();
  218. $data['image'] = base64_encode($image);
  219. $data = array_merge($data, $options);
  220. return $this->request($this->generalBasicUrl, $data);
  221. }
  222. /**
  223. * 通用文字识别接口
  224. *
  225. * @param string $url - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
  226. * @param array $options - 可选参数对象,key: value都为string类型
  227. * @description options列表:
  228. * language_type 识别语言类型,默认为CHN_ENG。可选值包括:<br>- CHN_ENG:中英文混合;<br>- ENG:英文;<br>- POR:葡萄牙语;<br>- FRE:法语;<br>- GER:德语;<br>- ITA:意大利语;<br>- SPA:西班牙语;<br>- RUS:俄语;<br>- JAP:日语;<br>- KOR:韩语;
  229. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  230. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  231. * probability 是否返回识别结果中每一行的置信度
  232. * @return array
  233. */
  234. public function basicGeneralUrl($url, $options=array()){
  235. $data = array();
  236. $data['url'] = $url;
  237. $data = array_merge($data, $options);
  238. return $this->request($this->generalBasicUrl, $data);
  239. }
  240. /**
  241. * 通用文字识别(高精度版)接口
  242. *
  243. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  244. * @param array $options - 可选参数对象,key: value都为string类型
  245. * @description options列表:
  246. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  247. * probability 是否返回识别结果中每一行的置信度
  248. * @return array
  249. */
  250. public function basicAccurate($image, $options=array()){
  251. $data = array();
  252. $data['image'] = base64_encode($image);
  253. $data = array_merge($data, $options);
  254. return $this->request($this->accurateBasicUrl, $data);
  255. }
  256. /**
  257. * 通用文字识别(含位置信息版)接口
  258. *
  259. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  260. * @param array $options - 可选参数对象,key: value都为string类型
  261. * @description options列表:
  262. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  263. * language_type 识别语言类型,默认为CHN_ENG。可选值包括:<br>- CHN_ENG:中英文混合;<br>- ENG:英文;<br>- POR:葡萄牙语;<br>- FRE:法语;<br>- GER:德语;<br>- ITA:意大利语;<br>- SPA:西班牙语;<br>- RUS:俄语;<br>- JAP:日语;<br>- KOR:韩语;
  264. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  265. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  266. * vertexes_location 是否返回文字外接多边形顶点位置,不支持单字位置。默认为false
  267. * probability 是否返回识别结果中每一行的置信度
  268. * @return array
  269. */
  270. public function general($image, $options=array()){
  271. $data = array();
  272. $data['image'] = base64_encode($image);
  273. $data = array_merge($data, $options);
  274. return $this->request($this->generalUrl, $data);
  275. }
  276. /**
  277. * 通用文字识别(含位置信息版)接口
  278. *
  279. * @param string $url - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
  280. * @param array $options - 可选参数对象,key: value都为string类型
  281. * @description options列表:
  282. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  283. * language_type 识别语言类型,默认为CHN_ENG。可选值包括:<br>- CHN_ENG:中英文混合;<br>- ENG:英文;<br>- POR:葡萄牙语;<br>- FRE:法语;<br>- GER:德语;<br>- ITA:意大利语;<br>- SPA:西班牙语;<br>- RUS:俄语;<br>- JAP:日语;<br>- KOR:韩语;
  284. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  285. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  286. * vertexes_location 是否返回文字外接多边形顶点位置,不支持单字位置。默认为false
  287. * probability 是否返回识别结果中每一行的置信度
  288. * @return array
  289. */
  290. public function generalUrl($url, $options=array()){
  291. $data = array();
  292. $data['url'] = $url;
  293. $data = array_merge($data, $options);
  294. return $this->request($this->generalUrl, $data);
  295. }
  296. /**
  297. * 通用文字识别(含位置高精度版)接口
  298. *
  299. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  300. * @param array $options - 可选参数对象,key: value都为string类型
  301. * @description options列表:
  302. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  303. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  304. * vertexes_location 是否返回文字外接多边形顶点位置,不支持单字位置。默认为false
  305. * probability 是否返回识别结果中每一行的置信度
  306. * @return array
  307. */
  308. public function accurate($image, $options=array()){
  309. $data = array();
  310. $data['image'] = base64_encode($image);
  311. $data = array_merge($data, $options);
  312. return $this->request($this->accurateUrl, $data);
  313. }
  314. /**
  315. * 通用文字识别(含生僻字版)接口
  316. *
  317. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  318. * @param array $options - 可选参数对象,key: value都为string类型
  319. * @description options列表:
  320. * language_type 识别语言类型,默认为CHN_ENG。可选值包括:<br>- CHN_ENG:中英文混合;<br>- ENG:英文;<br>- POR:葡萄牙语;<br>- FRE:法语;<br>- GER:德语;<br>- ITA:意大利语;<br>- SPA:西班牙语;<br>- RUS:俄语;<br>- JAP:日语;<br>- KOR:韩语;
  321. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  322. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  323. * probability 是否返回识别结果中每一行的置信度
  324. * @return array
  325. */
  326. public function enhancedGeneral($image, $options=array()){
  327. $data = array();
  328. $data['image'] = base64_encode($image);
  329. $data = array_merge($data, $options);
  330. return $this->request($this->generalEnhancedUrl, $data);
  331. }
  332. /**
  333. * 通用文字识别(含生僻字版)接口
  334. *
  335. * @param string $url - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
  336. * @param array $options - 可选参数对象,key: value都为string类型
  337. * @description options列表:
  338. * language_type 识别语言类型,默认为CHN_ENG。可选值包括:<br>- CHN_ENG:中英文混合;<br>- ENG:英文;<br>- POR:葡萄牙语;<br>- FRE:法语;<br>- GER:德语;<br>- ITA:意大利语;<br>- SPA:西班牙语;<br>- RUS:俄语;<br>- JAP:日语;<br>- KOR:韩语;
  339. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  340. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  341. * probability 是否返回识别结果中每一行的置信度
  342. * @return array
  343. */
  344. public function enhancedGeneralUrl($url, $options=array()){
  345. $data = array();
  346. $data['url'] = $url;
  347. $data = array_merge($data, $options);
  348. return $this->request($this->generalEnhancedUrl, $data);
  349. }
  350. /**
  351. * 网络图片文字识别接口
  352. *
  353. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  354. * @param array $options - 可选参数对象,key: value都为string类型
  355. * @description options列表:
  356. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  357. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  358. * @return array
  359. */
  360. public function webImage($image, $options=array()){
  361. $data = array();
  362. $data['image'] = base64_encode($image);
  363. $data = array_merge($data, $options);
  364. return $this->request($this->webImageUrl, $data);
  365. }
  366. /**
  367. * 网络图片文字识别接口
  368. *
  369. * @param string $url - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
  370. * @param array $options - 可选参数对象,key: value都为string类型
  371. * @description options列表:
  372. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  373. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  374. * @return array
  375. */
  376. public function webImageUrl($url, $options=array()){
  377. $data = array();
  378. $data['url'] = $url;
  379. $data = array_merge($data, $options);
  380. return $this->request($this->webImageUrl, $data);
  381. }
  382. /**
  383. * 身份证识别接口
  384. *
  385. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  386. * @param string $idCardSide - front:身份证含照片的一面;back:身份证带国徽的一面
  387. * @param array $options - 可选参数对象,key: value都为string类型
  388. * @description options列表:
  389. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  390. * detect_risk 是否开启身份证风险类型(身份证复印件、临时身份证、身份证翻拍、修改过的身份证)功能,默认不开启,即:false。可选值:true-开启;false-不开启
  391. * @return array
  392. */
  393. public function idcard($image, $idCardSide, $options=array()){
  394. $data = array();
  395. $data['image'] = base64_encode($image);
  396. $data['id_card_side'] = $idCardSide;
  397. $data = array_merge($data, $options);
  398. return $this->request($this->idcardUrl, $data);
  399. }
  400. /**
  401. * 银行卡识别接口
  402. *
  403. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  404. * @param array $options - 可选参数对象,key: value都为string类型
  405. * @description options列表:
  406. * @return array
  407. */
  408. public function bankcard($image, $options=array()){
  409. $data = array();
  410. $data['image'] = base64_encode($image);
  411. $data = array_merge($data, $options);
  412. return $this->request($this->bankcardUrl, $data);
  413. }
  414. /**
  415. * 驾驶证识别接口
  416. *
  417. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  418. * @param array $options - 可选参数对象,key: value都为string类型
  419. * @description options列表:
  420. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  421. * @return array
  422. */
  423. public function drivingLicense($image, $options=array()){
  424. $data = array();
  425. $data['image'] = base64_encode($image);
  426. $data = array_merge($data, $options);
  427. return $this->request($this->drivingLicenseUrl, $data);
  428. }
  429. /**
  430. * 行驶证识别接口
  431. *
  432. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  433. * @param array $options - 可选参数对象,key: value都为string类型
  434. * @description options列表:
  435. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  436. * accuracy normal 使用快速服务,1200ms左右时延;缺省或其它值使用高精度服务,1600ms左右时延
  437. * @return array
  438. */
  439. public function vehicleLicense($image, $options=array()){
  440. $data = array();
  441. $data['image'] = base64_encode($image);
  442. $data = array_merge($data, $options);
  443. return $this->request($this->vehicleLicenseUrl, $data);
  444. }
  445. /**
  446. * 车牌识别接口
  447. *
  448. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  449. * @param array $options - 可选参数对象,key: value都为string类型
  450. * @description options列表:
  451. * multi_detect 是否检测多张车牌,默认为false,当置为true的时候可以对一张图片内的多张车牌进行识别
  452. * @return array
  453. */
  454. public function licensePlate($image, $options=array()){
  455. $data = array();
  456. $data['image'] = base64_encode($image);
  457. $data = array_merge($data, $options);
  458. return $this->request($this->licensePlateUrl, $data);
  459. }
  460. /**
  461. * 营业执照识别接口
  462. *
  463. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  464. * @param array $options - 可选参数对象,key: value都为string类型
  465. * @description options列表:
  466. * @return array
  467. */
  468. public function businessLicense($image, $options=array()){
  469. $data = array();
  470. $data['image'] = base64_encode($image);
  471. $data = array_merge($data, $options);
  472. return $this->request($this->businessLicenseUrl, $data);
  473. }
  474. /**
  475. * 通用票据识别接口
  476. *
  477. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  478. * @param array $options - 可选参数对象,key: value都为string类型
  479. * @description options列表:
  480. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  481. * probability 是否返回识别结果中每一行的置信度
  482. * accuracy normal 使用快速服务,1200ms左右时延;缺省或其它值使用高精度服务,1600ms左右时延
  483. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  484. * @return array
  485. */
  486. public function receipt($image, $options=array()){
  487. $data = array();
  488. $data['image'] = base64_encode($image);
  489. $data = array_merge($data, $options);
  490. return $this->request($this->receiptUrl, $data);
  491. }
  492. /**
  493. * 火车票识别接口
  494. *
  495. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  496. * @param array $options - 可选参数对象,key: value都为string类型
  497. * @description options列表:
  498. * @return array
  499. */
  500. public function trainTicket($image, $options=array()){
  501. $data = array();
  502. $data['image'] = base64_encode($image);
  503. $data = array_merge($data, $options);
  504. return $this->request($this->trainTicketUrl, $data);
  505. }
  506. /**
  507. * 出租车票识别接口
  508. *
  509. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  510. * @param array $options - 可选参数对象,key: value都为string类型
  511. * @description options列表:
  512. * @return array
  513. */
  514. public function taxiReceipt($image, $options=array()){
  515. $data = array();
  516. $data['image'] = base64_encode($image);
  517. $data = array_merge($data, $options);
  518. return $this->request($this->taxiReceiptUrl, $data);
  519. }
  520. /**
  521. * 表格文字识别同步接口接口
  522. *
  523. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  524. * @param array $options - 可选参数对象,key: value都为string类型
  525. * @description options列表:
  526. * @return array
  527. */
  528. public function form($image, $options=array()){
  529. $data = array();
  530. $data['image'] = base64_encode($image);
  531. $data = array_merge($data, $options);
  532. return $this->request($this->formUrl, $data);
  533. }
  534. /**
  535. * 表格文字识别接口
  536. *
  537. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  538. * @param array $options - 可选参数对象,key: value都为string类型
  539. * @description options列表:
  540. * @return array
  541. */
  542. public function tableRecognitionAsync($image, $options=array()){
  543. $data = array();
  544. $data['image'] = base64_encode($image);
  545. $data = array_merge($data, $options);
  546. return $this->request($this->tableRecognizeUrl, $data);
  547. }
  548. /**
  549. * 表格识别结果接口
  550. *
  551. * @param string $requestId - 发送表格文字识别请求时返回的request id
  552. * @param array $options - 可选参数对象,key: value都为string类型
  553. * @description options列表:
  554. * result_type 期望获取结果的类型,取值为“excel”时返回xls文件的地址,取值为“json”时返回json格式的字符串,默认为”excel”
  555. * @return array
  556. */
  557. public function getTableRecognitionResult($requestId, $options=array()){
  558. $data = array();
  559. $data['request_id'] = $requestId;
  560. $data = array_merge($data, $options);
  561. return $this->request($this->tableResultGetUrl, $data);
  562. }
  563. /**
  564. * VIN码识别接口
  565. *
  566. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  567. * @param array $options - 可选参数对象,key: value都为string类型
  568. * @description options列表:
  569. * @return array
  570. */
  571. public function vinCode($image, $options=array()){
  572. $data = array();
  573. $data['image'] = base64_encode($image);
  574. $data = array_merge($data, $options);
  575. return $this->request($this->vinCodeUrl, $data);
  576. }
  577. /**
  578. * 定额发票识别接口
  579. *
  580. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  581. * @param array $options - 可选参数对象,key: value都为string类型
  582. * @description options列表:
  583. * @return array
  584. */
  585. public function quotaInvoice($image, $options=array()){
  586. $data = array();
  587. $data['image'] = base64_encode($image);
  588. $data = array_merge($data, $options);
  589. return $this->request($this->quotaInvoiceUrl, $data);
  590. }
  591. /**
  592. * 户口本识别接口
  593. *
  594. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  595. * @param array $options - 可选参数对象,key: value都为string类型
  596. * @description options列表:
  597. * @return array
  598. */
  599. public function householdRegister($image, $options=array()){
  600. $data = array();
  601. $data['image'] = base64_encode($image);
  602. $data = array_merge($data, $options);
  603. return $this->request($this->householdRegisterUrl, $data);
  604. }
  605. /**
  606. * 港澳通行证识别接口
  607. *
  608. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  609. * @param array $options - 可选参数对象,key: value都为string类型
  610. * @description options列表:
  611. * @return array
  612. */
  613. public function HKMacauExitentrypermit($image, $options=array()){
  614. $data = array();
  615. $data['image'] = base64_encode($image);
  616. $data = array_merge($data, $options);
  617. return $this->request($this->HKMacauExitentrypermitUrl, $data);
  618. }
  619. /**
  620. * 台湾通行证识别接口
  621. *
  622. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  623. * @param array $options - 可选参数对象,key: value都为string类型
  624. * @description options列表:
  625. * @return array
  626. */
  627. public function taiwanExitentrypermit($image, $options=array()){
  628. $data = array();
  629. $data['image'] = base64_encode($image);
  630. $data = array_merge($data, $options);
  631. return $this->request($this->taiwanExitentrypermitUrl, $data);
  632. }
  633. /**
  634. * 出生医学证明识别接口
  635. *
  636. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  637. * @param array $options - 可选参数对象,key: value都为string类型
  638. * @description options列表:
  639. * @return array
  640. */
  641. public function birthCertificate($image, $options=array()){
  642. $data = array();
  643. $data['image'] = base64_encode($image);
  644. $data = array_merge($data, $options);
  645. return $this->request($this->birthCertificateUrl, $data);
  646. }
  647. /**
  648. * 机动车销售发票识别接口
  649. *
  650. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  651. * @param array $options - 可选参数对象,key: value都为string类型
  652. * @description options列表:
  653. * @return array
  654. */
  655. public function vehicleInvoice($image, $options=array()){
  656. $data = array();
  657. $data['image'] = base64_encode($image);
  658. $data = array_merge($data, $options);
  659. return $this->request($this->vehicleInvoiceUrl, $data);
  660. }
  661. /**
  662. * 车辆合格证识别接口
  663. *
  664. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  665. * @param array $options - 可选参数对象,key: value都为string类型
  666. * @description options列表:
  667. * @return array
  668. */
  669. public function vehicleCertificate($image, $options=array()){
  670. $data = array();
  671. $data['image'] = base64_encode($image);
  672. $data = array_merge($data, $options);
  673. return $this->request($this->vehicleCertificateUrl, $data);
  674. }
  675. /**
  676. * 税务局通用机打发票识别接口
  677. *
  678. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  679. * @param array $options - 可选参数对象,key: value都为string类型
  680. * @description options列表:
  681. * location 是否输出位置信息,true:输出位置信息,false:不输出位置信息,默认false
  682. * @return array
  683. */
  684. public function invoice($image, $options=array()){
  685. $data = array();
  686. $data['image'] = base64_encode($image);
  687. $data = array_merge($data, $options);
  688. return $this->request($this->invoiceUrl, $data);
  689. }
  690. /**
  691. * 行程单识别接口
  692. *
  693. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  694. * @param array $options - 可选参数对象,key: value都为string类型
  695. * @description options列表:
  696. * location 是否输出位置信息,true:输出位置信息,false:不输出位置信息,默认false
  697. * @return array
  698. */
  699. public function airTicket($image, $options=array()){
  700. $data = array();
  701. $data['image'] = base64_encode($image);
  702. $data = array_merge($data, $options);
  703. return $this->request($this->airTicketUrl, $data);
  704. }
  705. /**
  706. * 保单识别接口
  707. *
  708. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  709. * @param array $options - 可选参数对象,key: value都为string类型
  710. * @description options列表:
  711. * rkv_business 是否进行商业逻辑处理,rue:进行商业逻辑处理,false:不进行商业逻辑处理,默认true
  712. * @return array
  713. */
  714. public function insuranceDocuments($image, $options=array()){
  715. $data = array();
  716. $data['image'] = base64_encode($image);
  717. $data = array_merge($data, $options);
  718. return $this->request($this->insuranceDocumentsUrl, $data);
  719. }
  720. /**
  721. * 增值税发票识别接口
  722. *
  723. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  724. * @param array $options - 可选参数对象,key: value都为string类型
  725. * @description options列表:
  726. * @return array
  727. */
  728. public function vatInvoice($image, $options=array()){
  729. $data = array();
  730. $data['image'] = base64_encode($image);
  731. $data = array_merge($data, $options);
  732. return $this->request($this->vatInvoiceUrl, $data);
  733. }
  734. /**
  735. * 二维码识别接口
  736. *
  737. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  738. * @param array $options - 可选参数对象,key: value都为string类型
  739. * @description options列表:
  740. * @return array
  741. */
  742. public function qrcode($image, $options=array()){
  743. $data = array();
  744. $data['image'] = base64_encode($image);
  745. $data = array_merge($data, $options);
  746. return $this->request($this->qrcodeUrl, $data);
  747. }
  748. /**
  749. * 数字识别接口
  750. *
  751. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  752. * @param array $options - 可选参数对象,key: value都为string类型
  753. * @description options列表:
  754. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  755. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  756. * @return array
  757. */
  758. public function numbers($image, $options=array()){
  759. $data = array();
  760. $data['image'] = base64_encode($image);
  761. $data = array_merge($data, $options);
  762. return $this->request($this->numbersUrl, $data);
  763. }
  764. /**
  765. * 彩票识别接口
  766. *
  767. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  768. * @param array $options - 可选参数对象,key: value都为string类型
  769. * @description options列表:
  770. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  771. * @return array
  772. */
  773. public function lottery($image, $options=array()){
  774. $data = array();
  775. $data['image'] = base64_encode($image);
  776. $data = array_merge($data, $options);
  777. return $this->request($this->lotteryUrl, $data);
  778. }
  779. /**
  780. * 护照识别接口
  781. *
  782. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  783. * @param array $options - 可选参数对象,key: value都为string类型
  784. * @description options列表:
  785. * @return array
  786. */
  787. public function passport($image, $options=array()){
  788. $data = array();
  789. $data['image'] = base64_encode($image);
  790. $data = array_merge($data, $options);
  791. return $this->request($this->passportUrl, $data);
  792. }
  793. /**
  794. * 名片识别接口
  795. *
  796. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  797. * @param array $options - 可选参数对象,key: value都为string类型
  798. * @description options列表:
  799. * @return array
  800. */
  801. public function businessCard($image, $options=array()){
  802. $data = array();
  803. $data['image'] = base64_encode($image);
  804. $data = array_merge($data, $options);
  805. return $this->request($this->businessCardUrl, $data);
  806. }
  807. /**
  808. * 手写文字识别接口
  809. *
  810. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  811. * @param array $options - 可选参数对象,key: value都为string类型
  812. * @description options列表:
  813. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  814. * @return array
  815. */
  816. public function handwriting($image, $options=array()){
  817. $data = array();
  818. $data['image'] = base64_encode($image);
  819. $data = array_merge($data, $options);
  820. return $this->request($this->handwritingUrl, $data);
  821. }
  822. /**
  823. * 自定义模板文字识别接口
  824. *
  825. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  826. * @param array $options - 可选参数对象,key: value都为string类型
  827. * @description options列表:
  828. * templateSign 您在自定义文字识别平台制作的模板的ID
  829. * classifierId 分类器Id。这个参数和templateSign至少存在一个,优先使用templateSign。存在templateSign时,表示使用指定模板;如果没有templateSign而有classifierId,表示使用分类器去判断使用哪个模板
  830. * @return array
  831. */
  832. public function custom($image, $options=array()){
  833. $data = array();
  834. $data['image'] = base64_encode($image);
  835. $data = array_merge($data, $options);
  836. return $this->request($this->customUrl, $data);
  837. }
  838. /**
  839. * 同步请求
  840. * @param string $image 图像读取
  841. * @param options 接口可选参数
  842. * @return array
  843. */
  844. public function tableRecognition($image, $options=array(), $timeout=10000){
  845. $result = $this->tableRecognitionAsync($image);
  846. if(isset($result['error_code'])){
  847. return $result;
  848. }
  849. $requestId = $result['result'][0]['request_id'];
  850. $count = ceil($timeout / 1000);
  851. for($i=0; $i<$count; $i++){
  852. $result = $this->getTableRecognitionResult($requestId, $options);
  853. // 完成
  854. if($result['result']['ret_code'] == 3){
  855. break;
  856. }
  857. sleep(1);
  858. }
  859. return $result;
  860. }
  861. }