本次sprint主要完成的任务有对手机APP的UI界面的更新,同时对Azure客户端的部署进行了相应的学习和有关的程序设计。同时对于ALPHA release的用户反馈做出相应的分析以确定接下来工作的重点。

工作进度:

1. UI 的界面更新和完善工作主要由兆阳负责,主要是对APP中的自动标签和浏览布局进行了相应的改进。其中大部分与Sprint2中的界面有所区别,并且对整体的APP工作性能有了一些改善。相应的改进feature有如下:

1). 个人活动分类浏览: 其中将用户的各个照片依据内容,时间,地点信息进行分类。从而使用户可以依据不同的活动类型对照片进行浏览,方便用户体验。

2). 搜索推荐: 对于用户所输入的词句进行预测,并且推荐相应图片的缩略图,方便用户在无法准确拼写相应单词的时候可以进行精确的搜索。

3). 语音搜索: 利用 oxford Speech API 与 Stanford NLP API 的结合, 成功实现了语音模糊搜索的功能。用户可以直接说一段句子,利用 oxford Speech API 实现语音到文本的转换,随后利用 Stanford NLP API 对文本中的关键词进行提取以用作最后搜索的关键词。

4). 自动标签生成: 利用流行的深度神经网络模型CNN对图片进行处理,同时进行相应的分类生成相应的标签。同时对图片已有的GPS,拍摄时间等信息也进行相应的保留和布局处理以方便用户浏览。

                   

2. 同时后台处理进行了相应的优化, 主要是有将NLP的resful从eclipse环境中转移到Tom Cat,这部分由敏龙负责。

3. 相应的代码整合工作则focus在一些线程处理机制上面的优化,同时对讲代码转移到IOS系统上进行了一定的尝试,这些工作主要由拂尘和延东负责。

4. 在Azure Server部署方面,首先对Azure架构进行了学习,同时在部署方面做了相应的尝试,这一部分主要由栋和延东负责。

Azure 端部署情况分析:

Azure端的部署工作目前处于尝试阶段,在接到相应的用户反馈以后,我们通过相应的分决定将Azure端产品作为一个中间过渡产物,最终工作将转向对APP的offline版本的新的尝试。

用户反馈结果分析:

有相应用户拥有如下评论:

1. 对于这款手机APP,我有时上传照片收到网速的限制,无法迅速获得结果。而且总体来所返回的图片结果还是不错的,但是有一些还是不是特别理想。用户活动分类这个特别合口味,为我浏览相应的照片省去了不少麻烦!

2. 总体性能不错,细节还是可以的。不过有时候会返回莫名其妙的一些结果,比较无语啦~

对于以上两位用户评论进行分析可以得出如下一些可以改进的地方:

1. 利用流行的CNN模型在实际运用中不能简单套用,也许可以通过相应的阈值或者简单的操作暗示进行用户体验的提升。

2. 在线版本受网速等其他因素的限制,同时实现上也相当复杂,以长远眼光来看,这确实是个不错的选择。但就目前要想短期实现相同性能,完成CNN的IOS模型架构建立,实属不易。offline版本或许会成为最终的目标,但绝不会是本次课程最后的结果。软件开发之路任重道远,一蹴而就或许只会物极必反。

Sprint 5 summary: UI 界面更新,Azure端部署和用户反馈分析 12/28/2015的更多相关文章

  1. 为什么丑陋的UI界面却能创造良好的用户体验?

    本文内容由Mockplus团队翻译. 官网:http://www.mockplus.cn 网站界面过于漂亮可能会影响网站的可用性,但本文中提到的5个网站界面可谓是“丑”出了新高度.这样的网站它还有可用 ...

  2. Spark UI界面原理

    当Spark程序在运行时,会提供一个Web页面查看Application运行状态信息.是否开启UI界面由参数spark.ui.enabled(默认为true)来确定.下面列出Spark UI一些相关配 ...

  3. Python+PyQT5的子线程更新UI界面的实例《新手必学》

    今天小编就为大家分享一篇Python+PyQT5的子线程更新UI界面的实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧子线程里是不能更新UI界面的,在移动端方面.Android的U ...

  4. 使用AsyncTask异步更新UI界面及原理分析

    概述: AsyncTask是在Android SDK 1.5之后推出的一个方便编写后台线程与UI线程交互的辅助类.AsyncTask的内部实现是一个线程池,所有提交的异步任务都会在这个线程池中的工作线 ...

  5. 在Android中实现service动态更新UI界面

    之前曾介绍过Android的UI设计与后台线程交互,据Android API的介绍,service一般是在后台运行的,没有界面的.那么如何实现service动态更新UI界面呢?案例:通过service ...

  6. Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面

    Android应用的开发过程中需要把繁重的任务(IO,网络连接等)放到其他线程中异步执行,达到不阻塞UI的效果. 下面将由浅入深介绍Android进行异步处理的实现方法和系统底层的实现原理. 本文介绍 ...

  7. Android Handler传递参数动态更新UI界面demo

    package com.example.demo_test; import android.app.Activity; import android.os.Bundle; import android ...

  8. 一种WPF在后台线程更新UI界面的简便方法

    WPF框架规定只有UI线程(主线程)可以更新界面,所有其他后台线程无法直接更新界面.幸好,WPF提供的SynchronizationContext类以及C#的Lambda表达式提供了一种方便的解决方法 ...

  9. Android异步处理系列文章四篇之二 使用AsyncTask异步更新UI界面

    Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ...

随机推荐

  1. DRF 序列化组件 模型层中参数补充

    一. DRF序列化 django自带有序列化组件,但是相比rest_framework的序列化较差,所以这就不提django自带的序列化组件了. 首先rest_framework的序列化组件使用同fr ...

  2. UCF Local Programming Contest 2016 J题(二分+bfs)

    题目链接如下: https://nanti.jisuanke.com/t/43321 思路: 显然我们要采用二分的方法来寻找答案,给定一个高度如果能确定在这个高度时是否可以安全到达终点,那我们就可以很 ...

  3. [模板] dijkstra (堆优化)

    复杂度O(mlogn) 输入起点s,可以得到从起点到各点的最短路距离数组dis[i] 过程: 1.初始化:清空标记数组,初始化距离数组设为inf,起点距离设为0,开优先队列,搜索起点 2.搜索:取出队 ...

  4. 【翻译】如何使用 OpenVINO 来优化 OpenCV

    本文翻译自 Vishwesh Shrimali 的  "Using OpenVINO with OpenCV" 原文链接: https://www.learnopencv.com/ ...

  5. 使用FME裁剪矢量shapefile文件

  6. [洛谷1649]障碍路线<BFS>

    题目链接:https://www.luogu.org/problem/show?pid=1649 历经千辛万苦,我总算是把这个水题AC了,现在心里总觉得一万只草泥马在奔腾: 这是一道很明显的BFS,然 ...

  7. 从火车站车次公示栏来学Java读写锁

    Java多线程并发之读写锁 本文主要内容:读写锁的理论:通过生活中例子来理解读写锁:读写锁的代码演示:读写锁总结.通过理论(总结)-例子-代码-然后再次总结,这四个步骤来让大家对读写锁的深刻理解. 本 ...

  8. Gin框架系列02:路由与参数

    回顾 上一节我们用Gin框架快速搭建了一个GET请求的接口,今天来学习路由和参数的获取. 请求动词 熟悉RESTful的同学应该知道,RESTful是网络应用程序的一种设计风格和开发方式,每一个URI ...

  9. 通过jsDelivr + github 搭建一个简易图床

    应用场景: 在大型项目里需要很多图片时,不会直接把图片存储在项目文件夹里,也不推荐直接用数据库存储,而是用第三方存储,cdn,也可以自己搭个存储图片的服务器,等等方式,如果时自己练练手,做做博客,写写 ...

  10. IDEA运行报错 Error:java: 错误: 不支持发行版本 xx

    解决方案 修改项目配置,进入Project Setting,截图可参考下面的截图 1.修改全局设置 修改Project->Project Language Level->选择版本比当前jd ...