
正文
[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:五个大类,47个小类。大类包括:通用文字识别、卡证文字识别、票据单据识别、汽车相关识别、行业相关文档识别。在 行业文档识别 中,又分为 表格识别 ,算式识别,数学公式识别,数学试题识别和保险单据识别。
- 阿里云OCR:产品的场景大类包括文档识别、卡证识别和KV结构模板
- 百度云OCR:分为网络图片文字识别、表格文字识别、数字识别、二维码识别、印章检测五个大类。对于表格文字识别,其介绍如下:支持识别具备完整框线的常规表格和含合并单元格的复杂表格,并可选择以 JSON或Excel形式 返回识别结果。对于无表格线版:支持识别无表格框线,但行、列位置明确的表格,并以JSON形式同步返回识别结果。
- 学生群体:在可以在教学群中通过使用班级博客的教师、学生推广、微信推广
- github:在github上的release中交付,并推广到各个社交网络
- 应用商店:安卓各个应用商店,过审并交付
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 项目管理 ...
随机推荐
-
(4)ElasticSearch在linux环境中搭建集群
1.概述 一个运行中的Elasticsearch实例称为一个节点(node),而集群是由一个或者多个拥有相同cluster.name配置的节点组成,它们共同承担数据和负载的压力.当有节点加入集群中或者 ...
-
Java关键字-static汇总
1.静态变量(被static修饰的成员变量) 1-静态变量 运行时,Java虚拟机只为静态变量分配一次内存(加载类的过程中完成静态变量的内存分配) 类的内部可以在任何方法内直接访问静态变量 其他类中可 ...
-
Vue状态管理Vuex简单使用
状态管理保存在store\index.js中,简单说明如下 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export def ...
-
aes加解密前后端-前端
一.ajax请求前端 f12请求和响应参数效果: 1.在前端封装ajax的公共Util的js中,封装ajax请求的地方,在beforeSend方法和成功之后的回调函数success方法中: var p ...
-
使用zipKin构建NetCore分布式链路跟踪
本文主要讲解使用ZipKin构建NetCore分布式链路跟踪 场景 因为最近公司业务量增加,而项目也需要增大部署数量,K8S中Pod基本都扩容了一倍,新增了若干物理机,部分物理机网络通信存在问题,导致 ...
-
CodeForce-803B Distances to Zero(贪心DP)
Distances to Zero CodeForces - 803B 题意:给定一个数列 a0, a1, ..., an - 1.对于数列中的每一项都要求出与该项最近的0与该项的距离.保证数列中有至 ...
-
简单学习PHP中的层次性能分析器
在 PHP 中,我们需要进行调试的时候,一般都会使用 memory_get_usage() 看下内存的使用情况.但如果想看当前的脚本 CPU 的占用情况就没有什么现成的函数了.不过,PHP 也为我们提 ...
-
TP5指定讲师页面文章上下篇
控制器代码 // 查询上下篇 $courseIds = model('course') ->where([ 'isdel' => 0, 'teacherid' => $teacher ...
-
css 限制字数
text-overflow: ellipsis; overflow: hidden; 不过需设置宽高
-
ubuntu提示:无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
root@uni-virtual-machine:/home/uni# apt install apt-transport-https ca-certificates curl software-pr ...
项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 团队项目选择 我们在这个课程的目标是 在团队合作中锻炼自己 这个作业在哪个具体方面帮助我们实现目标 了解项目整体情况 ...
以下为软件1701-“洋芋好想飞”的需求分析感想 PM QXS 需求分析过程中的前进与曲折令我深刻地认识到,需求分析是一个动态的过程,而非一个静态的任务结点. 比如最初我们设想可以为用户设定角色,但最 ...
一.团队项目简介 团队名称:SmartCoder 项目名称:<一起> 二.针对 " 地图可视化查看发布的内容 " 这一特点进行 NABCD 分析 N(Need需求) 往 ...
该作业所属课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求链接 https://edu.cnblogs. ...
此次作业的目的是让同学们在这个星期内完成团队项目α版本的第一次测试和发布,为发布下一次的 α版本做一个准备和前期检验. 1.作业要求: 提交一份α版本冲刺博客 2.博客要求: (1)请大家在作业开头添 ...
这个作业属于哪个课程 课程的链接 这个作业的要求在哪里 作业要求的链接 团队名称 西柚三剑客 这个作业的目标 -Alpha2版本发布说明,给出测试报告,并进行总结 1. 团队成员的学号列表 团队成员 ...
第五次团队作业 序言 所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign 作业要求 https://w ...
这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求链接 团队名称 众志陈成 这个作业的目标 通过团队协作了解软件开发的大致流程,并在这个过程中体会调整与优化程序的方法,为以后真实的软件开发奠 ...
团队展示 1.队名:名字好难想队 2.队员介绍 姓名 学号 岗位 黎扬乐(组长) 3116004689 程序,测试 李世潇 3116004690 策划,美术,动画 梁耀 3116004691 项目管理 ...
-
(4)ElasticSearch在linux环境中搭建集群
1.概述 一个运行中的Elasticsearch实例称为一个节点(node),而集群是由一个或者多个拥有相同cluster.name配置的节点组成,它们共同承担数据和负载的压力.当有节点加入集群中或者 ...
-
Java关键字-static汇总
1.静态变量(被static修饰的成员变量) 1-静态变量 运行时,Java虚拟机只为静态变量分配一次内存(加载类的过程中完成静态变量的内存分配) 类的内部可以在任何方法内直接访问静态变量 其他类中可 ...
-
Vue状态管理Vuex简单使用
状态管理保存在store\index.js中,简单说明如下 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export def ...
-
aes加解密前后端-前端
一.ajax请求前端 f12请求和响应参数效果: 1.在前端封装ajax的公共Util的js中,封装ajax请求的地方,在beforeSend方法和成功之后的回调函数success方法中: var p ...
-
使用zipKin构建NetCore分布式链路跟踪
本文主要讲解使用ZipKin构建NetCore分布式链路跟踪 场景 因为最近公司业务量增加,而项目也需要增大部署数量,K8S中Pod基本都扩容了一倍,新增了若干物理机,部分物理机网络通信存在问题,导致 ...
-
CodeForce-803B Distances to Zero(贪心DP)
Distances to Zero CodeForces - 803B 题意:给定一个数列 a0, a1, ..., an - 1.对于数列中的每一项都要求出与该项最近的0与该项的距离.保证数列中有至 ...
-
简单学习PHP中的层次性能分析器
在 PHP 中,我们需要进行调试的时候,一般都会使用 memory_get_usage() 看下内存的使用情况.但如果想看当前的脚本 CPU 的占用情况就没有什么现成的函数了.不过,PHP 也为我们提 ...
-
TP5指定讲师页面文章上下篇
控制器代码 // 查询上下篇 $courseIds = model('course') ->where([ 'isdel' => 0, 'teacherid' => $teacher ...
-
css 限制字数
text-overflow: ellipsis; overflow: hidden; 不过需设置宽高
-
ubuntu提示:无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
root@uni-virtual-machine:/home/uni# apt install apt-transport-https ca-certificates curl software-pr ...






