Beispiel #1
0
 def submit(self, task_name: str, task_cfg: dict):
     """提交一个Task
     Args:
         task_name: task的名字,需要保证不重复,其会作为task的唯一标识符,建议传入视频或摄像头名称
         task_cfg: task的数据字典
     Returns:
         返回是否返回值
     """
     # 如果超过了最多的提交数量限制
     if len(self.tasks) >= TaskConfig.MAX_TASK_NUM:
         raise RuntimeError("超过了最多的提交数量限制".format(task_name))
     if self.is_exist(task_name):
         raise RuntimeError("请勿重复提交task_name为{}的Task任务".format(task_name))
     task = Task(task_cfg)
     task.build(timeout=20)
     self.tasks[task_name] = task

def read_info_from_task(mqs):
    try:
        while True:
            for mq in mqs:
                img_info = mq.get(timeout=5)
    except Empty:
        print('主进程结束')


if __name__ == '__main__':
    # Linux平台启动
    if platform.system() == 'Linux':
        mp.set_start_method('spawn', force=True)
    # 建模任务
    args = parse_args()
    if not osp.exists(args.i):
        raise AttributeError('输入文件不存在')
    print('处理视频为{},保存环境模型到{},是否开启方向矫正:{}'.format(args.i, args.o, args.revise))
    TaskCfg['head'][0]['filename'] = args.i
    TaskCfg['backbones'][0][1]['modelPath'] = args.o
    TaskCfg['backbones'][0][1]['revise'] = args.revise
    TaskCfg['backbones'][0][1]['dataNum'] = args.n
    task = Task(TaskCfg)
    mqs = task.build()
    task.start()
    readt = Thread(target=read_info_from_task, args=(mqs, ))
    readt.start()
    readt.join()