基于深度学习的皮肤病辅助诊断系统(深度学习,皮肤病,卷积神经网络)
该系统利用了大规模的皮肤病图像数据集,其中包含了各种常见和罕见皮肤病的图像样本。通过采用卷积神经网络(CNN)等深度学习模型,系统能够学习和理解图像中的特征,并自动进行分类和诊断。在系统的训练阶段,使用了数据增强技术和迁移学习方法,以提高模型的泛化能力和准确性。为了评估系统的性能,进行了一系列实验和验证。结果表明,该系统在诊断常见皮肤病和少见病例方面表现出色,其诊断准确性和稳定性明显优于传统的诊断
摘 要
随着社会的进步和科技的发展,医疗领域也迎来了新的挑战和机遇。皮肤病在全球范围内广泛存在,皮肤病的诊断对于患者的治疗和管理至关重要。近年来,深度学习技术在图像识别和医学影像分析领域取得了显著的成就。传统的皮肤病诊断可能需要较长时间,而深度学习系统能够在短时间内对大量图像进行快速分析,实现高效的诊断过程。本文介绍了一种基于深度学习的皮肤病辅助诊断系统。
该系统利用了大规模的皮肤病图像数据集,其中包含了各种常见和罕见皮肤病的图像样本。通过采用卷积神经网络(CNN)等深度学习模型,系统能够学习和理解图像中的特征,并自动进行分类和诊断。在系统的训练阶段,使用了数据增强技术和迁移学习方法,以提高模型的泛化能力和准确性。为了评估系统的性能,进行了一系列实验和验证。结果表明,该系统在诊断常见皮肤病和少见病例方面表现出色,其诊断准确性和稳定性明显优于传统的诊断方法。此外,该系统还具有良好的实时性和可扩展性,可以在临床实践中为医生提供及时准确的诊断辅助。
综上所述,基于深度学习的皮肤病辅助诊断系统为医生提供了一种全新的诊断工具,有望在临床实践中广泛应用,提高皮肤病诊断的准确性和效率,为患者提供更好的服务。
关键词:深度学习,皮肤病,卷积神经网络
A Skin Disease Assistant Diagnosis System Based on Deep Learning
Abstract
With the advancement of society and technology, the medical field faces new challenges and opportunities. Skin diseases are prevalent globally, and accurate diagnosis is crucial for patient treatment and management. In recent years, deep learning technology has made significant strides in image recognition and medical image analysis. Traditional skin disease diagnosis may require considerable time, whereas deep learning systems can quickly analyze large volumes of images, facilitating efficient diagnosis. This paper introduces a deep learning-based skin disease auxiliary diagnosis system.
The system utilizes a large-scale dataset of skin disease images, including samples of various common and rare skin diseases. By employing convolutional neural networks (CNNs) and other deep learning models, the system can learn and understand features in images, automatically classifying and diagnosing them. During the training phase, data augmentation techniques and transfer learning methods were utilized to enhance the model's generalization ability and accuracy. A series of experiments and validations were conducted to assess the system's performance. The results demonstrate that the system excels in diagnosing both common skin diseases and rare cases, with significantly improved diagnostic accuracy and stability compared to traditional methods. Additionally, the system exhibits good real-time performance and scalability, providing timely and accurate diagnostic assistance to physicians in clinical practice.
In conclusion, the deep learning-based skin disease auxiliary diagnosis system provides physicians with a novel diagnostic tool, with the potential for wide application in clinical practice. It aims to enhance the accuracy and efficiency of skin disease diagnosis, thereby improving patient care.
Key words: Deep learning, dermatology, convolutional neural networks
摘 要............................................. I
Abstract.................................... II
第1章 绪 论............................. 1
1.1 论文研究主要内容............................. 1
1.2 国内外现状.......................................... 2
第2章 关键技术介绍.................. 3
2.1 MobileUnet语义分割....................... 3
2.2 MobileNetV2图像分类.................... 4
2.3模型评估和优化.................................. 5
2.4 ONNX................................................... 6
第3章 系统分析......................... 7
3.1 构架概述.............................................. 7
3.1.1 功能构架............................................ 7
3.1.2 图像分类模块.................................... 7
3.1.3 图像分割模块.................................... 7
3.1.4 模型性能评估模块............................ 8
3.1.5 单张预测模块.................................... 8
3.1.6 模型转换模块.................................... 8
3.1.7 界面搭建模块.................................... 8
3.2 系统开发环境...................................... 9
3.3 系统任务的可行性分析..................... 9
3.3.1 技术可行性........................................ 9
3.3.2 系统安全性分析................................ 9
第4章 系统设计........................ 10
4.1 图像分类模块设计........................... 10
4.2 图像分割模块设计............................ 11
4.3 模型性能评估模块设计................... 12
4.4 单张预测模块设计........................... 12
4.5 模型转换模块设计........................... 13
4.6 界面搭建模块设计........................... 14
第5章 系统实现........................ 15
5.1 开发环境配置.................................... 15
5.2 图像分类模型训练实现................... 15
5.3 图像分割模型训练实现................... 17
5.4 模型性能评估实现........................... 18
5.5 单张预测实现.................................... 19
5.6 模型转换实现.................................... 20
5.7 界面搭建实现.................................... 21
第6章 系统测试........................ 22
6.1 图像分类模块测试........................... 22
6.2 图像分割模块测试........................... 22
6.3 模型转换模块测试........................... 23
6.4 界面搭建模块测试........................... 24
6.5 图像处理模块测试........................... 25
6.6 系统总测试........................................ 27
第7章 结 论............................ 30
参考文献....................................... 31
致 谢........................................... 32
第1章 绪 论
皮肤病在医学领域占有重要地位,其种类繁多,临床诊断常常依赖于医生的经验和专业知识。由于皮肤病的多样性和复杂性,传统的诊断方法存在一定的局限性,容易受到医生主观判断和个体差异的影响,导致诊断的不确定性和主观性。随着深度学习技术的迅速发展,特别是卷积神经网络(CNN)等深度学习模型在图像识别领域的成功应用,让我们有机会通过引入深度学习技术,提高皮肤病诊断的准确性和效率[1]。
1.1 论文研究主要内容
随着社会的进步和科技的发展,医疗领域也迎来了新的挑战和机遇。皮肤病在全球范围内广泛存在,而传统的皮肤病诊断通常依赖于医生的临床经验和专业知识[2]。皮肤病是一种常见的健康问题,其种类繁多,包括但不限于湿疹、荨麻疹、银屑病、皮肤癌等。准确、迅速的诊断对于治疗和患者健康至关重要。传统上,皮肤病的诊断通常依赖于专业皮肤科医生的经验和临床检查。然而,这种方法存在一些限制,例如专业医生的可用性不足,特别是在一些偏远地区或资源匮乏的地方。因此存在着对高效、准确的皮肤病辅助诊断系统的迫切需求。
近些年来,深度学习这项技术分别在图像识别和医学图像分析方面取得了显著进展,为医学图像的自动分析提供了新的可能性。基于深度学习的皮肤病辅助诊断系统将为医生和患者提供更可靠的诊断工具,缩短患者等待时间,提高医疗效率。深度学习系统能够学习和识别皮肤病图像中微小的特征和模式,从而提高诊断的准确性,甚至在某些情况下超过人类专业医生的水平[3]。传统的皮肤病诊断可能需要较长时间,而深度学习系统能够在短时间内对大量图像进行快速分析,实现高效的诊断过程,特别是在急诊情况下具有重要意义[4]。
通过引入深度学习技术,提高皮肤病的诊断水平,有助于医学领域的科技进步。自动化的皮肤病诊断系统能够为患者提供更迅速、精准的诊断结果,改善患者的就医体验。通过大规模的数据分析,可以挖掘出新的病例和治疗方法,为未来的医学研究提供有益信息。
在医疗资源有限的情况下,自动化的皮肤病诊断系统可以部分弥补医疗资源不足的问题,提高医疗服务的效率。加速和提高诊断的准确性将有助于提高患者的满意度,同时在早期发现皮肤病病变,有助于更及时地进行治疗,提高治疗成功率。
1.2 国内外现状
基于深度学习的皮肤病辅助诊断系统在国内外都得到了广泛的关注和研究。在国外,研究者们致力于构建大规模的皮肤病图像数据库,其中类似于Dermatology ImageNet的项目为深度学习模型的训练提供了更丰富的数据资源。这些数据库包含各种类型的皮肤病图像,涵盖了从常见病例到罕见病例的广泛范围,为模型的泛化能力和准确性提供了坚实的基础[5]。
在深度学习模型方面,卷积神经网络是最常用的架构之一。研究者们通过设计更深、更复杂的CNN结构,如Inception、ResNet等,不断提高了皮肤病图像识别和分类的准确性。同时,迁移学习也被广泛应用于皮肤病诊断领域,可以有效地迁移学习到皮肤病图像分类任务中,加速模型的训练过程并提高准确性[6]。
一些研究者还尝试将多模态信息融合到皮肤病诊断中,包括可见光图像、红外图像等不同传感器采集的数据。通过综合利用这些不同来源的信息,可以提高对皮肤病的检测和诊断性能,增强系统的鲁棒性和准确性。
在国内,一些大型医学影像研究中心与医院合作,积极开展基于深度学习的皮肤病诊断研究。通过利用国内医院积累的丰富临床数据,结合深度学习技术,他们试图提高对各种皮肤病的诊断准确性和效率。相关研究成果也经常在国内外的医学期刊和学术会议上发表,为该领域的发展做出了贡献。
国内也涌现了一些专注于基于深度学习的皮肤病诊断系统研发的创业公司。这些公司致力于将最新的深度学习技术应用于医疗实践中,将科研成果转化为实际的医疗产品和服务,为医生提供更准确、更高效的皮肤病诊断工具[7]。
第2章 关键技术介绍
2.1 MobileUnet语义分割
MobileUNet 是一种轻量级的语义分割网络,是基于UNet结构进行改进和优化而来的。UNet是一种经典的全卷积网络结构,用于解决图像分割任务,它具有编码器(Encoder)和解码器(Decoder)之间的对称结构,能够捕获不同尺度的特征并保留高分辨率的信息。MobileUNet通过一系列设计和改进,使得UNet网络适用于移动设备和嵌入式系统上的语义分割任务,具有轻量化和高效性的特点[8]。
轻量化设计:MobileUNet 主要针对移动设备和嵌入式系统的资源限制进行了优化,以确保在保持高效性的同时降低了模型的复杂性和参数量。这使得它可以在资源有限的设备上实现实时的语义分割。
UNet结构:MobileUNet是一种基于UNet结构的轻量级变体,专为移动端和嵌入式设备设计。与传统UNet相比,MobileUNet采用了一些优化措施,以在资源受限的环境下实现更高的效率和性能。引入通道注意力机制帮助模型更有效地学习重要的特征通道,提升了模型的性能和泛化能力。采用模型压缩技术如剪枝、量化等来减少模型的参数量,提高推理速度和模型的部署效率。UNet网络结构图如下图2.1所示:

图2.1 UNet网络结构图
深度可分离卷积:是一种卷积神经网络中的特殊卷积操作,由深度卷积和逐点卷积组成。深度可分离卷积将输入的每个通道单独进行空间卷积操作(深度卷积),然后再进行逐点卷积,将各通道的特征图进行线性组合,在保持模型性能的同时,显著减少了参数数量和计算成本,因此在轻量级模型设计和资源受限环境下具有重要意义下面是深度可分离卷积的计算公式:
深度卷积的计算方式为2-1所示:
Yⅆ=depthwiseconvX,Kd=c=1Cinx:,:,c*KⅆC
(2-1)
其中,X
是输入特征图,Kd
是深度卷积核,Yⅆ
是深度卷积的输出特征图,*
表示逐点相乘(element-wise multiplication),x:,:,c*KⅆC
表示输入特征图的第c
个通道,KⅆC
表示深度卷积核的第c
个通道。
逐点卷积的计算方式为2-2所示:
YP=pointwiseconvYd,KP=C=1CoutYd*KPc
(2-2)
其中,Yd
是深度卷积的输出特征图,KP
是逐点卷积核,YP
是逐点卷积的输出特征图,KPc
表示逐点卷积核的第c
个通道。
跨尺度信息融合:为了提高分割结果的准确性,MobileUNet通过跳跃连接实现了跨尺度的信息融合[9]。这意味着解码器层可以从编码器层中获取不同尺度的特征,从而更好地理解图像的语义信息。
深度可调性:MobileUNet具有一定程度的深度可调性,即可以通过增加或减少层数来平衡性能和模型大小。这使得它可以根据不同应用场景进行灵活调整。
训练和部署:MobileUNet可以使用常规的语义分割数据集进行监督式训练,并且由于其轻量化的特性,适合在移动设备上进行实时的语义分割任务。训练后,可以将模型部署到移动应用程序或嵌入式系统中进行推断。
2.2 MobileNetV2图像分类
MobileNetV2 是专门设计用于移动设备和嵌入式系统上的图像分类任务。MobileNetV2在MobileNet的基础上进行了改进和优化,具有更高的性能和更低的计算成本。MobileNetV2 在保持高准确性的同时,注重模型的轻量化,以满足资源有限的设备的需求。
轻量化设计:MobileNetV2采用了轻量级设计原则,包括深度可分离卷积、宽度乘数和分辨率乘数等,以实现在资源受限的移动设备上高效运行。
深度可分离卷积:MobileNetV2采用了深度可分离卷积法来取代了以往的标准折积,以减少计算成本。深度可分卷积法包括了深度卷积和逐点卷积二种方法,分别用来学习空间特性和通道特征。
线性瓶颈:MobileNetV2中采用线性瓶颈结构,即在输入通道数较少的情况下使用1x1卷积扩展通道数,然后再使用3x3深度可分离卷积进行特征提取。这样可以在保持模型有效性的同时减少计算成本。[10]。
宽度多尺度(Width Multiplier):MobileNetV2 提供了一个宽度多尺度超参数,允许用户通过调整该参数来控制模型的宽度。这使得 MobileNetV2 可以根据应用场景进行灵活配置,从而在不同设备和任务上达到平衡。
MobileNetV2通常使用交叉熵损失函数作为模型的损失函数,用于衡量模型输出的概率分布与真实标签的差异[11]。交叉熵损失函数的计算公式为2-3所示:
CEp,q=-ipilog(qi)
(2-3)
其中,p
是真实标签的分布,q
是模型预测的分布。这个损失函数可以用来指导模型学习更准确的分类结果。
2.3模型评估和优化
模型评估和优化是基于深度学习的皮肤病辅助诊断系统中至关重要的一环。将拥有标签的皮肤图像数据集划分为训练集、验证集和测试集,选择合适的深度学习模型作为基础架构,使用训练集对所选模型进行训练。
在训练过程中,采用合适的损失函数(如交叉熵损失函数)、优化器(如Adam、SGD)和学习率调度器(如学习率衰减)进行模型优化。使用验证集评估模型在未见过的数据上的性能表现,通过计算准确率、精确率、召回率、F1值等指标来评估模型的性能,并根据验证集的表现调整模型的超参数。
准确率的公式如2-4所示:
ACC=TP+TNTP+FP+FN+TN
(2-4)
精确率的公式如2-5所示:
precision=TPTP+FP
(2-5)
召回率的公式如2-6所示:
recall=TPTP+FN
(2-6)
F1值的公式如2-7所示:
F1=2*precision*recallprecision+recall
(2-7)
其中:
TP(True Positives)表示真正例数,即模型正确预测为正例的样本数量。
TN(True Negatives)表示真负例数,即模型正确预测为负例的样本数量。
FP(False Positives)表示假正例数,即模型错误预测为正例的样本数量。
FN(False Negatives)表示假负例数,即模型错误预测为负例的样本数量。
根据模型在验证集上的表现进行调优,可以通过调整模型结构(如添加或删除层)、改变损失函数、优化器参数调整等方法来提高模型性能。
在测试集上对经过调优的模型进行评估,通过与专家或其他辅助诊断工具进行比较,评估模型的准确性、灵敏性和特异性等指标,对模型进行解释性分析,以便医生理解模型的决策过程。
2.4 ONNX
ONNX(Open Neural Network Exchange)是一个开放的深度学习模型交换格式,旨在使深度学习模型的互操作性更加简单、更加无缝。它是由微软和Facebook等公司共同开发和维护的。ONNX作为一个中间表示格式,为深度学习模型的跨框架互操作性提供了标准化的解决方案,推动了机器学习模型的开发、部署和优化。
高性能:ONNX的设计旨在实现高性能的模型推理。通过优化和转换,ONNX能够提供快速且高效的模型推理,使得在生产环境中部署深度学习模型更加容易[12]。
跨平台部署:由于ONNX是一个开放的标准,因此它可以在各种硬件和软件平台上进行部署,包括移动设备、嵌入式系统、云服务等。这使得开发者能够更灵活地选择适合其需求的部署环境。
丰富的生态系统:ONNX拥有一个丰富的生态系统,包括各种工具和库,用于模型转换、优化、部署等各个环节[13]。
第3章 系统分析
本系统是基于深度学习的皮肤病辅助诊断系统,需要明确系统的需求和目标。包括确定系统的功能,识别皮肤病变类型、提供诊断建议等,以及确定用户群体和环境,医生、患者和移动端应用等。收集多种皮肤病的图像,用于模型训练和评估。创建一个应用程序,用户通过注册功能,创建属于自己的账号,支持拍照功能和图片选取功能,将用户拍摄的或选取皮肤图像传入模型进行推断,在应用中展示推断结果,并保存诊断信息,用户可随时查看。
3.1 构架概述
3.1.1 功能构架
本系统的系统体系框架包含:图像分类模块、图像分割模块、模型性能评估模块、单张预测模块、模型转换模块、界面搭建模块,如图3.1所示。
|
基于深度学习的皮肤病辅助诊断系统 |
|
图像分类模块 |
|
图像分割模块 |
|
模型性能评估模块 |
|
单张预测模块 |
|
模型转换模块 |
|
界面搭建模块 |
图3.1 系统体系结构
3.1.2 图像分类模块
该系统的图像分类模块采用卷积神经网络结构,经过大规模皮肤病图像数据的训练,以学习特定病变的视觉特征。为了增强模型的泛化性能,采用了数据增强技术和迁移学习方法。在训练过程中,根据任务需求选择了适当的损失函数和评估指标,以进行模型优化和性能评估。此外,为了增强系统的可解释性,采用可解释的深度学习技术,使模型的决策过程更易理解。整体而言,该系统通过深度学习图像分类模块,实现对皮肤病进行准确诊断和辅助医生决策的功能。
3.1.3 图像分割模块
图像分割模块旨在对皮肤图像进行像素级别的分割,以准确提取出皮肤病变区域。通常采用语义分割模型,如U-Net、SegNet等,这些模型能够有效地捕获图像中的局部信息和语义特征。在训练过程中,使用大量的带有标注的皮肤图像数据集,以便模型学习到皮肤病变的形态和结构。利用数据增强技术,可以生成具有不同照明、角度和尺度的皮肤图像样本,从而增加了训练数据的多样性,可以减少模型在训练过程中对训练数据的过度拟合。增加训练数据的多样性,数据增强技术有助于改善模型的性能,使其在皮肤图像分割任务上表现更好。
3.1.4 模型性能评估模块
此模块主要是对已训练好的模型进行性能评估,关注于客观评估系统的准确性和可靠性。使用验证集或交叉验证来评估模型在未见过的数据上的性能,对于不均衡数据集,可采用加权损失函数和类别平衡的评估指标。此外,通过生成混淆矩阵、ROC曲线等可视化工具,直观呈现模型在各个类别上的表现,提供医生和用户对系统性能的全面理解。模型性能评估模块的良好实现有助于优化模型、提高准确性,并为系统的临床应用提供可信度。
3.1.5 单张预测模块
此模块是为后续将模型部署到系统中,对皮肤病图片进行预测分割功能的一个测试,旨在对单个皮肤图像进行快速准确的预测。该模块使用已经训练好的深度学习模型,以对皮肤图片进行分类或分割。输入是一张待预测的皮肤图像,经过预处理后传递给模型,输出包括病变类别、定位信息等。在实现过程中,可以采用高效的推理技术和轻量级网络结构,以确保实时性和低计算成本。该模块的目标是在医生对单张图像进行快速诊断时提供可靠的预测结果,从而支持临床决策。
3.1.6 模型转换模块
模型转换模块旨在将训练好的深度学习模型转换为在不同硬件平台或部署环境上可用的格式,以实现模型的部署和应用。这个模块通常涉及将模型参数和结构进行序列化和优化,以减小模型的尺寸和提高推理效率。常见的转换技术包括量化、剪枝、模型压缩等,以减少模型的计算和内存需求。此外,根据部署环境的需求,可能需要将模型转换为ONNX或其他支持的格式。该模块的实现旨在确保模型在实际应用中能够高效地运行,并在资源受限的设备上实现快速的推理速度,以支持实时的皮肤病辅助诊断。
3.1.7 界面搭建模块
界面搭建模块旨在设计和实现用户友好的图形用户界面(GUI),以便医生或用户可以方便地与系统交互。这个模块通常包括选择皮肤图像进行预测的功能、显示预测结果的界面、提供用户输入的选项(如上传图像、选择预测模型等)、以及交互式元素(如放大、缩小、标记病变区域等)、以及对诊断结果的解释和建议。
3.2 系统开发环境
硬件环境:AMD Ryzen 7 4800H with Radeon Graphics 2.90 GHz
软件环境:Windows 10、PyCharm2022、Python3.8
3.3 系统任务的可行性分析
3.3.1 技术可行性
该系统建立在Windows系统的基础架构之上,运行在Windows操作系统环境下,使用PyCharm2022作为集成开发环境,采用Python作为主要开发语言。系统具有、图像分类模块、图像分割模块、模型性能评估模块、单张预测模块、模型转换模块、界面搭建模块
3.3.2 系统安全性分析
(1)系统确保患者的隐私数据得到妥善保护,包括对病例数据、医疗图像等敏感信息的加密和安全存储。建立严格的用户访问控制机制,确保只有经过授权的医生或医疗工作者才能访问患者的诊断结果和相关信息。
(2)在系统中涉及到数据的传输,如上传医疗图像、诊断结果等,需要采用加密传输技术,确保数据在传输过程中不被窃取或篡改。
(3)系统定期进行安全审查和漏洞扫描,及时发现和修补潜在的安全问题。同时,及时更新系统和依赖库,以获取最新的安全补丁和更新。
第4章 系统设计
4.1 图像分类模块设计
图像分类系统所采用的数据集中为ISIC2019皮肤癌分类数据集中,并可以通过PyTorch进行图片分组,通过使用argparse库来定义和处理命令行参数,定制训练过程的各个方面。为了确保实验的可重复性,模块设置了随机种子。数据集准备环节涉及到使用自定义的数据集构建器来预处理和准备数据。通过采样器和数据加载器的设置,模块为分布式训练做好准备,并能够高效地批量加载数据。在训练设置环节,模块初始化了优化器、损失函数和学习率调度器等关键组件,并提供了梯度累积和逐层学习率衰减等高级功能。训练和评估循环是脚本的核心部分,负责根据指定的轮次训练模型,并在每轮结束后评估其性能,同时保存模型检查点和基于验证准确率的最佳模型。
模块还包括日志记录和指标评估功能,可选地使用TensorBoard进行结果可视化。整个模块通过命令行参数提供高度的可配置性,支持在不同数据集、模型架构和训练策略上进行实验。流程图如图4.1所示:
|
初始化和参数解析 |
|
数据集准备 |
|
模型初始化 |
|
数据增强 |
|
训练设置 |
|
开始 |
|
结束 |
|
训练和评估循环 |
|
日志记录和指标评估 |
图4.1 图像分类模块流程图
4.2 图像分割模块设计
图像分割模块所采用的数据集中为ISIC2017皮肤癌分类数据集中,并通过PyTorch实现了图像分离,模块使用argparse库解析命令行输入的参数,设置丢弃路径比率、层衰减策略等与模型结构相关的参数,配置EMA模型参数,是否在训练时使用EMA进行评估,配置优化器等数据处理相关的参数。
初始化分布式计算环境,根据用户输入(CPU/GPU)设置PyTorch计算的设备用指定的参数初始化模型(MobileUnet),设置EMA模型以实现更平滑的训练,为分布式训练做准备,使用DistributedSampler以在多个计算节点间高效加载和处理数据,为训练和验证数据集配置数据加载器。
针对模型参数进行区分,以便自定义学习率,并为模型的各个部分设置不同的学习率。在优化器方面,采用AdamW,并初始化损失函数为交叉熵损失函数,适用于分割任务。在验证集上评估模型,计算像素准确度和平均交并比(MIoU)等指标,根据性能指标更新并保存模型,实现了日志记录、模型保存/加载和调整学习率的各种实用功能。流程图如图4.2所示:
|
初始化分布式计算环境 |
|
数据集准备 |
|
初始化模型 |
|
分布式训练准备 |
|
开始 |
|
结束 |
|
学习率自定义 |
|
优化器和损失函数初始化 |
|
训练和评估循环 |
图4.2 图像分割模块流程图
4.3 模型性能评估模块设计
此模块是用于评估图像分类和图像分割模型性能的模块。它通过命令行参数允许自定义训练配置,支持处理分类(cls)和分割(seg)两种任务。模块使用argparse库解析命令行输入的参数,包括输入图像大小、数据集路径等。
第5章 系统实现
5.1 开发环境配置
PyCharm Community Edition 2022.2.2
本系统使用PyCharm Community Edition 2022.2.2为开发环境,以Python为开发语言在PyCharm Community Edition Installer下载安装即可
硬件环境:AMD Ryzen 7 4800H with Radeon Graphics 2.90 GHz
软件环境:Windows10,Python3.8
Pytorch安装:在PyTorch官网(https://pytorch.org/)找到适合你需求的安装代码,并粘贴到命令行中。按提示输入 y 完成安装,显示“done”。如图5.1所示:

图5.1 寻找安装命令代码
5.2 图像分类模型训练实现
图像分类模块的功能是用于实现本系统中,不同种皮肤病的图像分类任务,通过训练深度学习模型,设置数据集、模型结构、优化器、损失函数等参数,以及整合分布式模式和多GPU支持等功能,完成了模型的训练过程,将训练的最优模型保存用于后期的模型转换,并部署到应用中。实现过程如下:
首先,必要的Python模块被导入,包括argparse、os、time等。使用argparse.ArgumentParser创建了一个解析器,用于解析命令行参数,这些参数将决定模型的训练配置。随后,定义main函数,main函数是整个脚本的核心,负责模型训练的主要逻辑,通过misc.init_distributed_mode(args)初始化分布式模式,这是为了在多GPU或多节点上进行训练,然后打印参数并设置设备。接着,设置随机种子以确保结果的可重复性,构建训练和验证数据集,并根据参数设置是否禁用验证集,设置布式数据采样器,以及日志记录器,构建数据加载器用于加载训练和验证数据。
如果启用了模型指数移动平均(EMA),则创建一个ModelEma对象,并将模型加载到指定设备上,打印模型的结构和可训练参数数量。创建优化器,并根据参数设置是否应用层级学习率衰减,根据是否启用混合样本增强,设置相应的损失函数。
进入训练循环,读取预设的训练周期,调用train函数对模型进行训练。如果开启了验证模式,进行模型评估,并记录最佳准确率,如果开启了EMA评估模式,同样进行模型评估,并记录最佳EMA准确率。
记录训练和验证指标,将其写入日志文件,并记录整个训练过程的时间,并打印出来。图像分割模型训练的过程如下图5.2所示:

图5.2 图像分类模型训练过程
训练过程中各个参数的含义如表5.1所示:
表5.1 训练参数意义
|
参数 |
意义 |
|
Epoch |
整个训练数据集的一次完整遍历 |
|
[ 0/156] |
当前epoch中的批次进度 |
|
eta |
预估剩余的训练时间 |
|
lr |
当前的学习率 |
|
loss |
当前批次的损失值 |
|
min_lr weight_decay time data max mem |
最小学习率 权重衰减 当前批次的训练时间 当前批次数据加载所花费的时间 显示当前进程所使用的最大内存量 |










更多推荐

所有评论(0)