写在前面前端
关于这个做品的设计理念和情怀,请看这里git
随着做品的不断迭代和改进,我已经渐渐忘记初衷是什么了。是为了讨某人欢心作的小demo或是为了熟悉使用watson的练手做品,都已不大记得。然而如今,是想利用零碎的时间,作一个完整的项目。来探究AI之神奇并展示诗词之魅力。github
识图吟诗是一个创意做品,经过使用watson相关的API,对图片进行认知分析,以后在诗词库中选择置信度较高的诗句做为结果返回。用户上传图片,尤为是风景图片,便可以获得较为吻合图片意境的诗词。web
在做品开始构建以前,必须拥有一个包含信息的知识库,以即可以从中获得最恰当的答案。在这里,我经过爬虫,在网络上爬取了包含做者及名称在内的一千多首诗词名句,这些内容以excel表的形式存储。算法
在早期的做品中,该应用程序是经过微信做为引导接口,部署在Bluemix上。但由于Bluemix开放的服务器在国外,因此效果不是很好。因此此版本,构建于阿里云服务器之上。后端
下面简短描述了使用的技术:centos
Python
做品主要使用的语言,Python对数据处理表现出强大的做用,同时提供丰富的库包方便实现各类需求。服务器
IBM Watson
主要使用了Visual Recognition 这一服务用以对图片内容进行初步的识别分析。微信
Flask
这是一个基于Python开发的轻量级网络框架,在这里实现RESTful API,以支持用户发送图片而且得到结果。网络
HTML
采用原生HTML开发界面,用以与用户交互。(这是此版本最须要改进的一个方面)
Nginx
轻量级,高性能的web服务器。
uWSGI
实现了uwsgi和WSGI两种协议的Web服务器。
识图吟诗架构由如下层和关联实现:
视图 *:一个响应相对灵敏但不够美观的前端用户界面,只使用了原生HTML。界面中的词句引自辛弃疾《贺新郎·甚矣吾衰矣》---“我见青山多妩媚,料青山见我应如是”。是为了表现一种思想,若是机器经过了图灵测试,可否真的认为它就具有了人类的情感。右上角以中国传统篆章的形式表现做品题目,为了和做品理念,艺术风格相呼应。此层中的视图组件容许用户经过一个输入点发送提交图片。
控制器 *:一个基于Flask的控制器层,向视图组件公开RESTful业务API。此REST API与后端处理过的数据进行交互。可扩展实现其余业务操做,包括调用其余服务或第三方API。
认知后端 *:Watson分析并处理了图片内容,而我处理了诗词库。相似于理解上下文的分析方式,处理全局图片内容,对这种非结构化的信息进行置信度判断,然后能够认为watson消化并理解了有关诗词的内容。 同时,提供了一个API,可以对收到的消息接受并返回答案。
平台 *:本版本部署在阿里云上,采用centos + Flask + Nginx + uWSGI的流行框架。
这里给出了总体架构的思路图:
打开这里,选择文件后,点击上传图片。
Watson是一个极其强大和复杂的平台,他所拥有的,不单单是能看见的诸多服务,还有隐藏在其后的认知计算系统。我把这一版本做为V1.0,由于虽然还有不少地方待提升,可是迈出了关键的一步,即上线,有人使用,稳定,以及有趣。
前端采用框架进行重写,美化处理,支持响应式。
认知后端算法优化,意境更加吻合,支持识别更多景物。
加入更多服务,使得用户体验多样化。
做品体验地址:
http://47.93.229.184/
我的微信号Owcs:
我的网站:
http://www.changshunwang.com
若是你以为有趣,在github上点个星吧:https://github.com/changshunw...