项目 内容
2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客
作业要求 团队项目选择
我们在这个课程的目标是 在团队合作中提升软件开发水平
这个作业在哪个具体方面帮助我们实现目标 进行项目调研、完成需求和技术分析

项目选择

需求:基于微软开源的OCR表单标注工具等开源模块,开发一个表单数据的识别和收集工具,对信息采集表、调查问卷表等各类表格式数据能够自动识别成可编辑的表格数据,并能将多页同类表格收集汇总为一个大表。

必备条件:熟悉机器学习,Android应用开发,较强的团队协作能力

需求分析

核心需求总结

  1. 基础功能:拍照扫描数字化图表内容
  2. 扩展功能:多个数字化图表合并储存
  3. 云端功能:手机或者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调研情况

核心功能定义:识别表单并进行标注

核心功能具体使用链

  1. 前提:所有训练文档格式相同。
  2. 标注训练集的表单并训练:通过API获得文档文本布局[识别表单元素]->标注表单元素->指定标注类型与格式->训练(train)
  3. 预测:上传非训练集的表单文档->预测(为表单生成标注)。
  4. 格式支持支持pdf、图片、TIFF等文件
  5. 额外功能-更多的是用户体验的角度:
    • 保存项目与重启项目。
    • 键盘快捷键的使用-支持方便快捷的标注操作。

源代码角度获得的信息

我认为比较核心的上层文件:

上层文件名 基本功能
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团队]项目介绍 & 需求分析 & 发布预测的更多相关文章

  1. [敏捷软工团队博客]项目介绍 & 需求分析 & 发布预测

    项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 团队项目选择 我们在这个课程的目标是 在团队合作中锻炼自己 这个作业在哪个具体方面帮助我们实现目标 了解项目整体情况 ...

  2. HNU_团队项目_需求分析感想(全员)

    以下为软件1701-“洋芋好想飞”的需求分析感想 PM QXS 需求分析过程中的前进与曲折令我深刻地认识到,需求分析是一个动态的过程,而非一个静态的任务结点. 比如最初我们设想可以为用户设定角色,但最 ...

  3. 团队项目——软件需求分析(NABCD)

    一.团队项目简介 团队名称:SmartCoder 项目名称:<一起> 二.针对 " 地图可视化查看发布的内容 " 这一特点进行 NABCD 分析 N(Need需求) 往 ...

  4. 团队作业——团队项目Alpha版本发布

    该作业所属课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求链接    https://edu.cnblogs. ...

  5. 团队项目-Alpha版本发布1

    此次作业的目的是让同学们在这个星期内完成团队项目α版本的第一次测试和发布,为发布下一次的 α版本做一个准备和前期检验. 1.作业要求: 提交一份α版本冲刺博客 2.博客要求: (1)请大家在作业开头添 ...

  6. 团队项目-Alpha版本发布2

    这个作业属于哪个课程 课程的链接 这个作业的要求在哪里 作业要求的链接 团队名称 西柚三剑客 这个作业的目标 -Alpha2版本发布说明,给出测试报告,并进行总结 1. 团队成员的学号列表 团队成员 ...

  7. 团队项目-Alpha2版本发布

    第五次团队作业 序言 所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign 作业要求 https://w ...

  8. 团队项目-Beta版本发布

    这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求链接 团队名称 众志陈成 这个作业的目标 通过团队协作了解软件开发的大致流程,并在这个过程中体会调整与优化程序的方法,为以后真实的软件开发奠 ...

  9. "名字好难想队“团队项目

    团队展示 1.队名:名字好难想队 2.队员介绍 姓名 学号 岗位 黎扬乐(组长) 3116004689 程序,测试 李世潇 3116004690 策划,美术,动画 梁耀 3116004691 项目管理 ...

随机推荐

  1. C语言实现任务调度与定时器

    代码实现是在xl2tpd的源码中get到的,感觉很有意思的一段代码.基本功能就是实现定时器,时间到后从定时队列中取出,然后完成指定的任务. 1. schedule.c代码(自己添加了main函数,用来 ...

  2. TreeListLookUpEdit控件使用

    绑定数据 treeListLookUpEdit1.Properties.DataSource=list;增加列treeListLookUpEdit1.Properties.TreeList.Colum ...

  3. 【转载】小心 int 乘法溢出!

    C/C++ 语言里, 绝大部分平台上 int 类型是 32 位的, 无论你的操作系统是否是 64 位的. 而一些常用的函数, 如 malloc(), 它接受的参数是 size_t 类型: void * ...

  4. HDU1166敌兵布阵(线段树单点更新)

    线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点.       对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b ...

  5. 【简单数据结构】并查集--洛谷 P1111

    题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数NN,和公路数MM,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你 ...

  6. 【PHP数据结构】链表的其它形式

    在上篇文章中,我们已经说过了链表除了简单的那一种单向链表外,还有其它的几种形式.当然,这也是链表这种结构的一大特点,非常地灵活和方便.我们简单的想一想,如果让最后一个节点的 next 指回第一个节点, ...

  7. PHP中非常好玩的Calendar扩展学习

    为什么说这个 Calendar 扩展很好玩呢?因为你基本用不到它!这个扩展是一套关于日期历法的扩展,但是对于我们来说,它没有农历的相关操作,所以对于我们中国人来说这个扩展并没有什么实际的作用.不过这并 ...

  8. Java基础系列(12)- 运算符

    运算符 算数运算符:+ - * / % ++ -- 赋值运算符:= += -= *= /= 关系运算符:> < >= <= == != instanceof 逻辑运算符:&am ...

  9. python-requests包请求响应时间

    p.p1 { margin: 0; font: 14px "Helvetica Neue"; color: rgba(17, 17, 17, 1) } p.p2 { margin: ...

  10. 对代理IP进行检测是否可用

    第一种方法是使用telnetlib import telnetlib import requests from lxml import etree #解析此url页面的IP url = 'http:/ ...