设想和目标
总体目标
实现一个微信小程序,能够使得用户:
1.轻松地通过输入图像的方式产生对联,供朋友圈装x
2.能够在机器生成对联基础上进行修改、机器根据修改输出优化后的对联
3.利用我们的小程序在微信群中斗图、根据上联和输入图像输出下联,从而实现对图和对对联的结合
通过设计这样的一个工具,使得用户的创作变得容易,从而激发大众的文学创造欲、增加我们的访问量以及用户数量
beta 阶段目标
1.优化UI
2.提高速度
3.提高对联质量
4.增加修改对联的功能
5.增加群聊斗图的功能
目标实现情况
实现进度:我们的目标没有完全实现。由于时间限制,增加修改对联的功能,以及增加群聊斗图的功能被砍掉。为了给用户选择对联的灵活性,增添了换对联的功能。
实现质量:
一、优化UI
1.alpha阶段完全没有UI上的设计。beta阶段请来了专业人士 Fan 进行UI设计,效果出色,能够大大提高用户体验。
2.UI设计过程中没有考虑到不同图像的长宽比问题,导致在不同长宽比的输入图像下,实际展现出的效果没有设计中的好,有时还会导致用户体验上的问题,比如输入长图时想要点击按钮就无法同时看到位于图上方的生成的对联。
3.在UI流程设计上还存在一些疏漏。用户也有反馈,比如在生成对联之后没有一个可以更换图片的接口。再比如,没有一个默认选中的对联,导致如果用户误触合成图片就会生成一个没有对联的图片。
二、提高速度:
1.提高速度总共用了三方面手段:
a)服务器并行
b)模型提速
c)使用cache,减少搜索匹配算法的时间
2.效果:速度在峰值队列中保持为8个task时仍然可以在20秒钟内给用户返回生成对联结果。在服务器负载较低时,可以在3秒内产生结果。
三、提高对联质量:
1.在alpha阶段,我们发现生成的对联过于单一,于是在beta阶段增加了上联匹配算法中的随机性。
2.为了体现出训练模型的效果而不是直接搜索数据库,我们还扩大了上联搜索空间,扩大了上联集合。这样,既保证了上联的质量,又保证了上下联的多样性。
3.但是发现对于人的对联,没有特别好的生成结果,这是因为tag直接识别出人,但是描述人的对联里面却大多数不显示地写出人。为此,可以增加搜索算法对人以及其他特殊场景的适配,比如增加对于人的形容词表来匹配与人有关的tag。
计划
beta阶段的计划并不是很到位。因为在最初的总体计划中包含的内容太多,想要做好就不可能做全,因此推给beta的计划量已经超过了承受能力。
最终,决定大范围更改计划,放弃原先beta阶段的部分安排,转而将alpha阶段剩下的问题解决干净,做精做细。
此次beta阶段有一点是比较特殊的:有较多的强依赖关系,并且影响比较大:比如,UI的实现必须等设计稿到位之后才能开始,而UI设计需要5天左右的时间,并且由于是外援,所以存在较大不确定性。不过还好,外援 Fan非常守时,按时将设计稿交给了我们的前端。
也遇到了比较严重的突发情况,alpha阶段做好的后端突然变得非常不稳定,原因在于外部依赖项:花生壳,导致中间必须临时寻找其替代品。
在遇到这些突发情况时,我们迫不得已加班赶工。
资源
beta阶段发生时间资源的不足现象,原因是计划完全重置,以及突发情况比较严重。
在测试方面,beta阶段有所注重,不仅有专门的测试人员,而且还在重要问题上动员全组成员进行测试,发现不少问题。
变更管理
由于每次会议都会讨论出下一步的打算,并投票通过,所以任务变更能够通过会议传达到每个组员。平时遇到的问题可以通过微信群讨论。
每次会议会根据共识决定任务的紧张程度,进而变更任务。
在项目执行过程中,存在任务变更,在发生上面提到的突发情况时,对后端的任务做了增删。
设计/实现
UI由实力外援 Fan 设计,微信页面部分由Tao、He 实现,生成效果图及二维码部分由Dacheng实现。
新的后端架构由Dacheng和Weijie设计并实现。
模型以及匹配部分的优化方案由全组讨论得到,由Yichong、Xiaoqiang实现。
bug最多的地方在于前端的部分,这是因为我们对于微信编程的不了解以及代码规范的不清晰导致后来让前端规范了一些代码规范,有所缓解。
在代码复审方面,在完成任务过程中都是类似结对编程,边写边审、互相复审。
测试/发布
在beta阶段,做了较大量的测试,用来保证用户体验不出问题。
在发布后遇到了3次服务器崩溃,初步诊断为复合原因,包括线程死锁。具体定位可能在多线程读写cache文件处。
各成员评分:
beta阶段排名及分数
序号 | 成员 | 评分 |
---|---|---|
1 | Tao | 115 |
2 | Dacheng | 110 |
3 | Weijie | 105 |
4 | He | 100 |
5 | Yichong | 95 |
6 | Xiaoqiang | 90 |
最终效果
用户眼里的《联景联情》:平均4.39分/5分, 标准差为1.00分
发布后3天内累计用户量达到1.2k,总访问次数约为8k次,在发布第一天的宣传作用下达到顶峰,在后面几天访问量渐渐衰减趋于平稳。主要依靠微信的传播作用来保持使用量,从统计数据中可以看出,新用户占每日活跃用户的80%左右。
发布后的用户主要集中在北京上海和广东,在全国其他30余省市自治区均有用户使用。持续活跃的用户年龄集中在40-49岁,表明当前的状态的小程序对于年轻人吸引力不足,在这方面要加强。可以继续开发更吸引中年人并在其中传播的功能,把这方面优势扩大。
发现用户更喜欢在午后以及下班后和上床睡觉之前玩我们的小程序。在宣传过程中可以考虑充分利用这几个时间段。
留下的尾巴
1.域名不是自己的,过一段时间后需要申请新的持久的域名供服务器使用
2.服务器资金问题
3.没加上修改对联、提关键词、做表情包的功能
4.需要更强的场景识别
5.很多用户没有进入合成结果页面,这有可能是UI流程的引导不足导致
6.关于人的照片合成效果差
7.secondui页面要在最下面加一个白色边界
8.点到提交、合成的按键之后要disable
9.考虑增加多媒体相册的功能,让产品更具有收藏价值
10.要增加跟用户利益挂钩的功能,以留住老用户
11.适当增加使用的激励机制
12.扩展:在网上爬一些有意思的句子,用于训练生成表情包
13.训练一个language model,用于给已生成的对联进行评分,滤除低质量对联
14.增加对联社交功能,我们给用户的对联打分,增强互动性,变成小游戏,和朋友比谁的对联得分高
15.节日期间设置特殊活动
16.制造噱头(比如作为“中国对联大会”(如果有的话)的参与者之一)
17.不断更新玩法,使得用户不腻
18.解决服务器出现频率较低的不稳定问题