由于各种电子产品的大量使用,现如今近视的群体不断扩大,向着低龄化发展,由于未成年人正处于身体发育期,所以近视度数增长较快,市场上除了框架眼镜,还有角膜接触镜,而对于角膜接触镜佩戴者,会有角膜溃疡的发生风险。本次案例将基于昇思MindSpore AI框架来对角膜溃疡的类型进行识别,根据荧光素染色后表现的形状分为点状、点片混合和片状角膜溃疡。

项目代码:https://xihe.mindspore.cn/projects/G_washington/mindspore_corn

案例实践

1、神经网络模型介绍:ResNet50

本次案例使用的是ResNet50,该模型是2015年由微软实验室的何恺明提出,在该网络模型提出之前,传统的神经网络随着网络层数的不断叠加,出现了网络退化问题,而残差网络提出的残差网络结构(Residual Network),主要就是用来减轻退化问题。

image.png

ResNet系列的网络结构

残差网络结构由两个分支构成:一个主分支,一个shortcuts(图中弧线表示)。主分支通过堆叠一系列的卷积操作得到,shotcuts从输入直接到输出,主分支输出的特征矩阵$F(x)$加上shortcuts输出的特征矩阵$x$得到$F(x)+x$,通过Relu激活函数后即为残差网络最后的输出。该残差网络结构主要由两种,一种是Building Block,适用于较浅的ResNet网络;另一种是Bottleneck,适用于层数较深的ResNet网络。

image.png

残差网络结构

2、案例简介

首先要导入mindspore模块库,需要用到dataset、vision和download。

image.png

设置超参,包括学习率,动量、训练批次、训练周期数等等。

image.png

数据集是自己构建的,官方并没有直接的接口加载,需要将数据集创建为树状结构,然后使用dataset.ImageFolderDataset接口来加载数据集,MindSpore框架采用dataset.transforms接口来进行数据增强,可以进行各种数据处理操作。

ResNet50使用的残差结构是Bottleneck,该结构使用的参数数量更少,该结构的主分支有三层卷积结构,分别为1*1的卷积层、3*3卷积层和1*1的卷积层,其中1*1的卷积层分别起降维和升维的作用。

image.png

重写ResNet类的init和construct函数,将各种结构和层级堆积在一起,构成resnet50网络。

image.png

模型训练结果如下:

image.png

项目总结

角膜溃疡的形状识别,能够帮助眼科医生做出初步的筛选,减轻工作量,更好的帮助医生做出诊断,其他用户可以在此基础上,进行优化,然后可以将分类更加的细化,也可以基于数据,将角膜溃疡进行其他的分类,做出更加准确的判断。

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐