寫在前面前端
關於這個做品的設計理念和情懷,請看這裏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...