# 3D-分割 ## Requirements - `os` - `json` - `numpy == 1.22.4` - `torch == 1.13.0` - `logging` - `argparse` ## Overview CT肺结节分割模型的主要功能是从CT肺部影像中分割出存在的肺结节。 1. 功能架构 1. 数据导入子模块:负责对CT肺部影像及标签数据进行处理以符合后续模型使用的需求。 2. 数据预处理子模块:负责对影像数据进行预处理,提高模型的分割性能。 3. 肺结节分割子模块:负责对肺结节区域进行分割处理。 4. 结果输出子模块:负责将模型的输出结果按规定格式进行输出。 2. 算法实现 1. 数据导入子模块:采用标准DICOM读取协议读取CT肺部影像数据,影像数据、mask信息都被保存为npy格式数据。 2. 数据预处理子模块:主要使用pytorch工具,按需求对CT肺部影像数据进行预处理,包括随机调换影像的维度、随机旋转、随机翻转和随机添加噪声等操作。 3. 肺结节分割子模块:为了更好得对CT肺部影像中的肺结节区域进行分割,使用了集成了空洞卷积、ASPP模块和跳跃连接操作的3D-UNet模型。3D-UNet是一种常用的分割模型,其中编码器用于逐步减小特征图的尺寸和提取高级别的抽象特征,解码器通过对编码器的输出特征图进行上采样或者反卷积操作,逐步恢复特征图的尺寸。3D-UNet的最后一层通常是一个1x1的卷积,用于生成分割结果。这一层输出的特征图与输入图像的分辨率相同,并且每一个像素点对应图像中的一个区域,其数值表示该像素点是否属于肺结节区域。空洞卷积通过在卷积核中引入膨胀率,扩大了每个卷积核的感受野,使得模型可以获得更多的上下文信息,从未提高分割模型对于整体语意的理解能力。相比于普通卷积操作,空洞卷积可以在扩大感受野的同时,做到减少参数数量和保持图像的分辨率。ASPP模块是分割任务中的一种特殊卷积网络结构,其作用在于提高网络模型对不同尺度信息的感知能力,从而改善分割模型的性能。ASPP模块通过使用不同膨胀率的空洞卷积,可以捕捉不同尺度下的特征信息。这样,模型可以同时考虑局部细节和全局上下文信息,有助于更准确地对肺结节进行分割。在3D-UNet模型中,跳跃连接操作允许低级别的特征图与高级别的特征图直接相连,使得网络可以在不同层次的特征表示之间传递信息,这有助于保留更多的细节信息和上下文信息。 4. 结果输出子模块:在训练过程中,最好的模型参数会被保存下来,并且会记录每一个训练迭代中的模型输出信息,包括epoch、学习率、训练损失和预测准确率等。