1. 引言
乳腺癌是全球女性中最常见且致死率最高的恶性肿瘤之一[1] [2]。随着生活方式的改变和人口老龄化,乳腺癌的发病率逐年上升,尤其在发展中国家,面临着巨大的公共卫生挑战[3]-[5]。早期筛查与准确诊断对于降低乳腺癌的死亡率至关重要,然而目前的筛查和诊断方法仍存在诸多不足,包括技术手段的局限和资源配置的不均衡[6]-[8]。因此,亟需探索更加高效和可靠的检测系统,以实现早期发现和及时治疗。
近年来,随着人工智能的发展,基于先进的数据处理与分析手段的乳腺癌筛查新模式逐渐受到关注[9]-[12]。通过对乳腺癌影像学数据及病理数据进行深度学习分析,可以提高诊断的准确性和效率,从而改善患者的预后[13] [14]。使用医疗信息管理系统的优势在于可以实现数据的集中管理与共享,使得临床医生能够在多学科协作中快速获取最新的诊疗信息,推动个性化医疗的实现[15]-[18]。
针对以上背景,本研究旨在设计一种基于深度学习的乳腺癌多级诊断系统。该系统将整合算法、诊断报告、医生审核修正、数据库和微信小程序,力求提高乳腺癌的筛查效率及准确性,最终为患者提供更为优质的医疗服务。通过对现有技术的优化与创新,本系统将为乳腺癌的早期预防和诊断开辟新途径。
2. 数据集与方法
2.1. 数据集
本文使用的数据集由浙江某医疗公司提供,采集对象为女性体检人员。将数据集分为训练集和测试集,其中80%用于训练模型,20%用户测试模型,并且在训练集中随机抽取20%作为模型的验证集。所有的图像数据都以dicom格式保存,共计1600张。
2.2. 深度学习算法
在本研究中,通过对比ResNet50、VGGNeT、GoogleNet和CNN-ViT模型的诊断性能,最终选择ResNet50模型作为本系统的诊断模型,该模型主要包含了卷积层、池化层、激活函数等。
2.2.1. ResNet50模型
随着模型层数的增加,模型中的参数数量呈指数级增长,同时梯度消失和梯度爆炸也是困扰深层网络训练的最常见问题之一,并且也会造成网络参数数值的不稳定性,为了解决这些问题,因此微软研究院提出了ResNet (Residual Neural Network)结构。ResNet的基本网络结构如下图1所示。
Figure 1. ResNet network structure
图1. ResNet网络结构
ResNet (残差网络)的核心创新在于提出残差学习框架,其本质是通过引入跨层跳跃连接(Shortcut Connection),使网络能够高效学习输入与期望输出之间的残差映射(Residual Mapping),如图2所示。输入x会分为两路,其中x表示恒等映射,F(x)表示残差映射,两者求和进入激活函数,然后输出ReLU(F(x) + x)。
Figure 2. ResNet network
图2. ResNet网络
2.2.2. 卷积层
卷积层是卷积神经网络的组成部分,其设计灵感来源于生物视觉系统的局部感知特性。与全连接层相比,卷积层通过局部连接和权重共享两大机制,显著降低参数量并提升模型对位置变化的鲁棒性。局部连接:每个神经元仅与输入图像的局部区域(如3 × 3像素)交互,模拟人脑视觉皮层中神经元的感受野(Receptive Field)。权重共享:同一组卷积核(Filter)被全局应用于整个图像,减少了冗余参数。例如,一个5 × 5的卷积核仅需25个权重参数,而全连接层处理同样区域需要5 × 5 × Cin个参数(Cin为输入通道数)。卷积操作的数学公式定义为:
(1)
其中x表示输入特征图;w表示可学习卷积核权重(如检测边缘的3 × 3核);b表示偏置项;K表示卷积核尺寸;
表示输出特征图中的像素值。
2.2.3. 池化层
池化层是通过下采样(Downsampling)减少特征图尺寸,从而减小后续层的参数量和计算复杂度、对输入的小尺度扰动(如噪声、伪影)不敏感和保留最显著的特征(如最大值对应病灶位置)。池化类型主要分为最大池化和平均池化。最大池化是通过在局部窗口中选取最大值,突出纹理和边缘特征,从而增强恶性钙化点的对比度;平均池化是计算局部窗口的平均值,平滑特征并抑制噪声,减少脂肪组织的纹理干扰。
2.2.4. 激活函数
激活函数为神经网络引入非线性映射,使其能够学习复杂模式(如肿瘤的异质性)。常用的函数主要有ReLU、Swish、Sigmoid、Tanh、Leaky ReLU等。本研究使用ReLU函数,其函数公式定义为:
(2)
其中
表示输入值,
表示经映射得到的输出值。
2.3. 数据预处理
2.3.1. 统一数据大小
图像尺寸过小会导致细节丢失,过大则会增加计算开销,因此使用cv2库将图像调整为ResNet50模型的输入要求224 × 224 × 3。
2.3.2. 层归一化
由于超声图像具有低对比度、局部纹理复杂的特点,同时当模型试图拟合真实数据分布时,中间层的微小扰动会通过多层传播被指数级放大(即“蝴蝶效应”),这种现象在深度网络中尤为显著。为了解决因数据分布的动态变化和梯度不稳定引起的不确定性,本研究选取层归一化(Layer Normalization, LN)方法,其数学公式为:
(3)
其中X表示输入张量;γ表示可学习缩放因子,初始值为1;β表示可学习偏移量,初始值为0;μ表示每个特征的均值;σ表示每个特征的方差;ϵ是个小常数,用于数值稳定性。通过参数调优和训练模型,发现γ在[1.0, 1.2]、β在[0, 0.1]范围内时可以得到符合要求的图像,因此最终将γ设置为1.2,β设置为0.1。
2.3.3. 数据增强
在选择的图像中,存在图像质量相对较差和类别不平衡的情形,将会给图像识别任务带来较大困难,进一步提高了训练成本和降低了准确性。同时为了进一步提高模型的泛化能力和鲁棒性,因此需通过对原始影像进行平移、旋转操作,这样就可以模拟真实场景中的variations (如患者体位变化、设备误差、组织形变等),从而提高训练效率和准确性。
为了模拟扫描时的轻微偏移和患者的呼吸运动,因此需通过OpenCV的warpAffine方法来实现平移,其数学公式定义为:
(4)
(5)
其中
,
表示平移量,W,H分别表示图像宽度和高度。
若平移量过大可能导致图像中的病灶移出视野,影响模型学习。在训练中发现横向和纵向平移不超过8%的图像宽度或高度可以模拟患者的轻微偏移和呼吸运动,因此选择的平移范围为±8% W/H。
为了模拟患者体位的变化,如乳房位置偏移,因此需对数据进行旋转处理,其数学公式定义为:
(6)
其中
为中心点坐标,θ为旋转角度。
为了避免旋转角度过大导致解剖结构严重扭曲,通过训练发现在与图像中心对齐的情况下,选择旋转角度±7˚模拟乳房位置的偏移。
2.4. 评价指标
在医学影像分类任务中,为了尽可能在在类别不平衡的情况下,比如良性样本远多于恶性,进一步提高对恶性的识别能力。本文选取了准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1分数作为评价指标。
准确率(Accuracy)来表示模型的性能,即正确预测样本数占总样本数的比例。其数学公式为:
(7)
精确率(Precision)是预测为恶性且实际为恶性的比例。其数学公式为:
(8)
召回率(Recall)表示模型实际为恶性且预测为恶性的比例。一般情况,召回率越高,说明更多的正类样本被预测正确,模型效果越好。其数学公式为:。
(9)
F1分数表示精确率和召回率的调和平均数,可以减少误诊和漏诊。其数学公式为:
(10)
2.5. 特征分类
为了更好地区分乳腺癌所处的不同阶段,目前对于乳腺癌诊断会用不同特征进行区分,本文所选取的每种特征的类型见表1。
Table 1. Characteristic types and types of breast cancer
表1. 乳腺癌特征种类和类型
特征 |
形状 |
方位 |
边缘 |
病灶界限 |
钙化 |
类型 |
椭圆形 |
平行 |
完整 |
锐利 |
大钙化灶 |
圆形 |
不平行 |
模糊 |
回声晕 |
病变外微小钙化 |
不规则形 |
|
成角 |
|
病变内微小钙化 |
|
微小分叶 |
|
导管内微小钙化 |
|
毛刺 |
|
|
3. 乳腺癌多级诊断系统设计
3.1. 系统总体设计
本系统基于Qt5.2、C++语言、Python语言和微信开发者工具进行开发,总体分为表现层、逻辑层、数据层和微信小程序,如图3所示,四层交互工作,方便用户使用,并提高了系统的整体性能。
Figure 3. The multi level diagnostic architecture
图3. 多级诊断架构
3.2. 系统主要模块
3.2.1. 微信小程序模块
患者可以在微信小程序注册登录,在注册完成后患者的个人信息会传递给系统内部,并且当每次诊断结果出来后,系统会生成对应的诊断报告并传给微信小程序,这样患者就可以及时地查看到每次检查的诊断报告,在报告中会根据患者的病灶等级为患者提供相关建议。然后患者可以根据自己的时间安排和当地医疗资源等情况来决定是否到上一级医院进一步诊断治疗。
3.2.2. 诊断模块
在对ResNet50模型进行大量数据训练后,会将该模型集成到系统中。在将医学图像传入训练好的深度学习模型中后,经模型推理后生成一份诊断报告,在该报告中会说明病灶特征以及对应的类型,同时会记录对应的病灶图像。
3.2.3. 医生审核修正模块
医生审核修改模块是医生与系统的重要交互模块,该模块主要负责当诊断模块生成诊断报告后,由医生查看诊断报告的内容,依据自身的临床经验对诊断结果与病灶图像进行对比,确认诊断结果是否与临床经验一致,若存在差异,医生可手动修改报告中的病灶信息并且会根据自身经验对这份报告提出后续的治疗建议,然后再生成报告。从而使报告的准确性得到提升,同时在将报告提供给患者之前,经过了临床医生的审核修正,这也使得系统的安全性得到提高。
3.2.4. 隐私保护模块
为确保患者隐私安全,系统在数据全生命周期中嵌入多层次防护机制:生成报告时,通过脱敏技术仅展示患者姓名(首字 + *)、年龄、性别及诊断结果,敏感字段(如身份证号)默认隐藏,诊断内容按风险分级管控;基于角色分级授权,医生仅可看到脱敏后的必要信息,敏感数据加密存储,采用AES-256加密,实现数据可用不可见的闭环管理。
3.2.5. 数据库模块
数据库模块致力于安全、高效地保存患者的每次检查报告数据,采用加密技术确保信息存储的安全性,仅授权的患者和医护人员可访问相应数据,从而有效保护患者隐私。通过追踪病情变化趋势,它不仅支持医生做出更精准的诊断与治疗计划,也让患者能够方便地管理自己的健康信息,同时遵循HIPAA、GDPR等相关法律法规,确保数据处理的合规性与透明度,增强医患之间的信任关系。
4. 乳腺癌多级诊断系统实现
4.1. 前端实现
前端主要用于患者与系统的交互,本研究采用Qt工具链(Qt Creator + C++)构建核心界面框架,结合QML实现动态组件渲染与数据绑定,形成“厚客户端”架构。开发过程严格遵循测试驱动开发(TDD)原则,利用Google Test框架编写C++单元测试用例。界面交互层采用Qt信号槽机制与Vue的响应式数据流深度融合,实现跨语言状态同步。之后通过微信开发者工具根据用户需求设计相应的功能组件,个人信息注册界面如图4所示,该界面包含了姓名、性别、年龄和身份证号等信息。查看报告的效果如图5所示,在该界面患者会看到自己检查的信息和建议,如建议复查或到上一级医院进行治疗等。
Figure 4. The registration interface
图4. 注册界面
Figure 5. Diagnostic report interface
图5. 诊断报告界面
4.2. 后端实现
后端主要用于处理请求,并根据实际需求对数据进行处理,并将处理后的结果返回给前端和保存到数据库保存。同时卷积神经网络算法在通过训练后,集成到该系统中。当接收到患者的个人信息后,首先会将该患者的图像传给诊断模块,经过诊断模块的分类,会得到对应的特征并将结果保存到数据库中。医生还可以通过结合自己的经验与模型诊断结果,通过数据处理模块将生成诊断报告,然后传给微信小程序数据库。最后在微信小程序中,会根据数据库中记录的数据生成报告并通知给患者,患者可以在微信小程序上及时地看到诊断报告。
5. 结果与分析
5.1. 实验环境
本文的实验环境在python环境下运行,CPU为AMD Ryzen 7 5800H,8核;核心频率:3.20 GHz;内存:16 GB DDR4;显卡:RTX 3060;64位Windows10操作系统。
5.2. 模型参数
在本实验中,使用二元交叉熵损失函数(Binary Crossentropy)来判断模型预测结果与实际值之间的差异,损失函数的表达式为:
(11)
其中,
表示样本的真实标签,
表示对样本的预测值,n表示样本数量。
本文使用一种广泛应用于深度学习的自适应优化算法Adam (Adaptive Moment Estimation),该算法结合了动量法(Momentum)和RMSProp的优点,能够自动调整每个参数的学习率,其更新步骤如下:
首先计算动量估计,其公式为:
(12)
其中,
表示梯度的动量估计,
是当前梯度,
是动量超参数,一般取值为0.9。
其次计算梯度平方的动量估计,其公式为:
(13)
其中,
表示梯度平方的动量估计,
是RMSProp超参数,一般取值为0.999。
然后由于动量估计和梯度平方的动量估计在初始时刻可能偏向于零,因此需要偏差修正(Bias Correction),其公式为:
(14)
(15)
最后更新参数,其公式为:
(16)
其中,
表示第t次迭代的参数,
是学习率,
是一个小常数,一般取值
。
在实验中,通过冻结卷积层和池化层保留预训练模型的基础特征提取能力,调整全连接层以适配新任务;针对目标数据集特性调整参数,结合数据增强和训练策略以提升泛化能力。经调试后具体参数如表2所示。
Table 2. Model parameters
表2. 模型参数
参数 |
数值 |
Epoch |
30 |
image_size |
224 |
batch_size |
32 |
损失函数 |
Binary Crossentropy |
优化器 |
Adam |
learning rate |
0.0001 |
5.3. 结果分析
本文评估和比较了ResNet50、VGGNeT、GoogleNet和CNN-ViT模型在乳腺诊断上的分类性能。为了保持公平性,所有的模型均使用相同的数据集进行训练,为了进一步确保精确性,训练集和测试机来源于相同的数据集并且使用参数也保持相同。
本研究所使用的四个模型的精确度、召回率和F1分数都显示在表3中。结果表明,在四种模型中ResNet50模型的效果最优。由表3可知,ResNet50模型的精确率为0.9135,召回率为0.9150,F1分数为0.9156。
Table 3. Model training results table
表3. 模型训练结果表
模型 |
训练集
Accuracy |
验证集
Accuracy |
测试集 |
Accuracy |
Precision |
Recall |
F1分数 |
ResNet50 |
0.9515 |
0.9261 |
0.9347 |
0.9135 |
0.9150 |
0.9156 |
VGGNeT |
0.8689 |
0.7656 |
0.7563 |
0.7436 |
0.7419 |
0.7427 |
GoogleNet |
0.8676 |
0.7196 |
0.7063 |
0.6828 |
0.6571 |
0.6697 |
CNN-ViT |
0.8941 |
0.7121 |
0.7188 |
0.7233 |
0.7143 |
0.7187 |
本文还通过混淆矩阵来评估不同模型对乳腺癌的识别能力。可以根据混淆矩阵很直观地看到每个模型的预测准确率,颜色越深代表准确率越高,图6表示不同模型对乳腺识别数量结果混淆矩阵。
通过对比四个模型的Accuracy,由图7可知,ResNet50模型的准确率达到了0.9347,远高于另外三个模型。
为了进一步说明ResNet50模型在乳腺癌诊断的准确性,本文还应用了迁移学习方法。对于ResNet50模型是否使用迁移学习方法的实验结果如表4所示。
由表4中的结果所示,使用迁移学习,实验结果相对于未使用迁移学习准确率提高了4.9%。
结合表3、图6,ResNet50模型无论是精确率、召回率、F1分数或准确率都远高于另外三个模型,并且使用了迁移学习的ResNet50模型的准确率也高于未使用的,因此本系统选取ResNet50模型用于乳腺癌预测诊断。
(a) (b)
(c) (d)
Figure 6. Confusion matrix of breast recognition quantity results by different models: (a) ResNet50; (b) VGGNeT; (c) GoogleNet; (d) CNN-ViT
图6. 不同模型对乳腺识别数量结果混淆矩阵:(a) ResNet50;(b) VGGNeT;(c) GoogleNet;(d) CNN-ViT
Figure 7. Accuracy of each model
图7. 各模型的准确率
Table 4. Whether to use transfer learning results comparison
表4. 是否使用迁移学习结果对比
方法 |
Accuracy |
Precision |
Recall |
F1分数 |
使用迁移 |
0.9347 |
0.9135 |
0.9150 |
0.9156 |
不使用迁移 |
0.8910 |
0.8707 |
0.8724 |
0.8758 |
6. 总结
当前在我国女性人群中乳腺癌仍是癌症中比较常见的类型,对于偏远地区而言,由于经济水平、医疗资源、医生技术水平等多方向的因素,人们对于乳腺癌的认知仍有一定缺乏或不太重视。本文使用深度学习、Qt工具、C++等和微信小程序建立了一个乳腺癌多级诊断系统。在本文对比的四种模型中,发现ResNet50模型对乳腺癌的诊断准确率达到93.47%,再结合医生的临床经验,可以为患者生成一份比较可靠的诊断报告,并且患者可以及时地在微信小程序中看到自己每次的诊断报告,患者可以根据诊断报告来决定是否到上一级医院接受治疗。通过本系统可以为患者提供更加有效、快捷的治疗手段,本系统对于乳腺疾病的预防、治疗有着良好的前景。
NOTES
*通讯作者。