imageclassify.py 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. # -*- coding: utf-8 -*-
  2. """
  3. 图像识别
  4. """
  5. import re
  6. import sys
  7. import math
  8. import time
  9. from .base import AipBase
  10. from .base import base64
  11. from .base import json
  12. from .base import urlencode
  13. from .base import quote
  14. class AipImageClassify(AipBase):
  15. """
  16. 图像识别
  17. """
  18. __advancedGeneralUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general'
  19. __dishDetectUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v2/dish'
  20. __carDetectUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/car'
  21. __logoSearchUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v2/logo'
  22. __logoAddUrl = 'https://aip.baidubce.com/rest/2.0/realtime_search/v1/logo/add'
  23. __logoDeleteUrl = 'https://aip.baidubce.com/rest/2.0/realtime_search/v1/logo/delete'
  24. __animalDetectUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/animal'
  25. __plantDetectUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/plant'
  26. __objectDetectUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/object_detect'
  27. __landmarkUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/landmark'
  28. __flowerUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/flower'
  29. __ingredientUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/classify/ingredient'
  30. __redwineUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/redwine'
  31. __currencyUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/currency'
  32. def advancedGeneral(self, image, options=None):
  33. """
  34. 通用物体识别
  35. """
  36. options = options or {}
  37. data = {}
  38. data['image'] = base64.b64encode(image).decode()
  39. data.update(options)
  40. return self._request(self.__advancedGeneralUrl, data)
  41. def dishDetect(self, image, options=None):
  42. """
  43. 菜品识别
  44. """
  45. options = options or {}
  46. data = {}
  47. data['image'] = base64.b64encode(image).decode()
  48. data.update(options)
  49. return self._request(self.__dishDetectUrl, data)
  50. def carDetect(self, image, options=None):
  51. """
  52. 车辆识别
  53. """
  54. options = options or {}
  55. data = {}
  56. data['image'] = base64.b64encode(image).decode()
  57. data.update(options)
  58. return self._request(self.__carDetectUrl, data)
  59. def logoSearch(self, image, options=None):
  60. """
  61. logo商标识别
  62. """
  63. options = options or {}
  64. data = {}
  65. data['image'] = base64.b64encode(image).decode()
  66. data.update(options)
  67. return self._request(self.__logoSearchUrl, data)
  68. def logoAdd(self, image, brief, options=None):
  69. """
  70. logo商标识别—添加
  71. """
  72. options = options or {}
  73. data = {}
  74. data['image'] = base64.b64encode(image).decode()
  75. data['brief'] = brief
  76. data.update(options)
  77. return self._request(self.__logoAddUrl, data)
  78. def logoDeleteByImage(self, image, options=None):
  79. """
  80. logo商标识别—删除
  81. """
  82. options = options or {}
  83. data = {}
  84. data['image'] = base64.b64encode(image).decode()
  85. data.update(options)
  86. return self._request(self.__logoDeleteUrl, data)
  87. def logoDeleteBySign(self, cont_sign, options=None):
  88. """
  89. logo商标识别—删除
  90. """
  91. options = options or {}
  92. data = {}
  93. data['cont_sign'] = cont_sign
  94. data.update(options)
  95. return self._request(self.__logoDeleteUrl, data)
  96. def animalDetect(self, image, options=None):
  97. """
  98. 动物识别
  99. """
  100. options = options or {}
  101. data = {}
  102. data['image'] = base64.b64encode(image).decode()
  103. data.update(options)
  104. return self._request(self.__animalDetectUrl, data)
  105. def plantDetect(self, image, options=None):
  106. """
  107. 植物识别
  108. """
  109. options = options or {}
  110. data = {}
  111. data['image'] = base64.b64encode(image).decode()
  112. data.update(options)
  113. return self._request(self.__plantDetectUrl, data)
  114. def objectDetect(self, image, options=None):
  115. """
  116. 图像主体检测
  117. """
  118. options = options or {}
  119. data = {}
  120. data['image'] = base64.b64encode(image).decode()
  121. data.update(options)
  122. return self._request(self.__objectDetectUrl, data)
  123. def landmark(self, image, options=None):
  124. """
  125. 地标识别
  126. """
  127. options = options or {}
  128. data = {}
  129. data['image'] = base64.b64encode(image).decode()
  130. data.update(options)
  131. return self._request(self.__landmarkUrl, data)
  132. def flower(self, image, options=None):
  133. """
  134. 花卉识别
  135. """
  136. options = options or {}
  137. data = {}
  138. data['image'] = base64.b64encode(image).decode()
  139. data.update(options)
  140. return self._request(self.__flowerUrl, data)
  141. def ingredient(self, image, options=None):
  142. """
  143. 食材识别
  144. """
  145. options = options or {}
  146. data = {}
  147. data['image'] = base64.b64encode(image).decode()
  148. data.update(options)
  149. return self._request(self.__ingredientUrl, data)
  150. def redwine(self, image, options=None):
  151. """
  152. 红酒识别
  153. """
  154. options = options or {}
  155. data = {}
  156. data['image'] = base64.b64encode(image).decode()
  157. data.update(options)
  158. return self._request(self.__redwineUrl, data)
  159. def currency(self, image, options=None):
  160. """
  161. 货币识别
  162. """
  163. options = options or {}
  164. data = {}
  165. data['image'] = base64.b64encode(image).decode()
  166. data.update(options)
  167. return self._request(self.__currencyUrl, data)