一、项目介绍

  题目:文本行检测系统。

  内容:检测出文档图像以及复杂场景中的所有文本行。即可以作为文本行识别任务的前端,也可以作为一个单独的服务提供给用户使用。

  模型选择:CVPR2019中的文章 Character Region Awareness for Text Detection

二、运行环境与技术选型说明

  项目包含三个主要部分,用于文本行检测的模型,作为前端的浏览器以及提供具体服务的服务器。

  模型部分使用pytorch,而整个web框架使用Django,便于快速开发与部署。

  三个部分的开发与部署均在ubuntu16.04环境下。

三、软件架构与设计模式

  软件架构风格使用了经典的B/S模型。

  Django使用了MVC框架,使用Controller将Model与View组合在一起,同时也实现了Model与View的松散耦合。

  同时Django也使用了MVC设计模式。

      

技术方案和系统架构的区别_软件架构

 

四、分解视图

      

技术方案和系统架构的区别_技术方案和系统架构的区别_02

 

 

五、依赖视图

      

技术方案和系统架构的区别_数据结构_03

 

 

六、执行视图

技术方案和系统架构的区别_服务器_04

 

 

七、实现视图

  Browser与Server的实现

      

技术方案和系统架构的区别_技术方案和系统架构的区别_05

 

模型的训练与推理的实现

      

技术方案和系统架构的区别_数据结构_06

 

 

八、部署视图

      

技术方案和系统架构的区别_服务器_07

 

 

九、工作分配视图

      

技术方案和系统架构的区别_服务器_08

十、数据库设计

  由于本工程实践的重心在于模型的实现与部署,因此没有设计数据库来存储数据。

  同时,由于使用Django进行简单的前后端开发,导致前后端几乎没有自己定义的数据结构,而模型部分的数据结构既多又复杂也不便于展示。

十一、概念原型与核心工作机制

  通过之前的分析与设计可以总结出项目的概念原型工作过程:

    用户将需要检测的图片通过浏览器端上传到服务器上,服务器通过部署在服务器上的模型对接受到的图片进行推理,随后将结果返还给前端。

    用户可以对返回的结果进行评价,服务器会将用户不满意的bad case存储下来,方便之后对于算法与模型的分析。

十二、总结

   通过这两次的作业,我对软件的分析与设计流程有了一个初步的认识,在后面的学习中应该更侧重于对各类描述软件的各个角度的视图的作图方法与工具的学习,

画出更规范更标准的图。