基于医学图形处理项目的需求分析和概念原型
本文尝试用传统的项目分析方法,对自己现在正在做的深度学习项目-医学图形处理项目(MIP),做一下分析。本文旨在了解从需求分析到软件设计的基本建模方法。
项目介绍:我们使用网上公开发布的 Deep Lesion 数据集,它包含各种病变,包括肺结节、肝病变、淋巴结扩大、肾病变、骨病变等。开发一个通用灶变识别系统,通过一个统一的框架查找到每种病灶的区域并根据病灶识别出所有类型的病变,并挖掘出各个病灶之间的联系;通过基于区域卷积神经网络(更快的RCNN)的算法训练我们的数据集;通过误报率,准确率、召回率和损失函数来显示系统的性能好坏。
(一)用例分析
用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。
用例的几个基本要素如下:

故可推得MIP项目的分析如下:
MIP项目的参与者(Actor):医护人员,开发人员
MIP项目的用例(Use Case): 医护人员输入医学图像、医护人员获取反馈结果。开发人员获取图像、开发人员根据图像进行模型训练,进行调优。

(二)用面向对象的方法进行分析
用面向对象的思想对MIP项目进行分析,分析各个对象流程。对项目进行抽象,可以想到该项目中的类有:Image、doctor、Admin(开发人员)、Model(系统使用的模型)。根据各个对象所要完成的用例,可以分析他们应该具备的属性和方法。可得类图如下:

(三)数据模型
根据类图,可以得知各个类所具有的属性和必要存储的信息。可以得出数据模型如下:
Image表
| 属性名称 | 字符类型 | 是否为空 | 默认 | 约束 | 含义 |
| image_id | int | Not null | 自动增加 | 主键 | 图片编号 |
| ill_type | varchar | Not null | 病变类型 | ||
| loaction | varchar | Not null | 图片来自身体哪个部位 |
Model表
| 属性名称 | 字符类型 | 是否为空 | 默认 | 约束 | 含义 |
| model_id | int | Not null | 自动增加 | 主键 | 模型编号 |
| model_name | varchar | Not null | 模型名称 | ||
| model_para | varchar | Not null | 存储模型参数 | ||
| accuracy | flaot | Not null | 模型准确度 |
doctor表
| 属性名称 | 字符类型 | 是否为空 | 默认 | 约束 | 含义 |
| doctor_id | varchar | Not null | 主键 | 医生证件号 | |
| input_image_id | varchar | Not null | 外键 | 处理图片的的id | |
| result | varchar | Not null | 模型返回结果 |
Admin表
| 属性名称 | 字符类型 | 是否为空 | 默认 | 约束 | 含义 |
| admin_id | varchar | Not null | 主键 | 开发人员编号 | |
| model_id | varchar | Not null | 外键 | 对模型的调参记录 | |
| result | varchar | Not null | 模型返回结果 |
(四)概念原型
从上面的分析,我们现在理论设计上,已经形成了一个设计的模板,也可以说是一个项目的原型。回头去看这个过程,这个原型主要是由 “用例 +数据模型”构成。概念原型是一种虚拟的、理想化的软件产品形式。我们可以根据这个原型,进行业务逻辑的设计和实现、数据库的设计、面向对象编程。这个原型浓缩了整个项目设计的主要部分,可以作为项目前期开发的指导文档,对整个项目的设计,起到一个统筹总览设计的作用。
(五)小结
本文尝试用传统软件设计的需求分析流程,对自己刚开始接触的一个深度学习项目进行了一个分析。对笔者来说,更加熟悉了该项目的设计细节,以及学习了设计概念原型的方法。本文随笔而写,在真正的项目开发中,可能对深度学习项目进行这样的设计,并不是很恰当,望读者有选择阅读本文。
浙公网安备 33010602011771号