AipImageSearch.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  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 AipImageSearch extends AipBase {
  19. /**
  20. * 相同图检索—入库 same_hq_add api url
  21. * @var string
  22. */
  23. private $sameHqAddUrl = 'https://aip.baidubce.com/rest/2.0/realtime_search/same_hq/add';
  24. /**
  25. * 相同图检索—检索 same_hq_search api url
  26. * @var string
  27. */
  28. private $sameHqSearchUrl = 'https://aip.baidubce.com/rest/2.0/realtime_search/same_hq/search';
  29. /**
  30. * 相同图检索—删除 same_hq_delete api url
  31. * @var string
  32. */
  33. private $sameHqDeleteUrl = 'https://aip.baidubce.com/rest/2.0/realtime_search/same_hq/delete';
  34. /**
  35. * 相似图检索—入库 similar_add api url
  36. * @var string
  37. */
  38. private $similarAddUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/add';
  39. /**
  40. * 相似图检索—检索 similar_search api url
  41. * @var string
  42. */
  43. private $similarSearchUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/search';
  44. /**
  45. * 相似图检索—删除 similar_delete api url
  46. * @var string
  47. */
  48. private $similarDeleteUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/delete';
  49. /**
  50. * 商品检索—入库 product_add api url
  51. * @var string
  52. */
  53. private $productAddUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/product/add';
  54. /**
  55. * 商品检索—检索 product_search api url
  56. * @var string
  57. */
  58. private $productSearchUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/product/search';
  59. /**
  60. * 商品检索—删除 product_delete api url
  61. * @var string
  62. */
  63. private $productDeleteUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/product/delete';
  64. /**
  65. * 相同图检索—入库接口
  66. *
  67. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  68. * @param array $options - 可选参数对象,key: value都为string类型
  69. * @description options列表:
  70. * brief 检索时原样带回,最长256B。
  71. * @return array
  72. */
  73. public function sameHqAdd($image, $options=array()){
  74. $data = array();
  75. $data['image'] = base64_encode($image);
  76. $data = array_merge($data, $options);
  77. return $this->request($this->sameHqAddUrl, $data);
  78. }
  79. /**
  80. * 相同图检索—检索接口
  81. *
  82. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  83. * @param array $options - 可选参数对象,key: value都为string类型
  84. * @description options列表:
  85. * @return array
  86. */
  87. public function sameHqSearch($image, $options=array()){
  88. $data = array();
  89. $data['image'] = base64_encode($image);
  90. $data = array_merge($data, $options);
  91. return $this->request($this->sameHqSearchUrl, $data);
  92. }
  93. /**
  94. * 相同图检索—删除接口
  95. *
  96. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  97. * @param array $options - 可选参数对象,key: value都为string类型
  98. * @description options列表:
  99. * @return array
  100. */
  101. public function sameHqDeleteByImage($image, $options=array()){
  102. $data = array();
  103. $data['image'] = base64_encode($image);
  104. $data = array_merge($data, $options);
  105. return $this->request($this->sameHqDeleteUrl, $data);
  106. }
  107. /**
  108. * 相同图检索—删除接口
  109. *
  110. * @param string $contSign - 图片签名(和image二选一,image优先级更高)
  111. * @param array $options - 可选参数对象,key: value都为string类型
  112. * @description options列表:
  113. * @return array
  114. */
  115. public function sameHqDeleteBySign($contSign, $options=array()){
  116. $data = array();
  117. $data['cont_sign'] = $contSign;
  118. $data = array_merge($data, $options);
  119. return $this->request($this->sameHqDeleteUrl, $data);
  120. }
  121. /**
  122. * 相似图检索—入库接口
  123. *
  124. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  125. * @param array $options - 可选参数对象,key: value都为string类型
  126. * @description options列表:
  127. * brief 检索时原样带回,最长256B。
  128. * @return array
  129. */
  130. public function similarAdd($image, $options=array()){
  131. $data = array();
  132. $data['image'] = base64_encode($image);
  133. $data = array_merge($data, $options);
  134. return $this->request($this->similarAddUrl, $data);
  135. }
  136. /**
  137. * 相似图检索—检索接口
  138. *
  139. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  140. * @param array $options - 可选参数对象,key: value都为string类型
  141. * @description options列表:
  142. * @return array
  143. */
  144. public function similarSearch($image, $options=array()){
  145. $data = array();
  146. $data['image'] = base64_encode($image);
  147. $data = array_merge($data, $options);
  148. return $this->request($this->similarSearchUrl, $data);
  149. }
  150. /**
  151. * 相似图检索—删除接口
  152. *
  153. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  154. * @param array $options - 可选参数对象,key: value都为string类型
  155. * @description options列表:
  156. * @return array
  157. */
  158. public function similarDeleteByImage($image, $options=array()){
  159. $data = array();
  160. $data['image'] = base64_encode($image);
  161. $data = array_merge($data, $options);
  162. return $this->request($this->similarDeleteUrl, $data);
  163. }
  164. /**
  165. * 相似图检索—删除接口
  166. *
  167. * @param string $contSign - 图片签名(和image二选一,image优先级更高)
  168. * @param array $options - 可选参数对象,key: value都为string类型
  169. * @description options列表:
  170. * @return array
  171. */
  172. public function similarDeleteBySign($contSign, $options=array()){
  173. $data = array();
  174. $data['cont_sign'] = $contSign;
  175. $data = array_merge($data, $options);
  176. return $this->request($this->similarDeleteUrl, $data);
  177. }
  178. /**
  179. * 商品检索—入库接口
  180. *
  181. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  182. * @param array $options - 可选参数对象,key: value都为string类型
  183. * @description options列表:
  184. * brief 检索时原样带回,最长256B。**请注意,检索接口不返回原图,仅反馈当前填写的brief信息,所以调用该入库接口时,brief信息请尽量填写可关联至本地图库的图片id或者图片url、图片名称等信息**
  185. * class_id1 商品分类维度1,支持1-60范围内的整数。检索时可圈定该分类维度进行检索
  186. * class_id2 商品分类维度1,支持1-60范围内的整数。检索时可圈定该分类维度进行检索
  187. * @return array
  188. */
  189. public function productAdd($image, $options=array()){
  190. $data = array();
  191. $data['image'] = base64_encode($image);
  192. $data = array_merge($data, $options);
  193. return $this->request($this->productAddUrl, $data);
  194. }
  195. /**
  196. * 商品检索—检索接口
  197. *
  198. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  199. * @param array $options - 可选参数对象,key: value都为string类型
  200. * @description options列表:
  201. * class_id1 商品分类维度1,支持1-60范围内的整数。检索时可圈定该分类维度进行检索
  202. * class_id2 商品分类维度1,支持1-60范围内的整数。检索时可圈定该分类维度进行检索
  203. * @return array
  204. */
  205. public function productSearch($image, $options=array()){
  206. $data = array();
  207. $data['image'] = base64_encode($image);
  208. $data = array_merge($data, $options);
  209. return $this->request($this->productSearchUrl, $data);
  210. }
  211. /**
  212. * 商品检索—删除接口
  213. *
  214. * @param string $image - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  215. * @param array $options - 可选参数对象,key: value都为string类型
  216. * @description options列表:
  217. * @return array
  218. */
  219. public function productDeleteByImage($image, $options=array()){
  220. $data = array();
  221. $data['image'] = base64_encode($image);
  222. $data = array_merge($data, $options);
  223. return $this->request($this->productDeleteUrl, $data);
  224. }
  225. /**
  226. * 商品检索—删除接口
  227. *
  228. * @param string $contSign - 图片签名(和image二选一,image优先级更高)
  229. * @param array $options - 可选参数对象,key: value都为string类型
  230. * @description options列表:
  231. * @return array
  232. */
  233. public function productDeleteBySign($contSign, $options=array()){
  234. $data = array();
  235. $data['cont_sign'] = $contSign;
  236. $data = array_merge($data, $options);
  237. return $this->request($this->productDeleteUrl, $data);
  238. }
  239. }