You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

algorithm-videosample.py 2.6 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. """
  2. /**
  3. * Copyright 2020 Tianshu AI Platform. All Rights Reserved.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of 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,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. * =============================================================
  17. */
  18. """
  19. import json
  20. import threading
  21. from datetime import datetime
  22. import time
  23. import sys
  24. sys.path.append("../")
  25. import common.RedisUtil as f
  26. import luascript.starttaskscript as start_script
  27. import common.config as config
  28. import logging
  29. from entrance.executor import videosample
  30. logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',
  31. level=logging.DEBUG)
  32. if __name__ == '__main__':
  33. """VideoSample algorithm entry."""
  34. jsonData = config.loadJsonData(config.configPath)
  35. redisClient = f.getRedisConnection(jsonData["ip"], jsonData["port"], jsonData["database"], jsonData["password"])
  36. logging.info('init redis client %s', redisClient)
  37. t = threading.Thread(target=videosample.delayKeyThread, args=(redisClient,))
  38. t.setDaemon(True)
  39. t.start()
  40. while 1:
  41. try:
  42. if config.loadJsonData(config.sign) == 0:
  43. logging.info('not to execute new task')
  44. time.sleep(5)
  45. else:
  46. logging.info("read redis:" + datetime.now().strftime("B%Y-%m-%d %H:%M:%S"))
  47. sampleTask = redisClient.eval(start_script.startTaskLua, 1, config.videoPendingQueue,
  48. config.videoStartQueue, int(time.time()))
  49. logging.info(int(time.time()))
  50. if len(sampleTask) > 0:
  51. datasetId = json.loads(sampleTask[0])['datasetIdKey']
  52. taskParameters = json.loads(redisClient.get("videoSample:" + str(datasetId)))
  53. path = taskParameters['path']
  54. frameList = taskParameters['frames']
  55. videosample.sampleProcess(datasetId, path, frameList, redisClient)
  56. else:
  57. logging.info('task queue is empty.')
  58. time.sleep(5)
  59. except Exception as e:
  60. logging.error('except:', e)
  61. time.sleep(1)

一站式算法开发平台、高性能分布式深度学习框架、先进算法模型库、视觉模型炼知平台、数据可视化分析平台等一系列平台及工具,在模型高效分布式训练、数据处理和可视分析、模型炼知和轻量化等技术上形成独特优势,目前已在产学研等各领域近千家单位及个人提供AI应用赋能

Contributors (1)