基本信息

案例ID:169336

技术顾问:Siyueonthego - 5年经验 - Intel

联系沟通

微信扫码,建群沟通

项目名称:通信系统开发

所属行业:人工智能 - 其他

->查看更多案例

案例介绍

项目五:watercube 通信系统
软件环境:本地服务器 24 台,AWS 服务器 40 台(36GPU + 4CPU),K8s,docker,redis
项目描述:
通过设计一系列 pipline 实现任务的快速实现。项目采用 microservice 架构,将每个模块设计成独立的进程,通过与算法组的任务相结合,短时间内能够处理大量的通信,异步地完成大量的计算,实现 18 路摄像机 ball 以及 player 的识别及 3d 合成,再迅速的将计算结果传输至云端
1、ball 分为 X-entry(加载图片,控制参数)、X-detectoion(检测球的位置)、X-tracking(跟踪球的位置)、X-multicam(多路摄像机合成 ball 的 3d 位置)、X-filter(优化 ball 的 3d结果)、X-bhp(ball 和 player 结果合成)、X-fusion(生成最终数据 )七个模块,每个模块为一个服务
2、在 ball 的 track、multicam 两个环节需要相互将自身的 result 作为对方的 input,所以存在一个环状的结构,其他的部分以及 player 的部分均为直线型处理流程
3、最初采用自身写的 protocol 或是 redis 作为集中通信,所有的 job 均存放在公用的内存中,存在大量 IO 操作,实现了初步的通信手段。随着业务推进,不断的优化,实现了本地socket 通信,同一台机器上的服务使用 socket 通信,提高每个模块的吞吐量。
4、每个 job 的生成会调用 jobdescriptor 类,将每个结果序列化后生成对应的 job,携带对应的字段,下一个模块即可从相应的管道取到 job 并加以处理。
5、使用 jolint 框架启动服务,通过 shell 脚本拉取 docker 镜像并启动所有进程,生成process_id,通过对应的 id 分配不同的任务以及保证 job 的顺序处理,传入每个模块所需要的所有环境变量及机器信息
6、每场比赛分为不同的 live,每个 live 图片帧数不定,在对十八路摄像机的图片进行分析的时候,每处理完一个 live 的视频需要对各个模块做清空所有的 buffer
7、对所有 live 的输出结果生成 2d 或是 3d 的结果视频,查看生成的视频结果

相似案例推荐

其他人才的相似案例推荐

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系需求方端客服
联系需求方端客服