更改

大数据智能-Lucida使用

删除111字节2016年11月8日 (二) 12:38
====日历服务CA====
===== Introduction =====
随着 2012 年 iPhone 4s 和它附带的个人助理 Siri 的发布,智能个人助理成为各大互联网公司研发的热点。
[[文件:Siri calendar.PNG|无框|Siri 的 Calendar Events Retrieval 功能截图]]
===== Framework =====
从总体原理来看,Calendar Events Retrieval 这一功能的实现主要由两部分组成:负责对人类友好型的输入的理解和处理的后端和负责对日历进行操作的前端。
当然,还需要考虑的一个问题是后端与前端的交互。当然,同前后端的实现相比,这一问题较为无关紧要。前后端通信可以通过REST API, Apache Thrift 等协议完成。
====图像匹配IMM=========概述=====
所谓图像匹配,就是给定一张图片,并在一个图片集中寻找与这张图片最相似的图片。
在目前主要用于图片检索服务,在Baidu和Google上都有这样的功能,可以找同一张图片的多种不同分辨率的版本,或者找一张图片的相关图片,效果很好。
=====使用方法演示=====
进入Learn页面,加入一张吉娃娃的图片。
[[文件:Ask2.png|300px]]
=====依赖项介绍=====
'''OpenCV'''
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
=====代码实现简介=====
Lucida中的Image Matching主要是采用下面的实现方式:
中间的数据通信过程均基于Facebook Thrift。
====图像分类IMC====
=====概览=====
IMC, image classification 是 Lucida Image Processing 服务中的一项功能。在页面上,用户可在Infer上进行提问,例如:这是什么以及这是什么动物。接下来用户可上传照片,系统将为用户定义照片的内容。
=====代码解读与实现=====
IMC 主要有 IMCHandler 和 IMCServer 两部分代码组成。
IMC的另一部分便是IMCServer的部署。IMCServer运用了多个thread, 进行同步操作,并运用googlelogging对输入的操作进行记录和学习。
=====小结=====
IMC主要运用了深度学习框架以及健康且强大的Folly Futures库,对图像进行预先处理,并最终有效的实现图像的分类及识别。此项功能巧妙运用了Intelligent Personal Assistants, 结合人声与图像,为未来虚拟助手的发展,提供了平台及机遇。
====问答QA====
<big>1.Lucida demo QA使用介绍</big>
String answer = client.infer(LUCID, query);
====手写数字识别DIG====
=====简介=====
手写数字识别DIG这个单元由我们第三组负责。
由于技术上对Lucida API调用规则以及thrift语法了解不深,我们组在工业云安装完成Lucida后对于这个项目并没能成功做出自己的前端,因此,我们主要是对Lucida 3000端口的页面和实现DIG的程序代码以及Lucida tutorial里面的内容的一些分析,并查阅了相关资料。
=====流程分析=====
首先,手写数字识别这个项目,可以通过给定一个只包含一个手写数字的jpeg格式照片,这一个项目可以识别出这个数字是0到9当中的哪一个。
以上就是该项目程序的主要部分。
=====原理分析=====
我们可以注意到里面运用到了一个卷积神经网络框架模型。我们通过查阅资料得知,该模型,是通过前期的一些训练准备从而具有对相关图片的识别能力。
那么,通过对足够多的训练模式去训练网络,我们就可以得到一个足够优的神经网络去解决手写数字识别问题。
=====应用方法=====
在一定量的数据集训练之后,该网络具有识别数字的能力之后,在真正应用时不必再次学习,只需要载入神经网络每个节点对应的权值即可。所以Lucida没有公开它训练的过程,而是直接提供的具有识别能力的训练好的网络的参数。
=====与传统方式对比=====
与传统数字模式识别算法的对比:传统数字模式识别算法基于对每个数字连通块、形状、线的弯曲情况的分析制造出一条条规则来判断图片归属,而神经网络不用再去分析每个数字的特点,而是预先准备一定量的数据集,就可以自己寻找特征。传统数字模式识别算法可能会因手写字体、连笔等差异对识别结果产生很大影响,而神经网络在大量数据训练后,能较好提取出区分这些数字的特征,对于字体等条件依赖不大、更接近人脑识别数字。
=====参考资料=====
1.《Notes on Convolutional Neural Networks》,Jake Bouvrie
4. Caffee 神经网络框架 http://caffe.berkeleyvision.org
====人脸识别FACE====
=====功能实现示例=====
*训练集(From Bing Picture)
[[文件:FACE-output.PNG|500px]]
=====代码解读与实现=====
FACE 主要有 FACEHandler 和 FACEServer 两部分代码组成,由CONGFIG进行配置。
======CONFIG的结构======
两个卷积层的卷积神经网络(CNN),C++实现
*第一层:输入层
}
[[File:FACE-struct.png]]
======FACE服务器搭建======
FACEServer.cpp
定义了端口和线程:Port 8086 / Threads 4
server->setTaskExpireTime(std::chrono::milliseconds(0));
======人脸识别解决方案======
FACEHandler.cpp编写了FACE的解决方案,应用Caffe深度学习框架。
*重要概念
分类采用Joint Bayesian 来进行人脸的verification;也采用了神经网络来比较,但是联合贝叶斯的效果比较好;
=====小结=====
FACE主要运用了Folly Futures库和Caffe开源深度学习框架,对图像进行预先处理,可以识别人脸,并以Trump-Hillary这一最简单的两类问题做了验证。
====语音识别ASR====
117
个编辑