第二周——团队项目(小小大佬带飞队)
姓名 |
学号 |
杨浩政(组长) |
3116004705 |
谢创敏 |
3116004478 |
钟伟 |
3116004711 |
李奕柱 |
3116004691 |
李晓阳 | 3116004641 |
肖洁銮(小小) | 3216004492 |
文本图像识别是机器视觉领域的重要研究课题之一。文本图像识别涵盖很多应用和任务,其中大部分起源于几十年前的文档数字化。利用原始图像数据实现其分类、识别、检索已经成为信息处理领域极其重要的研究内容。用户能够对图像文档进行更高层次的操作与理解,因此文本图像识别技术得到了越来越广泛的关注与应用。
需求规格说明
基础项目需求
(1)对不同类型验单图像的识别
图像预处理可以消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。因此对验单图像的预处理算法的选择尤为关键。之后通过对验单图像的特征提取等操作,用神经网络模型进行识别训练,提高识别率。
(2)分类得到验单中数据有效区域的ROI部分
对ROI区域进行处理和分析不但可以降低分析过程的复杂度,而且能够减少不必要的计算浪费,由于每种验单的数据区域已经固定,所以决定采用阈值分割算法中的全局阈值法以及canny算子等一些边缘检测算法提取ROI区域并进行图像分割。
(3)对数据有效区域进行特征提取以及识别
对数据有效区域文本信息的检测的步骤一般为定位图像文本,将文本与背景分离最后进行识别并获取文本信息,在文字检测方面运用MSER算法和笔画宽度变换算法对数据区域进行检测,在文字识别方面使用卷积神经网络AlexNet模型进行训练并结合支持向量机的方法对样本特征进行分类。
(4)流程图
高级项目需求
(1)提供图形界面给用户
基础需求只需要提供接口给用户由那边调用接口来获取检测到的文字数据,但当验单类型增加则需要后台通过手动更新模型来满足验单识别。另一种比较有难度的方案便是提供给用户一个图形界面,可以在图形界面上添加新的验单类型图片,输入标签,并提供接口做到可以在原模型的基础上迭代新模型,使得整个系统更加自动化与方便化。
关于系统
(1)真实性
本项目处理的图像数据,来自于眼球检验设备的输出验单。
(2)可用性
本项目提供封装好的接口供用户使用,使其在输入验单图片后能够获取验单有效数据区域的文本格式文件并继续接下来对数据的操作。免去了医疗人员手工录入的繁琐操作,极大地提高了医生的效率。
(2)价值性
眼球作为人体生物特征的一个重要组成部分,包含着丰富的可用信息,在近年来得到了国内外研究者的高度重视和密切关注。同时眼球识别技术也得到了迅速的发展。眼球识别可以精确获取眼部疾病患者双眼信息,如眼球的位置区域、瞳孔中心、虹膜信息甚至视线方向等。而运用图像处理与模式识别技术对眼球验单以及数据区域进行识别,则可以将信息进一步进行处理,提取出各类相应的数据,使诊断和治疗过程更加自动化,节省了患者与医生的时间,提高效率。
项目规范
(1)项目采用码云管理平台:项目地址
(2)拟定验单识别量:由于在初级阶段,验单数据集比较少,暂定20类验单。
代码规范
- 模块名应与其功能相符合,每个模块应在文件开头注释好模块功能与注意事项
- 为所有的共有模块、函数、类、方法写docstrings;非共有的没有必要,但是可以写注释(在def的下一行)
- 模块命名尽量短小,使用全部小写的方式,可以使用下划线。
- 包命名尽量短小,使用全部小写的方式,不可以使用下划线。
- 类的命名使用CapWords的方式,模块内部使用的类采用_CapWords的方式。
码云issues 页面截图
项目计划表
第6周 |
1.团队组队、团队博客(✔) |
2.团队介绍、成员展示、角色分配、选题确定(✔) |
|
3.制定团队计划安排(✔) |
|
第7周 |
1.需求规格说明书 |
2.原型设计,队员估计任务难度并学习必要的技术 |
|
3.编码规范完成、平台环境搭建完成、初步架构搭建 |
|
第8周 |
1.原型改进(给目标用户展现原型,并进一步理解需求) |
2.架构设计,WBS, 团队成员估计各自任务所需时间 |
|
3.测试计划 |
|
第9周 |
1. 团队项目Alpha任务分配计划 |
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 |
|
第10周 |
1.用户反馈+测试计划改进 |
2. 团队Alpha阶段个人总结 |
|
3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 |
|
第11周 |
1. 团队项目Alpha博客:事后分析 |
2. 每个团队有一人必须离开,自己寻找下一个接纳自己的团队。团队发博客宣布离队和接纳的成员。 |
|
第12周 |
1. 团队项目Beta任务分配计划,介绍新成员 |
2. 连续7天的Beta敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 |
|
第13周 |
1. 团队项目Beta博客:发布说明、测试报告、展示博客 |
2. 团队Beta阶段个人总结 |
|
第14周 |
1. 团队项目Beta博客:事后分析, 宣布每人的贡献分 |
第15周 |
1.团队整个阶段总结,分析用户数据,整理文档,保证以后的团队能接手。 |
由于目前项目进展较为顺利,所以项目计划表暂无变更。
团队分工
队员姓名 | 分工 |
---|---|
杨浩政 | 图像识别与文字检测算法方向整体把握,代码整合与优化 |
钟伟,谢创敏 | 尝试并实现文字检测的深度学习算法 |
李奕柱,李晓阳 | 验单类型图像识别代码的实现与整合 |
肖洁銮 | 协助后期实现用户界面操作 |
感想
杨浩政:以前总觉得拿到项目直接上手就可以,直接思考代码怎么写,现在发现在写代码之前有好多事情需要思考,尤其现在是团队合作,如何发挥团队中每个人的才能与积极性很重要,同样重要的是关于整个项目的实现思路一定要多思考,怎样可以更快捷更方便,避免重复造轮子而写出效果最好的代码。
李晓阳:该项目之前就有接触过了,不过因为之前就暑假只学了一点基础知识,开学后也很久没碰过,所以基本得从头再学,现在还是有很多不明白的地方,需要努力学习。希望可以尽快上手,也希望项目进展顺利。
钟伟:第一次接触这样的团队大项目,对于我个人来说都是很大的挑战。经过大家的讨论,目前有了基本的方向,我也在积极的储备相应的知识。虽然有些知识挺难懂的,但是我相信花时间一定可以有所领悟,慢慢的做出点功能,在这个过程中,自己对python的掌握会不断提高,经验也会不断丰富。
谢创敏:第一次接触机器学习,发现机器学习没有之前想象的复杂,但也不简单。一边学一边实践,越发对机器学习产生了兴趣。虽然学习过程中遇到很多困难,但也锻炼了自己解决困难的能力。期待这次项目可以带给我更多的经验和收获。
李奕柱:团队项目使用python+机器学习+opencv,我主要负责图像处理方面模块,虽然暑假对opencv有过一些了解,但目前还有许多问题不懂,也遇到了一些以目前个人水平难以解决的问题,接下来要好好深入学习,争取在期限内把项目完成。
肖洁銮: 在这次的项目中,我主要负责前端页面的编写,在开发中,我深刻体会到了沟通的重要性,并对某些理解不够深入的知识点进行总结,期待在这此项目中,能够突破一些技术难点,有更多的收获。