DDSM(Digital Database for Screening Mammography)是一个针对X射线摄影的数字图像数据库。它是由美国医学物理中心(BUMC)、美国马里兰大学 (UMD)和罗德岛州女性癌症控制计划(Rhode Island Women’s Cancer Control Program)合作创建的。数据集收集了多个医疗机构拍摄的X射线摄影图像,包含多种类型的异常结果,如结节、钙化等,并以DICOM格式存储。
该数据集主要用于计算机辅助诊断领域的自动检测任务,通常将其用于开发和评估深度学习模型的性能。DDSM数据集已成为诊断、图像处理、计算机视觉等领域重要的研究工具,被广泛应用于学术和工业界的相关研究。
但由于其储存格式为LJPEGL,我们无法直接对其进行训练,所以需要对其转换成可以直接查看的.jpeg,.png,.jpg等格式,由于这个转换过程时间比较长,在这里我准备好了转换后的jpeg格式的DDSM数据集方便大家来使用(https://download.csdn.net/download/qq_45952183/87902540)
文件夹中一共有四种类别无需回访的良性(也就是绝对的良性)、良性、恶性、正常。
每个具体的样例里都有四张照片,两种类型的左右方向的片子,MLO(内外斜位)、CC(头尾位)
本小节主要是完成训练所要使用的索引的创建,本小节使用python语言,在ubuntuOS下完成,算法会自动创建train.csv以及test.csv,比例为9:1,通过随机算法来分配训练集和测试集尽可能保证两边分布的一致性
import os
import csv
import random
def find_files(root_dir, extension):
file_list = []
for dirpath, dirnames, filenames in os.walk(root_dir):
for filename in filenames:
if filename.endswith(extension):
file_path = os.path.abspath(os.path.join(dirpath, filename))
category = os.path.basename(os.path.dirname(os.path.dirname(dirpath)))
file_list.append((file_path, category))
return file_list
def write_csv(file_list, csv_path):
with open(csv_path, 'w', newline='') as csv_file:
write = csv.writer(csv_file)
write.writerow(['file_path', 'category'])
for file_path, category in file_list:
write.writerow([file_path, category])
if __name__ == '__main__':
root_dir = './dataset/' #数据集所在位置
extension = '.jpeg'
csv_train_path = './train.csv' #训练集csv名称
csv_test_path = './test.csv' #测试集csv名称
file_list = find_files(root_dir, extension)
random.shuffle(file_list)
num_files = len(file_list)
num_train = int(0.9 * num_files)
num_test = num_files - num_train
train_files = file_list[:num_train]
val_files = file_list[num_train:num_train+num_val]
test_files = file_list[num_train+num_val:]
write_csv(train_files, csv_train_path)
write_csv(test_files, csv_test_path)
将路径修改好后,我们就可以得到训练集和测试集的索引了,这样就完成了乳腺癌分类的第一步,在接下来的篇章中会介绍如何训练出一个性能不错的网络。
以下是csv的样式
/Datasets/DDSM/cases/normals/normal_11/case1988/A_1988_1.RIGHT_MLO.jpeg,normals
/Datasets/DDSM/cases/normals/normal_04/case0437/A_0437_1.LEFT_CC.jpeg,normals
/Datasets/DDSM/cases/normals/normal_01/case0147/A_0147_1.RIGHT_MLO.jpeg,normals
/Datasets/DDSM/cases/benigns/benign_02/case1325/A_1325_1.LEFT_CC.jpeg,benigns
/Datasets/DDSM/cases/benigns/benign_13/case3433/B_3433_1.RIGHT_CC.jpeg,benigns
/Datasets/DDSM/cases/normals/normal_03/case0367/A_0367_1.RIGHT_CC.jpeg,normals
/Datasets/DDSM/cases/cancers/cancer_03/case1043/A_1043_1.LEFT_CC.jpeg,cancers
/Datasets/DDSM/cases/cancers/cancer_10/case1595/A_1595_1.RIGHT_CC.jpeg,cancers
/Datasets/DDSM/cases/normals/normal_06/case0600/A_0600_1.RIGHT_CC.jpeg,normals
/Datasets/DDSM/cases/normals/normal_06/case0569/A_0569_1.LEFT_CC.jpeg,normals