AipOcr.php 45 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196
  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. * @var string
  207. */
  208. private $docAnalysis = "https://aip.baidubce.com/rest/2.0/ocr/v1/doc_analysis";
  209. /**
  210. * 仪器仪表盘读数识别
  211. * @var string
  212. */
  213. private $meter = "https://aip.baidubce.com/rest/2.0/ocr/v1/meter";
  214. /**
  215. * 网络图片文字识别(含位置版)
  216. * @var string
  217. */
  218. private $webimageLoc = "https://aip.baidubce.com/rest/2.0/ocr/v1/webimage_loc";
  219. /**
  220. * 通用文字识别接口
  221. *
  222. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  223. * @param array $options - 可选参数对象,key: value都为string类型
  224. * @description options列表:
  225. * 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:韩语;
  226. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  227. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  228. * probability 是否返回识别结果中每一行的置信度
  229. * @return array
  230. */
  231. public function basicGeneral($image, $options=array()){
  232. $data = array();
  233. $data['image'] = base64_encode($image);
  234. $data = array_merge($data, $options);
  235. return $this->request($this->generalBasicUrl, $data);
  236. }
  237. /**
  238. * 通用文字识别接口
  239. *
  240. * @param string $url - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
  241. * @param array $options - 可选参数对象,key: value都为string类型
  242. * @description options列表:
  243. * 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:韩语;
  244. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  245. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  246. * probability 是否返回识别结果中每一行的置信度
  247. * @return array
  248. */
  249. public function basicGeneralUrl($url, $options=array()){
  250. $data = array();
  251. $data['url'] = $url;
  252. $data = array_merge($data, $options);
  253. return $this->request($this->generalBasicUrl, $data);
  254. }
  255. /**
  256. * 通用文字识别(高精度版)接口
  257. *
  258. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  259. * @param array $options - 可选参数对象,key: value都为string类型
  260. * @description options列表:
  261. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  262. * probability 是否返回识别结果中每一行的置信度
  263. * @return array
  264. */
  265. public function basicAccurate($image, $options=array()){
  266. $data = array();
  267. $data['image'] = base64_encode($image);
  268. $data = array_merge($data, $options);
  269. return $this->request($this->accurateBasicUrl, $data);
  270. }
  271. /**
  272. * 通用文字识别(含位置信息版)接口
  273. *
  274. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  275. * @param array $options - 可选参数对象,key: value都为string类型
  276. * @description options列表:
  277. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  278. * 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:韩语;
  279. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  280. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  281. * vertexes_location 是否返回文字外接多边形顶点位置,不支持单字位置。默认为false
  282. * probability 是否返回识别结果中每一行的置信度
  283. * @return array
  284. */
  285. public function general($image, $options=array()){
  286. $data = array();
  287. $data['image'] = base64_encode($image);
  288. $data = array_merge($data, $options);
  289. return $this->request($this->generalUrl, $data);
  290. }
  291. /**
  292. * 通用文字识别(含位置信息版)接口
  293. *
  294. * @param string $url - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
  295. * @param array $options - 可选参数对象,key: value都为string类型
  296. * @description options列表:
  297. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  298. * 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:韩语;
  299. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  300. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  301. * vertexes_location 是否返回文字外接多边形顶点位置,不支持单字位置。默认为false
  302. * probability 是否返回识别结果中每一行的置信度
  303. * @return array
  304. */
  305. public function generalUrl($url, $options=array()){
  306. $data = array();
  307. $data['url'] = $url;
  308. $data = array_merge($data, $options);
  309. return $this->request($this->generalUrl, $data);
  310. }
  311. /**
  312. * 通用文字识别(含位置高精度版)接口
  313. *
  314. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  315. * @param array $options - 可选参数对象,key: value都为string类型
  316. * @description options列表:
  317. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  318. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  319. * vertexes_location 是否返回文字外接多边形顶点位置,不支持单字位置。默认为false
  320. * probability 是否返回识别结果中每一行的置信度
  321. * @return array
  322. */
  323. public function accurate($image, $options=array()){
  324. $data = array();
  325. $data['image'] = base64_encode($image);
  326. $data = array_merge($data, $options);
  327. return $this->request($this->accurateUrl, $data);
  328. }
  329. /**
  330. * 通用文字识别(含生僻字版)接口
  331. *
  332. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  333. * @param array $options - 可选参数对象,key: value都为string类型
  334. * @description options列表:
  335. * 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:韩语;
  336. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  337. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  338. * probability 是否返回识别结果中每一行的置信度
  339. * @return array
  340. */
  341. public function enhancedGeneral($image, $options=array()){
  342. $data = array();
  343. $data['image'] = base64_encode($image);
  344. $data = array_merge($data, $options);
  345. return $this->request($this->generalEnhancedUrl, $data);
  346. }
  347. /**
  348. * 通用文字识别(含生僻字版)接口
  349. *
  350. * @param string $url - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
  351. * @param array $options - 可选参数对象,key: value都为string类型
  352. * @description options列表:
  353. * 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:韩语;
  354. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  355. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  356. * probability 是否返回识别结果中每一行的置信度
  357. * @return array
  358. */
  359. public function enhancedGeneralUrl($url, $options=array()){
  360. $data = array();
  361. $data['url'] = $url;
  362. $data = array_merge($data, $options);
  363. return $this->request($this->generalEnhancedUrl, $data);
  364. }
  365. /**
  366. * 网络图片文字识别接口
  367. *
  368. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  369. * @param array $options - 可选参数对象,key: value都为string类型
  370. * @description options列表:
  371. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  372. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  373. * @return array
  374. */
  375. public function webImage($image, $options=array()){
  376. $data = array();
  377. $data['image'] = base64_encode($image);
  378. $data = array_merge($data, $options);
  379. return $this->request($this->webImageUrl, $data);
  380. }
  381. /**
  382. * 网络图片文字识别接口
  383. *
  384. * @param string $url - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
  385. * @param array $options - 可选参数对象,key: value都为string类型
  386. * @description options列表:
  387. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  388. * detect_language 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  389. * @return array
  390. */
  391. public function webImageUrl($url, $options=array()){
  392. $data = array();
  393. $data['url'] = $url;
  394. $data = array_merge($data, $options);
  395. return $this->request($this->webImageUrl, $data);
  396. }
  397. /**
  398. * 身份证识别接口
  399. *
  400. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  401. * @param string $idCardSide - front:身份证含照片的一面;back:身份证带国徽的一面
  402. * @param array $options - 可选参数对象,key: value都为string类型
  403. * @description options列表:
  404. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  405. * detect_risk 是否开启身份证风险类型(身份证复印件、临时身份证、身份证翻拍、修改过的身份证)功能,默认不开启,即:false。可选值:true-开启;false-不开启
  406. * @return array
  407. */
  408. public function idcard($image, $idCardSide, $options=array()){
  409. $data = array();
  410. $data['image'] = base64_encode($image);
  411. $data['id_card_side'] = $idCardSide;
  412. $data = array_merge($data, $options);
  413. return $this->request($this->idcardUrl, $data);
  414. }
  415. /**
  416. * 银行卡识别接口
  417. *
  418. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  419. * @param array $options - 可选参数对象,key: value都为string类型
  420. * @description options列表:
  421. * @return array
  422. */
  423. public function bankcard($image, $options=array()){
  424. $data = array();
  425. $data['image'] = base64_encode($image);
  426. $data = array_merge($data, $options);
  427. return $this->request($this->bankcardUrl, $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. * @return array
  437. */
  438. public function drivingLicense($image, $options=array()){
  439. $data = array();
  440. $data['image'] = base64_encode($image);
  441. $data = array_merge($data, $options);
  442. return $this->request($this->drivingLicenseUrl, $data);
  443. }
  444. /**
  445. * 行驶证识别接口
  446. *
  447. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  448. * @param array $options - 可选参数对象,key: value都为string类型
  449. * @description options列表:
  450. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  451. * accuracy normal 使用快速服务,1200ms左右时延;缺省或其它值使用高精度服务,1600ms左右时延
  452. * @return array
  453. */
  454. public function vehicleLicense($image, $options=array()){
  455. $data = array();
  456. $data['image'] = base64_encode($image);
  457. $data = array_merge($data, $options);
  458. return $this->request($this->vehicleLicenseUrl, $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. * multi_detect 是否检测多张车牌,默认为false,当置为true的时候可以对一张图片内的多张车牌进行识别
  467. * @return array
  468. */
  469. public function licensePlate($image, $options=array()){
  470. $data = array();
  471. $data['image'] = base64_encode($image);
  472. $data = array_merge($data, $options);
  473. return $this->request($this->licensePlateUrl, $data);
  474. }
  475. /**
  476. * 营业执照识别接口
  477. *
  478. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  479. * @param array $options - 可选参数对象,key: value都为string类型
  480. * @description options列表:
  481. * @return array
  482. */
  483. public function businessLicense($image, $options=array()){
  484. $data = array();
  485. $data['image'] = base64_encode($image);
  486. $data = array_merge($data, $options);
  487. return $this->request($this->businessLicenseUrl, $data);
  488. }
  489. /**
  490. * 通用票据识别接口
  491. *
  492. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  493. * @param array $options - 可选参数对象,key: value都为string类型
  494. * @description options列表:
  495. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  496. * probability 是否返回识别结果中每一行的置信度
  497. * accuracy normal 使用快速服务,1200ms左右时延;缺省或其它值使用高精度服务,1600ms左右时延
  498. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  499. * @return array
  500. */
  501. public function receipt($image, $options=array()){
  502. $data = array();
  503. $data['image'] = base64_encode($image);
  504. $data = array_merge($data, $options);
  505. return $this->request($this->receiptUrl, $data);
  506. }
  507. /**
  508. * 火车票识别接口
  509. *
  510. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  511. * @param array $options - 可选参数对象,key: value都为string类型
  512. * @description options列表:
  513. * @return array
  514. */
  515. public function trainTicket($image, $options=array()){
  516. $data = array();
  517. $data['image'] = base64_encode($image);
  518. $data = array_merge($data, $options);
  519. return $this->request($this->trainTicketUrl, $data);
  520. }
  521. /**
  522. * 出租车票识别接口
  523. *
  524. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  525. * @param array $options - 可选参数对象,key: value都为string类型
  526. * @description options列表:
  527. * @return array
  528. */
  529. public function taxiReceipt($image, $options=array()){
  530. $data = array();
  531. $data['image'] = base64_encode($image);
  532. $data = array_merge($data, $options);
  533. return $this->request($this->taxiReceiptUrl, $data);
  534. }
  535. /**
  536. * 表格文字识别同步接口接口
  537. *
  538. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  539. * @param array $options - 可选参数对象,key: value都为string类型
  540. * @description options列表:
  541. * @return array
  542. */
  543. public function form($image, $options=array()){
  544. $data = array();
  545. $data['image'] = base64_encode($image);
  546. $data = array_merge($data, $options);
  547. return $this->request($this->formUrl, $data);
  548. }
  549. /**
  550. * 表格文字识别接口
  551. *
  552. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  553. * @param array $options - 可选参数对象,key: value都为string类型
  554. * @description options列表:
  555. * @return array
  556. */
  557. public function tableRecognitionAsync($image, $options=array()){
  558. $data = array();
  559. $data['image'] = base64_encode($image);
  560. $data = array_merge($data, $options);
  561. return $this->request($this->tableRecognizeUrl, $data);
  562. }
  563. /**
  564. * 表格识别结果接口
  565. *
  566. * @param string $requestId - 发送表格文字识别请求时返回的request id
  567. * @param array $options - 可选参数对象,key: value都为string类型
  568. * @description options列表:
  569. * result_type 期望获取结果的类型,取值为“excel”时返回xls文件的地址,取值为“json”时返回json格式的字符串,默认为”excel”
  570. * @return array
  571. */
  572. public function getTableRecognitionResult($requestId, $options=array()){
  573. $data = array();
  574. $data['request_id'] = $requestId;
  575. $data = array_merge($data, $options);
  576. return $this->request($this->tableResultGetUrl, $data);
  577. }
  578. /**
  579. * VIN码识别接口
  580. *
  581. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  582. * @param array $options - 可选参数对象,key: value都为string类型
  583. * @description options列表:
  584. * @return array
  585. */
  586. public function vinCode($image, $options=array()){
  587. $data = array();
  588. $data['image'] = base64_encode($image);
  589. $data = array_merge($data, $options);
  590. return $this->request($this->vinCodeUrl, $data);
  591. }
  592. /**
  593. * 定额发票识别接口
  594. *
  595. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  596. * @param array $options - 可选参数对象,key: value都为string类型
  597. * @description options列表:
  598. * @return array
  599. */
  600. public function quotaInvoice($image, $options=array()){
  601. $data = array();
  602. $data['image'] = base64_encode($image);
  603. $data = array_merge($data, $options);
  604. return $this->request($this->quotaInvoiceUrl, $data);
  605. }
  606. /**
  607. * 户口本识别接口
  608. *
  609. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  610. * @param array $options - 可选参数对象,key: value都为string类型
  611. * @description options列表:
  612. * @return array
  613. */
  614. public function householdRegister($image, $options=array()){
  615. $data = array();
  616. $data['image'] = base64_encode($image);
  617. $data = array_merge($data, $options);
  618. return $this->request($this->householdRegisterUrl, $data);
  619. }
  620. /**
  621. * 港澳通行证识别接口
  622. *
  623. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  624. * @param array $options - 可选参数对象,key: value都为string类型
  625. * @description options列表:
  626. * @return array
  627. */
  628. public function HKMacauExitentrypermit($image, $options=array()){
  629. $data = array();
  630. $data['image'] = base64_encode($image);
  631. $data = array_merge($data, $options);
  632. return $this->request($this->HKMacauExitentrypermitUrl, $data);
  633. }
  634. /**
  635. * 台湾通行证识别接口
  636. *
  637. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  638. * @param array $options - 可选参数对象,key: value都为string类型
  639. * @description options列表:
  640. * @return array
  641. */
  642. public function taiwanExitentrypermit($image, $options=array()){
  643. $data = array();
  644. $data['image'] = base64_encode($image);
  645. $data = array_merge($data, $options);
  646. return $this->request($this->taiwanExitentrypermitUrl, $data);
  647. }
  648. /**
  649. * 出生医学证明识别接口
  650. *
  651. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  652. * @param array $options - 可选参数对象,key: value都为string类型
  653. * @description options列表:
  654. * @return array
  655. */
  656. public function birthCertificate($image, $options=array()){
  657. $data = array();
  658. $data['image'] = base64_encode($image);
  659. $data = array_merge($data, $options);
  660. return $this->request($this->birthCertificateUrl, $data);
  661. }
  662. /**
  663. * 机动车销售发票识别接口
  664. *
  665. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  666. * @param array $options - 可选参数对象,key: value都为string类型
  667. * @description options列表:
  668. * @return array
  669. */
  670. public function vehicleInvoice($image, $options=array()){
  671. $data = array();
  672. $data['image'] = base64_encode($image);
  673. $data = array_merge($data, $options);
  674. return $this->request($this->vehicleInvoiceUrl, $data);
  675. }
  676. /**
  677. * 车辆合格证识别接口
  678. *
  679. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  680. * @param array $options - 可选参数对象,key: value都为string类型
  681. * @description options列表:
  682. * @return array
  683. */
  684. public function vehicleCertificate($image, $options=array()){
  685. $data = array();
  686. $data['image'] = base64_encode($image);
  687. $data = array_merge($data, $options);
  688. return $this->request($this->vehicleCertificateUrl, $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 invoice($image, $options=array()){
  700. $data = array();
  701. $data['image'] = base64_encode($image);
  702. $data = array_merge($data, $options);
  703. return $this->request($this->invoiceUrl, $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. * location 是否输出位置信息,true:输出位置信息,false:不输出位置信息,默认false
  712. * @return array
  713. */
  714. public function airTicket($image, $options=array()){
  715. $data = array();
  716. $data['image'] = base64_encode($image);
  717. $data = array_merge($data, $options);
  718. return $this->request($this->airTicketUrl, $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. * rkv_business 是否进行商业逻辑处理,rue:进行商业逻辑处理,false:不进行商业逻辑处理,默认true
  727. * @return array
  728. */
  729. public function insuranceDocuments($image, $options=array()){
  730. $data = array();
  731. $data['image'] = base64_encode($image);
  732. $data = array_merge($data, $options);
  733. return $this->request($this->insuranceDocumentsUrl, $data);
  734. }
  735. /**
  736. * 增值税发票识别接口
  737. *
  738. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  739. * @param array $options - 可选参数对象,key: value都为string类型
  740. * @description options列表:
  741. * @return array
  742. */
  743. public function vatInvoice($image, $options=array()){
  744. $data = array();
  745. $data['image'] = base64_encode($image);
  746. $data = array_merge($data, $options);
  747. return $this->request($this->vatInvoiceUrl, $data);
  748. }
  749. /**
  750. * 二维码识别接口
  751. *
  752. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  753. * @param array $options - 可选参数对象,key: value都为string类型
  754. * @description options列表:
  755. * @return array
  756. */
  757. public function qrcode($image, $options=array()){
  758. $data = array();
  759. $data['image'] = base64_encode($image);
  760. $data = array_merge($data, $options);
  761. return $this->request($this->qrcodeUrl, $data);
  762. }
  763. /**
  764. * 数字识别接口
  765. *
  766. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  767. * @param array $options - 可选参数对象,key: value都为string类型
  768. * @description options列表:
  769. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  770. * detect_direction 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:<br>- true:检测朝向;<br>- false:不检测朝向。
  771. * @return array
  772. */
  773. public function numbers($image, $options=array()){
  774. $data = array();
  775. $data['image'] = base64_encode($image);
  776. $data = array_merge($data, $options);
  777. return $this->request($this->numbersUrl, $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. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  786. * @return array
  787. */
  788. public function lottery($image, $options=array()){
  789. $data = array();
  790. $data['image'] = base64_encode($image);
  791. $data = array_merge($data, $options);
  792. return $this->request($this->lotteryUrl, $data);
  793. }
  794. /**
  795. * 护照识别接口
  796. *
  797. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  798. * @param array $options - 可选参数对象,key: value都为string类型
  799. * @description options列表:
  800. * @return array
  801. */
  802. public function passport($image, $options=array()){
  803. $data = array();
  804. $data['image'] = base64_encode($image);
  805. $data = array_merge($data, $options);
  806. return $this->request($this->passportUrl, $data);
  807. }
  808. /**
  809. * 名片识别接口
  810. *
  811. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  812. * @param array $options - 可选参数对象,key: value都为string类型
  813. * @description options列表:
  814. * @return array
  815. */
  816. public function businessCard($image, $options=array()){
  817. $data = array();
  818. $data['image'] = base64_encode($image);
  819. $data = array_merge($data, $options);
  820. return $this->request($this->businessCardUrl, $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. * recognize_granularity 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
  829. * @return array
  830. */
  831. public function handwriting($image, $options=array()){
  832. $data = array();
  833. $data['image'] = base64_encode($image);
  834. $data = array_merge($data, $options);
  835. return $this->request($this->handwritingUrl, $data);
  836. }
  837. /**
  838. * 自定义模板文字识别接口
  839. *
  840. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  841. * @param array $options - 可选参数对象,key: value都为string类型
  842. * @description options列表:
  843. * templateSign 您在自定义文字识别平台制作的模板的ID
  844. * classifierId 分类器Id。这个参数和templateSign至少存在一个,优先使用templateSign。存在templateSign时,表示使用指定模板;如果没有templateSign而有classifierId,表示使用分类器去判断使用哪个模板
  845. * @return array
  846. */
  847. public function custom($image, $options=array()){
  848. $data = array();
  849. $data['image'] = base64_encode($image);
  850. $data = array_merge($data, $options);
  851. return $this->request($this->customUrl, $data);
  852. }
  853. /**
  854. * 同步请求
  855. * @param string $image 图像读取
  856. * @param options 接口可选参数
  857. * @return array
  858. */
  859. public function tableRecognition($image, $options=array(), $timeout=10000){
  860. $result = $this->tableRecognitionAsync($image);
  861. if(isset($result['error_code'])){
  862. return $result;
  863. }
  864. $requestId = $result['result'][0]['request_id'];
  865. $count = ceil($timeout / 1000);
  866. for($i=0; $i<$count; $i++){
  867. $result = $this->getTableRecognitionResult($requestId, $options);
  868. // 完成
  869. if($result['result']['ret_code'] == 3){
  870. break;
  871. }
  872. sleep(1);
  873. }
  874. return $result;
  875. }
  876. /**
  877. * 文档版面分析与识别
  878. *
  879. * @param string $image
  880. * @param string $languageType
  881. * @param string $resultType
  882. * @param bool $detectDirection
  883. * @param bool $lineProbability
  884. * @param null $wordsType
  885. * @param null $layoutAnalysis
  886. * @param array $options
  887. * @return bool|mix|mixed|string|string[]
  888. */
  889. public function docAnalysis($image, $languageType, $resultType, $options = array()) {
  890. $data = array();
  891. $data['image'] = base64_encode($image);
  892. if ($languageType == null || in_array($languageType, array('CHN_ENG', 'ENG')) <> 1) {
  893. return "please provide correct param: language_type ";
  894. }
  895. $data['language_type'] = $languageType;
  896. if ($resultType == null || in_array($resultType, array('big', 'small')) <> 1) {
  897. return "please provide correct param: result_type ";
  898. }
  899. $data['result_type'] = $resultType;
  900. $data = array_merge($data, $options);
  901. return $this->request($this->docAnalysis, $data);
  902. }
  903. /**
  904. * 仪器仪表盘读数识别
  905. *
  906. * @param string $image
  907. * @param bool $probability
  908. * @param bool $polyLocation
  909. * @param array|options $
  910. * @return bool|mix|mixed|string[]
  911. */
  912. public function meter($image, $options = array())
  913. {
  914. $data = array();
  915. $data['image'] = base64_encode($image);
  916. $data = array_merge($data, $options);
  917. return $this->request($this->meter, $data);
  918. }
  919. /**
  920. * 网络图片文字识别(含位置版)
  921. *
  922. * @param string $image
  923. * @param bool $detect_direction
  924. * @param bool $probability
  925. * @param bool $poly_location
  926. * @param null $recognize_granularity
  927. * @param array $options
  928. * @return string
  929. */
  930. public function webimageLoc($image, $options = array())
  931. {
  932. $data = array();
  933. $data['image'] = base64_encode($image);
  934. $data = array_merge($data, $options);
  935. return $this->request($this->webimageLoc, $data);
  936. }
  937. }