由于各种电子产品的大量使用,现如今近视的群体不断扩大,向着低龄化发展,由于未成年人正处于身体发育期,所以近视度数增长较快,市场上除了框架眼镜,还有角膜接触镜,而对于角膜接触镜佩戴者,会有角膜溃疡的发生风险。本次案例将基于昇思MindSpore AI框架来对角膜溃疡的类型进行识别,根据荧光素染色后表现的形状分为点状、点片混合和片状角膜溃疡。
项目代码:https://xihe.mindspore.cn/projects/G_washington/mindspore_corn
案例实践
1、神经网络模型介绍:ResNet50
本次案例使用的是ResNet50,该模型是2015年由微软实验室的何恺明提出,在该网络模型提出之前,传统的神经网络随着网络层数的不断叠加,出现了网络退化问题,而残差网络提出的残差网络结构(Residual Network),主要就是用来减轻退化问题。
ResNet系列的网络结构
残差网络结构由两个分支构成:一个主分支,一个shortcuts(图中弧线表示)。主分支通过堆叠一系列的卷积操作得到,shotcuts从输入直接到输出,主分支输出的特征矩阵$F(x)$加上shortcuts输出的特征矩阵$x$得到$F(x)+x$,通过Relu激活函数后即为残差网络最后的输出。该残差网络结构主要由两种,一种是Building Block,适用于较浅的ResNet网络;另一种是Bottleneck,适用于层数较深的ResNet网络。
残差网络结构
2、案例简介
首先要导入mindspore模块库,需要用到dataset、vision和download。
设置超参,包括学习率,动量、训练批次、训练周期数等等。
数据集是自己构建的,官方并没有直接的接口加载,需要将数据集创建为树状结构,然后使用dataset.ImageFolderDataset接口来加载数据集,MindSpore框架采用dataset.transforms接口来进行数据增强,可以进行各种数据处理操作。
ResNet50使用的残差结构是Bottleneck,该结构使用的参数数量更少,该结构的主分支有三层卷积结构,分别为1*1的卷积层、3*3卷积层和1*1的卷积层,其中1*1的卷积层分别起降维和升维的作用。
重写ResNet类的init和construct函数,将各种结构和层级堆积在一起,构成resnet50网络。
模型训练结果如下:
项目总结
角膜溃疡的形状识别,能够帮助眼科医生做出初步的筛选,减轻工作量,更好的帮助医生做出诊断,其他用户可以在此基础上,进行优化,然后可以将分类更加的细化,也可以基于数据,将角膜溃疡进行其他的分类,做出更加准确的判断。