bodyanalysis.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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 AipBodyAnalysis(AipBase):
  15. """
  16. 人体分析
  17. """
  18. __bodyAnalysisUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/body_analysis'
  19. __bodyAttrUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/body_attr'
  20. __bodyNumUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/body_num'
  21. __gestureUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/gesture'
  22. __bodySegUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg'
  23. __driverBehaviorUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/driver_behavior'
  24. __bodyTrackingUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/body_tracking'
  25. def bodyAnalysis(self, image, options=None):
  26. """
  27. 人体关键点识别
  28. """
  29. options = options or {}
  30. data = {}
  31. data['image'] = base64.b64encode(image).decode()
  32. data.update(options)
  33. return self._request(self.__bodyAnalysisUrl, data)
  34. def bodyAttr(self, image, options=None):
  35. """
  36. 人体检测与属性识别
  37. """
  38. options = options or {}
  39. data = {}
  40. data['image'] = base64.b64encode(image).decode()
  41. data.update(options)
  42. return self._request(self.__bodyAttrUrl, data)
  43. def bodyNum(self, image, options=None):
  44. """
  45. 人流量统计
  46. """
  47. options = options or {}
  48. data = {}
  49. data['image'] = base64.b64encode(image).decode()
  50. data.update(options)
  51. return self._request(self.__bodyNumUrl, data)
  52. def gesture(self, image, options=None):
  53. """
  54. 手势识别
  55. """
  56. options = options or {}
  57. data = {}
  58. data['image'] = base64.b64encode(image).decode()
  59. data.update(options)
  60. return self._request(self.__gestureUrl, data)
  61. def bodySeg(self, image, options=None):
  62. """
  63. 人像分割
  64. """
  65. options = options or {}
  66. data = {}
  67. data['image'] = base64.b64encode(image).decode()
  68. data.update(options)
  69. return self._request(self.__bodySegUrl, data)
  70. def driverBehavior(self, image, options=None):
  71. """
  72. 驾驶行为分析
  73. """
  74. options = options or {}
  75. data = {}
  76. data['image'] = base64.b64encode(image).decode()
  77. data.update(options)
  78. return self._request(self.__driverBehaviorUrl, data)
  79. def bodyTracking(self, image, dynamic, options=None):
  80. """
  81. 人流量统计-动态版
  82. """
  83. options = options or {}
  84. data = {}
  85. data['image'] = base64.b64encode(image).decode()
  86. data['dynamic'] = dynamic
  87. data.update(options)
  88. return self._request(self.__bodyTrackingUrl, data)