基于云计算的 CV 移动交互应用研究(1):CV交互+云计算
导语:Google Translate App 以word Lens即时相机翻译黑科技与 基于云计算架构的“统计机器翻译”的强大服务后台,引爆大众关注。“CV交互+移动终端+云计算” 这一跨界结合展示了极大的潜力。
视频演示
二话不说先来demo应用场景展示。第一个是android手机通过chrome浏览器访问外网的H5页面,调用手机摄像头传输当前图像到云计算后台服务,得到头部姿态识别结果,在当前页面画出识别结果。
视频1 :Web H5的使用展示
视屏2 ,Unity 客户端的展示
来源
What?
为了说明项目(技术尝试Demo)的概念,先看几个有关联的的技术方案及产品。上述3图是CV结合云计算在移动终端上的应用案例,以Google Translate App为例进行介绍。
Google Translate的核心技术在于“统计机器翻译”,基本思想是通过对大量平行语料进行统计分析,构建统计翻译模型进而使用此模型进行翻译。简单的说,Google Translate在生成译文时,会在大量人工翻译的文档中查找各种模型,进行合理的推测,从而得到恰当的翻译。之所以使用云计算架构,是由于机器翻译需要海量的数据存储空间以及高效的运算能力。
Google提供了语音识别,触摸手写,即时相机翻译(真黑科技)。真正引爆大众关注的是其名为Word Lens即时相机翻译新技术与其强大处理后台结合提供的便利性。
CV交互 + 移动终端+ 云计算是一种极富有潜能的跨界产物。
Why?
- 基于CV的交互
- 更自然、方便的体验
- 移动终端 + 云计算
- 网络带宽渐渐不是问题
- 在线更新算法,更快的迭代
- 本地数据有限,云端数据可扩展,模型灵活
- 应用-服务分离
- 轻客户端
- 一种服务后台——多种端末应用
- 更方便的用户数据收集、管理
- 目的
- 探讨基于CV的游戏交互的新体验
- 可验证、可持续发展“服务-应用”框架
系统构成
不同的客户端(Mobile App 或者web)将图像信息通过网络发给云服务器,云服务器进行CV算法处理,将结果返回(json格式)客户端。
云服务器由Nginx代理代理服务器、后台应用程序、CV算法库和日志评估组成。
Nginx代理服务器,代理路由来自不同客户端(类型、个体)的请求,发送到合适的后台应用服务进程;
后台应用服务程序根据请求的多线程启用CV算法模块库进行处理。
数据流图
具体的数据流图、涉及到相关技术(红色是规划而未实现)如上图所示。需要特别说明的是,系统方案设计的客户端上传的是图像信息,可以是具体编码压缩后的图像信息,也可以是经过机器学习预处理后高度降维的图像特征信息。只不过这一方面还没有开始着手进行。
算法服务
如上图所示,算法服务程序由任务框架、算法模块库、日志和评估子系统构成,部分相关依赖开源库如图所示。
任务框架(CS)支持多任务扩展、支持多线程、支持多算法模块组合;算法框架(Core)面向对象设计、扩展方便。
前端应用
前端应用基于接口实现接口统一,不同的客户端平台具有差异的平台适配。
统一的接口
- 统一入口地址
- POST方式
- URL : IP + Port + Location
- 统一数据包
- 典型的发送数据包
- 结果返回包
- 统一交互模式
差异的平台适配
- 不同平台上设备接口获取
- 不同框架系统的处理逻辑加载
- 不同应用的不同数据使用
这部分考虑后面系列再来说明。
相关推荐:
《基于云计算的 CV 移动交互应用研究:头部姿态估计综述(2)》
- 常见排序算法-Python实现
- 免费域名与收费域名的差别有哪些?
- c++学习笔记之封装篇(上)
- c++学习笔记之继承篇
- c++学习笔记之继承篇
- silverlight:对象拖动的优雅解决方案
- Silverlgiht:快速去除/恢复对象的颜色
- deepin系统下如何设置wifi热点(亲测有效)
- Silverlight单元测试
- Silverlight:页面/控件继承的二种写法
- java学习:Hibernate入门
- Silverlight Telerik控件学习:GridView双向绑定
- XmlWriter/XmlReader示例代码
- Silverlight Telerik控件学习:RadComboBox之自动完成(AutoComplete)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法