[no_code团队]项目介绍 & 需求分析 & 发布预测
| 项目 | 内容 |
|---|---|
| 2020春季计算机学院软件工程(罗杰 任健) | 博客园班级博客 |
| 作业要求 | 团队项目选择 |
| 我们在这个课程的目标是 | 在团队合作中提升软件开发水平 |
| 这个作业在哪个具体方面帮助我们实现目标 | 进行项目调研、完成需求和技术分析 |
项目选择
需求:基于微软开源的OCR表单标注工具等开源模块,开发一个表单数据的识别和收集工具,对信息采集表、调查问卷表等各类表格式数据能够自动识别成可编辑的表格数据,并能将多页同类表格收集汇总为一个大表。
必备条件:熟悉机器学习,Android应用开发,较强的团队协作能力
需求分析
核心需求总结
- 基础功能:拍照扫描数字化图表内容
- 扩展功能:多个数字化图表合并储存
- 云端功能:手机或者web采集的数据在其他设备上迁移
NABCD 分析
- Need: 目前的OCR工具主要在通用文字识别方面功能比较完善,对具有逻辑性的表格识别需求应用空白。
- 大量的办公用表格需要电子化,而纸质填写的原件很多
- 大量表格是来自于统一模板,批量处理的需求很大
- Approach: 途径,利用react-native框架实现本软件的第一初步版本
- 优化:根据用户反馈和组内测试,优化产品的体验和用户交互逻辑
- 完善:针对一些特定的表格处理场景,做专门的优化
- Benifit: 本项目能够改善办公人群、学生人群、教师人群对表格下发、填写、处理、收集的体验
- 批量处理纸质原件,解决收集数字化数据的困难
- 原件和数字化数据统一管理,方便回溯原件,核实表格细节
- 表格归纳合并、解决传统表格填写需要传递的难点
- Competitors: 我们的分析团队对竞品现有的市场份额和竞品特点做了一些分析
- 腾讯OCR:五个大类,47个小类。大类包括:通用文字识别、卡证文字识别、票据单据识别、汽车相关识别、行业相关文档识别。在行业文档识别中,又分为表格识别,算式识别,数学公式识别,数学试题识别和保险单据识别。
- 阿里云OCR:产品的场景大类包括文档识别、卡证识别和KV结构模板
- 百度云OCR:分为网络图片文字识别、表格文字识别、数字识别、二维码识别、印章检测五个大类。对于表格文字识别,其介绍如下:支持识别具备完整框线的常规表格和含合并单元格的复杂表格,并可选择以JSON或Excel形式返回识别结果。对于无表格线版:支持识别无表格框线,但行、列位置明确的表格,并以JSON形式同步返回识别结果。
- Delivery:
- 学生群体:在可以在教学群中通过使用班级博客的教师、学生推广、微信推广
- github:在github上的release中交付,并推广到各个社交网络
- 应用商店:安卓各个应用商店,过审并交付
OCR的核心实体与核心需求
what is OCR
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
常见的软件结构
前期处理(图像处理)
- 图像输入与预处理
- 二值化
- 去噪
- 倾斜校正
中期处理(文本处理与排版)
- 版面分析
- 字符切割
- 字符识别
- 版面恢复
后期处理
- 后处理与校对
- 输出
核心实体
在后端需要完成从图片中抓取文字,完成文字的分割与识别
核心需求
高准确率的文字识别
版面识别与复原
Microsoft OCR from labeling tools
在传统的OCR基础上,还增加了label功能。
在train model时,用户给出自己的待识别文本,允许用户对文本进行标签,之后经过训练。
在对于其他的文本,则能通过模型对于文本抓取类似的label信息。
本应用需要用户提供大量已经标注过的表单数据,作为训练数据训练模型,最后用训练好的模型预测一张同类型的新表格,在新表上预测标注,并给出每处标注的置信度
输入:用户手动标注的表单,可以标注的表单格式PDF, JPEG,TIFF
训练:用Form Recognizer模块训练模型
输出:预测新表格的key/value特征
标注过程
识别表单的文本区域,并通过高亮给出文本框边界
用户新建标签类型
用户点击想要标注的文本区域,再点击对应的标签,完成标注
用户界面组成
preview pane 包含源地址中的表单列表
main editor pane 展示表单,用户使用标签标注表单文本的区域
tags editor pane 允许用户修改,记录和删除标签
微软开源OCR调研情况
核心功能定义:识别表单并进行标注
核心功能具体使用链
- 前提:所有训练文档格式相同。
- 标注训练集的表单并训练:通过API获得文档文本布局[识别表单元素]->标注表单元素->指定标注类型与格式->训练(train)
- 预测:上传非训练集的表单文档->预测(为表单生成标注)。
- 格式支持支持pdf、图片、TIFF等文件
- 额外功能-更多的是用户体验的角度:
- 保存项目与重启项目。
- 键盘快捷键的使用-支持方便快捷的标注操作。
源代码角度获得的信息
我认为比较核心的上层文件:
| 上层文件名 | 基本功能 |
|---|---|
| applicationState.ts | 定义了基本应用程序状态:设置、标签项目结构、存储类型、assets信息等等 |
| assetService.ts | 处理项目assets的一些方法 |
| connectionServece.ts | 连接服务 |
| ocrService.ts | 处理OCR |
| projectService.ts | 处理用户创建的整个项目 |
发布预测
我们现在可能的发布形式是web引用,或者是安卓app。
α版本:预计发布以后一周内的OCR的使用次数达到500,注册的用户量达到100。
β版本:预计发布以后一周内的OCR的使用次数达到1000,注册的用户量达到200。
γ版本:预计发布以后一周内的OCR的使用次数达到2000,注册的用户量达到400。
分析与设计
目前的软件架构分析:

目前的用户交互设计

竞品分析
目前OCR软件的市场份额初步分析
| APP | Apple iOS store | Google Play Store | 华为应用市场 | vivo应用市场 |
|---|---|---|---|---|
| Text Scanner[OCR] | 3.2k | 87.7k | ||
| Microsoft Office Lens | 2.9k | 461.0k | ||
| Adobe Scan | 296.4k | 480.9k | ||
| FineScanner AI | 3.2k | |||
| Scanner Pro | 128.9k | |||
| OCR扫描王 | 500k | 380k | ||
| 扫描全能王 | 24,350k | |||
| 文字识别OCR | 370k | 120k | ||
| 扫描王OCR | 60k | |||
| 得力OCR文字识别 | 110k | |||
| 回识OCR文字识别 | 120k |
初步分工
| 成员 | 需求技术调研阶段 | alpha产品阶段 |
|---|---|---|
| 彭毛小民 | PM、协调总结各个人员汇总的技术细节、总结报告 | PM、对团队成员工作进行可视化管理、协同各个成员共同工作、加入框架开发 |
| 伦泽标 | 框架技术调研负责 | 引领团队框架技术开发,和OCR底层项目组对接 |
| 叶开辉 | 竞品项目和现有工具调研 | react框架相关成员 |
| 黎正宇 | 项目需求分析负责 | 开发设计待定 |
| 马延 | 项目需求分析成员,项目交互设计负责 | 云端数据库存储待定 |
| 肖思炀 | 微软OCR工具调研负责 | 引领OCR底层项目组,OCR底层项目与前端框架对接 |
| 赵涛 | 微软OCR工具调研成员 | OCR底层开发相关成员 |
[no_code团队]项目介绍 & 需求分析 & 发布预测的更多相关文章
- [敏捷软工团队博客]项目介绍 & 需求分析 & 发布预测
项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 团队项目选择 我们在这个课程的目标是 在团队合作中锻炼自己 这个作业在哪个具体方面帮助我们实现目标 了解项目整体情况 ...
- HNU_团队项目_需求分析感想(全员)
以下为软件1701-“洋芋好想飞”的需求分析感想 PM QXS 需求分析过程中的前进与曲折令我深刻地认识到,需求分析是一个动态的过程,而非一个静态的任务结点. 比如最初我们设想可以为用户设定角色,但最 ...
- 团队项目——软件需求分析(NABCD)
一.团队项目简介 团队名称:SmartCoder 项目名称:<一起> 二.针对 " 地图可视化查看发布的内容 " 这一特点进行 NABCD 分析 N(Need需求) 往 ...
- 团队作业——团队项目Alpha版本发布
该作业所属课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求链接 https://edu.cnblogs. ...
- 团队项目-Alpha版本发布1
此次作业的目的是让同学们在这个星期内完成团队项目α版本的第一次测试和发布,为发布下一次的 α版本做一个准备和前期检验. 1.作业要求: 提交一份α版本冲刺博客 2.博客要求: (1)请大家在作业开头添 ...
- 团队项目-Alpha版本发布2
这个作业属于哪个课程 课程的链接 这个作业的要求在哪里 作业要求的链接 团队名称 西柚三剑客 这个作业的目标 -Alpha2版本发布说明,给出测试报告,并进行总结 1. 团队成员的学号列表 团队成员 ...
- 团队项目-Alpha2版本发布
第五次团队作业 序言 所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign 作业要求 https://w ...
- 团队项目-Beta版本发布
这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求链接 团队名称 众志陈成 这个作业的目标 通过团队协作了解软件开发的大致流程,并在这个过程中体会调整与优化程序的方法,为以后真实的软件开发奠 ...
- "名字好难想队“团队项目
团队展示 1.队名:名字好难想队 2.队员介绍 姓名 学号 岗位 黎扬乐(组长) 3116004689 程序,测试 李世潇 3116004690 策划,美术,动画 梁耀 3116004691 项目管理 ...
随机推荐
- C# Dapper基本三层架构使用 (三、DAL)
数据访问层(DAL),主要是存放对数据类的访问,即对数据库的添加.删除.修改.更新等基本操作 首先需要在UI层App.Config配置文件中增加连接字符串,如下所示 <connectionStr ...
- jq 追加元素的几种方法
jQuery添加插入元素技巧: jquery添加分为在指定元素的里面添加和外面添加两种: 里面添加使用(append 和prepend) 里面添加又分为在里面的前面添加和后面添加 里面的前面添加使用 ...
- 10 个不为人知的Python冷知识
1. 省略号也是对象 ... 这是省略号,在Python中,一切皆对象.它也不例外. 在 Python 中,它叫做 Ellipsis . 在 Python 3 中你可以直接写-来得到这玩意. > ...
- TypeError: exchange_declare() got an unexpected keyword argument 'type'
在设置消息广播时:以下代码会报错channel.exchange_declare(exchange='direct_logs', type='direct')TypeError: exchange_d ...
- 使用 mysql 的 Docker 镜像
使用 mysql 的 Docker 镜像 前言 之前搞了很多都是手工在操作系统的镜像中安装使用 mysql,作为自己折腾也就算了,作为实际使用实为不妥:Docker最重要的特性就是可扩展性,把各种程序 ...
- Java实现导入Excel文件
一.配置文件名称.路径.内容: <bean id="multipartResolver" class="org.springframework.web.multip ...
- css 限制字数
text-overflow: ellipsis; overflow: hidden; 不过需设置宽高
- 【TP3.2.3】addAll方法的坑
问题:做一个导入Excel到数据库的功能中需要用到addAll功能,但是每次执行到addAll()时都会报错,如下 Insert value list does not match column li ...
- ecshop调用指定栏目下的商品的方法
第一步 在系统目录文件找到includes/lib_goods.php 这个文件打开 在此页最底部加入以下函数代码 /** * 首页获取指定分类产品 * * @access public * @pa ...
- AD学习笔记(基础)
AD学习 1 学习思路 1.1 学什么 1.2 怎么学 2 AD本身 3 AD project 3.1 任务层级 3.2 PCB流程 4 原理图工作环境设置 5 开始 5.1工程创建 5.2 元件库介 ...