目录
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导:
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯基于深度学习的肺结节检测算法系统
设计思路
一、课题背景与意义
肺部CT图像的审阅是一个需要专业技能和极其耗费医师精力的工作,CT-CAD系统的出现就是为了使医师从如此耗神的工作中解放出来。但是由于肺结节种类多样,位置不定,形态各异等特点,使得研究自动肺结节检测系统成为一个具有挑战性的任务。现有已经对肺结节检测算法进行了深入的研究,但是随着算法的不断改进,各种算法的检测性能都可以继续提升。
二、算法理论原理
2.1 深度卷积神经网络
MobileNets是使用深度可分离卷积(DW)构建的轻量级DCNN。其中深度可分离卷积(DW)的作用等同于普通卷积,但是其通过对普通卷积后加入批标准化、ReLU激活函数后接一个点卷积、批标准化、ReLU激活函数构建,这种方式构建的网络具有显著减少参数和计算量的效果。MobileNetV1就是由这种加入了批标准化和ReLU函数的可分离卷积块堆叠而成。

为了加强网络的特征提取能力,构造了反向残差结构,标准残差结构是由输入连接输出,而反向残差结构与之相反,由输出端指向输入端,故取名为反向残差架构。

通过增加注意力机制与更改激活函数,构建MobileNetV3,再一次提高了检测精度。

GhostNet主要由Ghost模块构成,Ghost模块中的主卷积可以具有定制的内核大小。并且采用普通卷积,首先生成一些固有的特征映射,然后利用普通的线性运算来增强特征并增加通道,模块中的线性操作可以具有较大的多样性。此外,特征映射能与Ghost模块中的线性变换并行,以保留固有的特征映射。Ghost模块以其特殊的结构能够从廉价的操作中生成许多能够充分揭示内在特征背后信息的重影特征映射。并且Ghost模块可以作为即插即用组件来升级现有的卷积神经网络。鉴于其优良的性能,本文在改进YOLOV5的时候便使用了Ghost模块,其基本结构如图2.7所示。基于Ghost模块可以构建Ghost bottleneck结构,如图。

注意力机制是一种基础的思想和技术,独立于任何模型,即注意力机制可以用于任何模型。加入注意力机制的网络会对特征图进行深度的加工,聚焦于感兴趣的区域,抓取关键的特征。在目标检测领域,常用的注意力机制有按照其关注区域分为空间、通道和卷积块注意力机制等。

2.2 YOLOv5算法
肺部CT影像一般是一次成像几十上百张,所有CT影像构成患者的短时间内各个角度的动态CT结果,当CT扫描仪在患者肺部运动时,由于角度的不同,肺结节可能会被遮挡,从而造成误诊医疗事故。某患者的一次CT检测中产生133张CT图像,囿于篇幅限制,每隔10张取一张CT图像展示,并加上第一张和最后一张。图中能明显看出不同时间的CT图像角度不同,展示出的肺结节大小,亮度均不同。

如何在几十上百张图片中追踪肺结节就成了肺结节检测的重中之重。类比卷积注意力机制提出一种时空注意力机制来尽可能追踪肺结节。

参考Ghost bottleneck结构构建了改进Ghost bottleneck结构。其主要改进部分是再原始Ghost bottleneck中加入了前文提到的时空注意力机制。虽然增加了时空注意了机制后的Ghost bottleneck参数有所升高,但是,该时空注意力机制是为了贴合肺部CT影像动辄上百张,而且一个肺部整体可能存在多种多个肺结节而专门设计的注意力结构,该结构可以更加精确的提取特征信息。而且,纵使该注意力机制结构使整体计算量有所增加,其增加的计算量远比YOLOV5网络原来的CSPDarknet53计算量要少很多。

YOLOV5的主体结构为基础,将骨干网络部分更改为G-Bneck,使得网络更轻量化,并且在G-Bneck上引入时空注意力机制,减少冗余信息对识别效果的影响,使用SPP结构混合FPN融合PAN后的网络进行特征深度融合提取网络构建,详尽的提取目标特征,最终输出预测结果。算法构建任务完成。

三、检测的实现
3.1 数据集
选取公共数据集LIDC-IDRI数据集为本实验数据来源该数据集的诊断标注以XML格式提供,该格式正好适用于YOLO系列网络的所需要的标签文件数据格式,给本实验模型构建减轻许多数据转换的负担。准备好数据集,构建好网络后,就可以开始对网络进行训练,由于实验CPU进行训练会浪费大量的时间,所以本实验在矩池云上进行。矩池云可以提供云GPU服务。



3.2 实验环境搭建
本网络模型使用pytorch进行构建,训练及预测时的实验配置为NVIDIA GeForce RTX2080Ti显卡,显存11G,内存62G,硬盘100G,pytorch版本为1.5.0。
3.3 实验及结果分析
加入时空注意力机制的肺结节检测算法在进行肺结节检测与良恶性分类时能够很好的检测到肺结节,并进行成功的分类。同时说明加入了时空注意力机制的G-Bneck结构能够很好的胜任肺结节特征提取任务。

为了直观的展示本算法的检测结果,特意随机挑选出一张带有肺结节的图像进行展示。经过查询LIDC-IDRI的nodule counts.xlsx文件,确认该病例仅有一个大于3毫米的肺结节。其中nodule counts.xlsx文件为包含LIDC-IDRI数据集的所有CT图像中所含有的大于三毫米以及小于三毫米的肺结节个数信息的文件。

部分代码如下:
image_width, num_channels)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, kernel_size=(3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 加载数据集并进行预处理
train_data = load_train_data()
train_labels = load_train_labels()
test_data = load_test_data()
test_labels = load_test_labels()
# 训练模型
model.fit(train_data, train_labels, epochs=10, batch_size=32, validation_data=(test_data, test_labels))
# 使用模型进行预测
predictions = model.predict(test_data)
# 对预测结果进行后处理和可视化
visualize_predictions(predictions, test_labels)
创作不易,欢迎点赞、关注、收藏。
毕设帮助,疑难解答,欢迎打扰!
3237



被折叠的 条评论
为什么被折叠?



