1绪论 1
1.1 课题背景与意义 1
1.2对象存储技术的研究现状 2
1.3 图像检索研究现状 4
1.3.1 特征提取 4
1.3.2检索 5
1.4 研究内容 8
1.5 本文结构 8
1.6 本章小结 10
2相关技术 11
2.1 对象存储 11
2.1.1概述 11
2.1.2对象存储的组成 11
2.1.3对象存储的优势 13
2.1.4 冗余恢复技术 13
2.1.5 经典的分布式存储系统 15
2.2 图像检索 16
2.2.1 图像检索框架 16
2.2.2 相似性度量 17
2.3 深度学习理论基础 18
2.4 度量学习 20
2.5 哈希算法 22
2.5.1 局部敏感哈希 22
2.5.2卷积神经网络哈希 22
2.6 本章小结 25
3基于对象存储技术的海量医学影像存储研究 26
3.1 应用场景与需求分析 26
3.2 系统结构 27
3.2.1 物理结构 27
3.2.2 逻辑结构 27
3.2.3 系统结构设计 28
3.2.4 负载均衡管理 30
3.2.5 对象存储管理 30
3.3 系统核心功能设计 31
3.3.1 文件查看 31
3.3.2 文件上传 32
3.3.3 文件下载 32
3.4 实验 33
3.4.1 开发环境 33
3.4.2 实验结果 35
3.5 本章小结 37
4基于深度哈希的医学影像检索算法研究 38
4.1引言 38
4.2 深度哈希的图像检索方法 38
4.2.1 深度哈希的医学影像检索 38
4.2.2空间注意力模块 39
4.2.3 特征融合 41
4.2.4 损失函数 42
4.3实验与分析 44
4.3.1数据集 44
4.3.2 实验环境 44
4.3.3 评价指标 45
4.3.4 实验结果 46
4.4 本章小结 48
5医学影像检索系统的设计与实现 49
5.1引言 49
5.2系统需求分析 49
5.2.1 系统目的 49
5.2.2 功能需求分析 49
5.2.3 系统模块划分 50
5.2.4 数据库设计 50
5.2.5 图像检索模块 51
5.3 系统实现 52
5.4 开发环境与结果展示 53
5.4.1 开发环境 53
5.4.2 结果展示 54
5.5 本章小结 54
6 总结与展望 55
6.1总结 55
6.2展望 56
参考文献 58
图目录
图 1-1 本文结构图 10
图 2-1 编码解码过程 14
图 2-2 医学图像检索流程图 16
图 2-3 卷积神经网络结构图 19
图 2-4 激活函数图 20
图 3-1MOSS 系统的物理结构图 28
图 3-2 系统的逻辑结构图 29
图 3-3 系统结构图 30
图 3-4 查看文件流程图 32
图 3-5 文件上传流程图 33
图 3-6 文件下载流程图 34
图 3-7 结点集群 36
图 3-8 图像上传 36
图 3-9 上传结果图 36
图 3-10 文件下载 37
图 3-11 文件下载结果 37
图 3-12 查看文件列表 37
图 4-1 医学图像检索框架 40
图 4-2 通道注意力模块 41
图 4-3 特征融合 42
图 4-4 残差块结构 42
图4-5 ImageCIEF (med)数据集中的示例图像 45
图4-6检索结果图 48
图 4-7 准确率和召回率 49
图5-2图像检索过程 54
图5-3图像检索流程图 55
图 5-4 医学影像检索页面 56
V
图 5-5 检索结果 56
表目录
表 3-1 对象操作 32
表 4-1 实验训练环境表 46
表4-2有无哈希层在ImageCLEF(Med)数据集下的准确率MAP(%)值 48
表4-3不同方法不同编码长度MAP (%)值 48
表 5-2 用户数据表 53
VI
1 绪论
1.1课题背景与意义
随着科学技术的发展,CT、MIR、PET-CT等医学影像越来越多地应用于临床工作 和医学诊断中,医生可以通过医学影像看到影像的病变区域,医学影像的数字化,提高 了诊断效率,也提高了诊断的正确性和准确性。医学图像的数字化发展,在医疗机构, 每天产生的医学影像已经高达数百万,意味着对存储的需求越来越大[1],海量的医学影 像给医疗行业带来了巨大的压力。因此,如何对医学影像高效存储和检索,辅助医生诊 断和分析病人的病情,是一个值得研究的课题。
在数据存储方面,随着医疗机构数字化的建设,产生了大量的医学数据[2],其中非 结构化数据占到数据的大部分,如图像,音频、视频等各种数据。医生依据这些数据对 病人病情做出诊断,所以保存好这些海量非结构化数据是至关重要的。如何有效地让多 个用户对图像的同时访问,是目前海量图像存储系统面临的重要课题。图像、音频、视 频等数据与文本不同,文本结构比较简单,图片的结构相对比较复杂,一般认为在图片 传输时以字节流传输,而传输文本则是字符流。文本可以用二维数据表结构来表示,文 本信息直接保存在关系型数据库,而图像很难用数据对其表达,也就不能将其存储到传 统的关系型数据库中,因此,不能用关系型数据库来存储图像,图像被视为是非结构化 数据[3],采用非结构化方式存储。在读取数据时需要用到元数据,元数据是客户端与磁 盘交互的中间环节,数据越多,用户与磁盘信息传输的次数也就越多。传统的存储结构 存储数据,不利于数据维护,数据共享、资源消耗高。因此寻找一个方便管理,数据共 享,资源占用率低的存储技术是非常有必要的。
在图像检索方面,最开始出现的图像检索是基于文本的图像检索[11],用文本描述图 像,需要人工对图像标记,形成图像对应的唯一关键词,这样就有了图像标识。检索时 用户输入关键词,与所有图像的关键词进行匹配,根据匹配结果,得到检索结果。这个 方法需要对图像大量进行标记。所以,很难应用于大规模数据集上。基于内容的图像检 1
索,首先提取图像的视觉特征[12],然后比较图像特征相似性,根据相似性大小顺序,得 出检索结果。这种方法的图像特征通常依据图像本身学习获得,不需要图像文本标注, 大大提高了检索效率,降低了人力成本。因此,本文在这一方法的基础上进行研究与设 计。
图像检索通常从图像的特征出发,在数据库中检索出相似的图像,利用纹理、形状、 颜色等底层特征来进行图像检索[8],底层特征和高层语义存在着语义鸿沟问题,而且图 像特征是高维数据,存储和计算量很大,会带来维度灾难等问题。
近年来,随着深度学习的发展,由于深度学习强大的特征提取能力,受到了很大的 关注,哈希方法将数据从高维度空间映射到低纬度空间,降低了数据的维度,所以产生 了深度哈希方法,融合了哈希方法和深度学习,同时学习图像的特征和哈希编码,对图 像提取出图像丰富的特征信息,并且获得更加紧凑的二进制哈希码。
1.2对象存储技术的研究现状
传统的存储主要包括 NAS(Network Attached Storage)和 SAN(Storage Area Network) 这两种存储方法。在使用过程中, NAS 对带宽的消耗比较高,这是因为 NAS 是通过 网络来与人进行事物交互的,在实际应用中,它会消耗更多的网络带宽,这使得 LAN 一方面要对基本业务的传输工作进行处理[6],与此同时,它还需要执行与存储磁盘请求 有关的操作;NAS会出现单点故障[刃,使得NAS不能对外界进行正常的数据访问。SAN 是指利用一个专门的存储网络,将与存储有关的设备和交换机等连接在一起,并在一个 以块为基础的存储接口上,向外界提供存储服务的过程。SAN中的数据被分散在多个磁 盘阵列中[10],这使得系统的延展性得到了极大地提升,即使单个存储设备或者交换机发 生了问题,整个系统也能够正常工作;因为 SAN 中的设备是用光纤信道来通讯的,所 以服务器间可以对存储空间中的全部数据信息进行存取,并且 SAN 中的网络不与局域 网有关的业务相连接,所以对存储数据的带宽需求很小。
NAS 基于文件存储, SAN 基于的块存储,文件接口提供安全性和跨平台可操作性, 块接口实现快速访问,高性能有其优势[10]。当前,传统的存储方法已无法适应日益增加
2
的数据量,以及随时随地方便地获取数据的要求。正是因为这个问题,很多企业开始采 用对象存储技术来解决这个问题。
随着存储技术的发展和数据的多样性,传统的集中化存储在系统性能、网络带宽消 耗、价格和横向扩展能力上均受到了限制。为了有效地存储大量和种类繁多的数据,分 布式存储模式应运而生。
分布式存储一般都是由多个物理主机或服务器协作来完成存储工作,并向外界提供 服务。这样可以在提升系统的存储效率的同时,还可以确保数据的可靠性,方便扩展。 分布式文件系统储存使用平行的文件系统,以集合多个储存节点[12]。采用一个名称空间, 一个存储池,可以对多个主机进行高带宽的数据进行并行访问。接着,按照特定的规则, 在群集的各个节点上分配数据[6],以便提供以线性形式扩大能力和产量的可用性。而对 象存储技术具有可扩展性好、元数据丰富等优点,特别适用于大数据分析、医疗健康等 分布式应用领域。
大约在 2000 年,伴随着互联网行业的快速发展,出现了对象存储技术[7],该技术 得到了的各个行业的认可。对象存储将数据看作对象,它是一种可以处理海量非结构化 数据的数据存储体系,被广泛应用于多种系统。对于部署在共有云上的服务,一般是由 公有云所提供的对象存储服务架构构成[8],并被广泛应用于许多系统。而在公有云中, 应用广泛的是面向对象的存储,目前已有的是阿里云(Alibability)的OSS (OSS)、华 为云(OBS)的OSS (OBS)的OS (腾讯云)的COS (COS)。您可以通过所附的 SDK进行访问。在世界范围内,有非常成熟的技术,如Ceph、minio和OpenStack Swift, 它们都被各大企业用于自己的领域,从侧面证明了它的可行性和科学性。
这些开源的对象存储系统都必须遵守 Amazon S3 协议。 Amazon S3 协议为一个 Resest full样式的API,用于定义一个对象的存储。
对象存储技术是为了满足由非结构化数据增长所引起的业务需求[4],它主要是指按 照一定的规则,将数据对象映射到分布式集群的节点上,并进行存储[9]。通过增加新的 结点,可以使系统的存储空间不断增大,具有一定的可扩展性;为了在单点故障时保证
3
系统的数据安全,使用多副本备份技术将单点的数据内容保存到多个存储节点上[10];
另外,该系统还通过对物理存储节点的构造进行了优化,实现了对所存储文件的高效存 取。在对象存储技术中,海量数据存储问题是通过对数据对象和属性进行操作来实现的 [5],这样就大大简化了大规模数据的存储问题。
本文的研究意义在于,基于目前较为流行的一些分布式存储架构[9],结合该领域中 现有的关键技术的研究成果[11],来设计并实现一个分布式对象存储系统,保证系统的高 性能和高可用性。
1.3图像检索研究现状
随着医疗图像数据的日益丰富与增长,基于文本的图像检索方法已无法满足快速、 准确地检索需求[12]。因此,基于内容的图像检索技术成为了众多学者和研究人员热门的 研究领域。在基于内容的图像检索系统中,不是以文本的形式提供查询[12],而是以图像 作为查询输入。因此,基于内容的图像检索是目前国内外许多学者关注的热点。在基于 内容的图像搜索系统中,使用图像作为检索输入,而不是用文本来提供查询[12]。基于 内容的图像检索系统,在提取特征之后,与数据库特征做相似性比较计算,得到检索结 果。特征提取和检索是基于内容的图像检索系统两大关键技术。根据特征提取所用方法 的不同,可以分为传统方法和深度学习方法。
1.3.1 特征提取
在传统方面,人们通常使用图像的视觉特征(颜色、形状、纹理等特征) [13]作为图 像特征来描述图像。
其中,形状特征是对事物外表的一种描述方法,通常有两个的方法:区域表示法和 轮廓表示法。区域表示法是指将一幅图像分成多个区域,并利用骨架、四叉树等方法描 述和表示;轮廓表示法是不考虑背景、物体内部结构、纹理、噪声等因素的情况下,使 用边缘检测算子检测目标轮廓,提取出物体的轮廓,从而表示不同物体的形状特征。
4
纹理特征,纹理特征与颜色特征同样能够表示出图像的直观特征[14]。因此仅仅依靠 纹理特征也不能表达出图像的本质特征,但是与颜色特征不同的是,纹理特征是以一片 区域内的像素点为单位进行特征描述。在机型检索时,纹理特征描述符进行特征描述能 够具有一定的容错性,且不易受方向和噪声的影响。常用的纹理特征描述方法主要有统 计法、几何法、模型法等。
颜色特征可以反映颜色分布特性和颜色的属性[15]。 Cinque 等人[16]提出空间颜色直 方图方法,用来描述颜色在空间中的分布关系。
虽然基于传统方法的图像检索已经取得了很好的效果,但由于传统方法的特征提 取仅能表示图像的表层特征,其匹配准确率受到形状、背景、光线等因素的影响,但 是它的精确率却难以达到高水平。因此其准确度难以达到较高的要求。卷积神经网络 的使用很好地解决了这个难题,卷积神经网络包括输入层、输出层,多个卷积池化 层,多个卷积池化提取图像各个区域的特征,又经过全连接层输出图像的特征向量。 基于深度学习的图像检索方法已经被众多学者所采纳,并获得了较好的结果[19]。深度 学习获得的特征优于传统方法获得的特征,在检索方面表现出更好的检索性能,同时 深度学习可以根据不同的应用场景来提取不同层的深度特征,这些特征具有手工特征 所没有的语义信息,不仅可以提高检索的准确率,还可以保证图像的深度特征计算汉 明距离的过程中,与原始特征形似度不变。深度学习哈希提取技术是将哈希编码技术 引入到网络结构中,从而获得更深层次的哈希特征。
1.3.2 检索
现有的 R-tree、 KD-Tree 等算法在提取的特征维数较高时,其性能会受到很大影 响。很难将其应用到大型的数据集中。近似最近邻(Approximate Nearest Neighbor, ANN) [22]搜索是一种解决高维度数据相似性搜索问题的方法。在医学数据中,由于数 据量庞大、维度高,直接计算所有数据点的相似性是不现实的。 ANN 搜索算法通过数 据降维或通过哈希函数将原始数据映射到低维或离散空间中,从而提高搜索速度。其 中,哈希技术是一种常用的ANN搜索技术,它将原始空间中的数据点映射到离散二进
5 制散列码汉明空间中。哈希函数能够将相似的数据点映射到相邻的哈希桶中,从而实 现高效的相似性搜索。在医学数据中,哈希码被广泛用于大规模检索图像和视频。
相比于传统的最近邻搜索算法,哈希码的存储空间小、计算速度快,且在维度较高 的情况下仍能保持较高的搜索准确率。同时,哈希码还可以通过对哈希函数进行优化, 提高搜索效率和准确率。
总的来说,哈希技术[23][24]在医学数据中的应用十分广泛,特别是在大规模的数据搜 索和匹配中,哈希码可以有效地提高搜索效率和准确率,从而加快医学数据的分析和应 用。
哈希方法可分为独立于数据的哈希与依赖于数据的哈希。
其中,最具代表性的是局部敏感哈希(Locality Sensitive Hashing, LSH) [26]。传统 的 LSH 算法采用哈希算法,在两个不同的空间之间进行随机的直线投影,但其缺陷在 于哈希码比较长,难以达到理想的效果。
由于数据独立哈希方法的局限性和深度学习技术的发展,数据依赖哈希方法与深度 特征学习结合,得到了很好的应用。
深度哈希算法的核心思想是:图像特征提取和哈希函数相结合,在此基础上结合图 像标签信息,利用损失函数对哈希值进行优化,从而有效地提高了检索的准确率。深度 哈希算法实现了高纬度数据降维,生成的哈希码用于检索,在实际应用中取得了显著的 效果,具有重要的实用价值。
根据训练数据有无标记可将哈希学习划分为三类:无监督学习哈希、监督学习哈希 和半监督学习哈希。
无监督学习哈希就是指利用无标记数据,通过哈希化得到的数据,使得哈希值更 好地体现原始数据之间的联系,包括:局部哈希(LSH) I26】、普哈希(SH)、迭代 量化(ITQ) I28】、离散图哈希(DGH)㈤]等。无监督哈希方法,使用无标记的数据集 作为学习对象,进行训练,降低数据维度,维持原始数据之间的关系。 ITQ 方法首先 使用主成分分析(Principal Component Analysis,PCA)对原始空间的数据集进行降维
6
操作,之后将数据集中的数据点映射至二进制超立方体的顶点之上,令映射量化误差 最小,最终即可得到与数据集相对应的哈希码。
有监督的哈希方法利用标签信息,图像的标签信息用于辅助指导哈希码的学习,基 于监督学习的哈希弥补了无监督缺乏语义信息的不足。
有监督的哈希方法利用图像标记信息,应用到哈希码的学习,弥补了无监督缺乏语 义信息的缺陷。
Xia等人[28]提出卷积神经网络哈希(CNNH),它通过CNN对给定成对相似性矩阵 学习特征表达和哈希编码。该方法采用深度学习的方法,将训练样本的相似性矩阵分解 成两个相互转换的矩阵,并将其作为样本的二进制代码,从而实现对样本的描述,但该 方法也有不足之处,哈希编码与特征学习分成两个阶段,会对检索准确率造成误差,不 能发挥深度学习的优势。
Lai等人[29 ]提出了嵌套网络哈希(non-network network hash, NINH),并在此基础 上,设计了一种新的子网分割与编码模型,并利用三元组的排序丢失来保持相似度的哈 希值。 NINH 是一个以三元组为输入的深度神经网络。以三元组耗散函数为基础,以网 络输出汉明空间中的相似性对间的间距比不相似性对间的间距要小。在此基础上,提出 了一种基于三元组训练样本的图像内容相似性测度学习方法,并将其转换为相似性测度 学习方法。
Li Wujun等人[30]提出DPSH算法,它是一种基于成对标记的图像检索新方法。该 算法首先利用一对标记数据进行图像特征提取,并利用哈希函数对特征进行量化,得到 二进制哈希码,并利用相应的损失函数对哈希码进行评估。深度配对监督哈希算法 DPSH )是一种基于匹配标签的哈希算法。
DSH 算法[31]也是一种以成对标记输入的深度哈希学习模型,它采用了度量学习中 的对比损失,以相似与不相似两种方式来描述输入样本对间的相似性,并对哈希层输出 的成对特征加以限制,使相同的标记越靠近,而不同的标记越远离。针对汉明距离与实 值空间不同而导致的汉明距离不能准确度量的问题,DSH在损失函数中加入了正则项, 使其每一个数值都为 1,从而使损失函数具有更高的精度。已有的基于二值哈希编码的
7
哈希检索算法,在检索速度和精确度等方面均有较大的提升空间,且多用于自然图像检 索,而在医学图像中,由于其自身特点并不显著,因而无法得到所需的图像。为此,我 们将哈希学习算法运用到医疗图像检索中,以改善其准确性。
1.4研究内容
本论文针对医疗影像的储存与检索问题进行了如下研究。
(1)医学图像存储:实现医学影像的对象存储,此外该系统也为客户端提供文件存 储与文件管理功能,对系统结构进行研究。针对存储系统的单点故障,本文采用纠删码 数据放在存储节点,每个节点负载均衡;保证存储系统的存储效率,不会因为某一个节 点的损坏,而导致整个存储集群的宕机。
( 2 )医学影像检索:医学图像区别于自然图像,医学影像侧重于提取病灶区域信息 来检索相似病例的图像,医学影像大多数是灰度图,噪声较大,相同[13]类别的图像相似 度较高、病灶区域较小且难以分辨,导致特征提取时容易遗漏重要的病灶信息,影响检 索准确率等问题,使得现有的哈希方法对病灶区域特征的关注较少,检索准确率较低。 为了进一步提升医学影像检索的准确性,我们提出了一个基于深度学习的医学图像检索 方法,用于解决医学图像特征提取过程中病灶区域较小不易发现等问题,提出一种基于 深度哈希的医学图像检索方法。针对背景复杂,有噪声的问题,为了对细节信息充分描 述,在深度学习网络中加入了注意力机制,使得网络更能突出图像的细节信息,然后将 提取到的高维度特征输入到哈希函数生成紧凑的哈希码,这样就可以有效地提升检索准 确率和检索效率。实验结果表明提出用深度学习方法进行检索,有效地提升了检索准确 率。
1.5本文结构
综上所述,本文主要研究医学影像的存储及检索,整体结构如图 1-1 所示,本文具 体的具体结构如下:
8
第一章,绪论。对医学图像存储和检索的有关背景与研究意义进行了介绍,并介 绍了医学图像检索的国内外研究现状和问题,对本文的主要研究内容、研究方法和论 文章节安排进行了说明。
第二章:相关技术。这一章介绍了与本文相关的基础理论。首先介绍分布式存储技 术,包括分布式存储系统的基础理论和典型分布式存储系统,其次,对医学图像检索的 基础理论进行了研究,主要是对医学图像检索的流程、相似性度量、性能评价指标等进 行了研究,并且详细介绍了卷积神经网络的基础知识和几种经典的 CNN 网络模型,最 后着重介绍了哈希算法的基本理论和深度哈希方法。
第三章:基于对象存储技术的分布式医学图像存储算法。本章首先对医学图像存储 的现状进行了分析,找出了当前医学图像存储存在的问题,并将分布式存储[14]和其他 类型的存储的优点进行了对比,并利用 minio 的分布式医学图像存储方法对图像进行 了存储。
第四章:基于特征融合的深度哈希医学影像检索。这一章首先深度哈希医学影像 检索框架,这一框架有特征提取和检索两个过程,主要包括网络结构、特征融合、二 进制哈希码的生成以及损失函数的设计,最后在医学数据集上展开了有效的验证实 验,验证了模型的有效性和可行性,并对实验结果展开了分析。
第五章:医学图像检索服务系统。医学图像检索服务系统包括三个核心模块:数据 库、服务端、客户端。数据库由医学影像数据库与用户数据库组成。系统的服务端提供 稳定、准确、实时的医学图像检索服务。系统的客户端负责提供医学图像检索服务,让 用户可以方便的使用医学图像检索服务。
第六章:总结与展望。首先对论文的主要工作进行了概括,并指出了论文工作中 的一些缺陷以及今后需要进一步完善的地方。
图 1-1 本文结构图
Figure 1-1 Structure of this document
1.6本章小结 本章是论文的绪论部分。首先,对论文的选题背景、选题意义等作了简要的说明,
接着,详细地介绍了国内外有关图像存储与检索的研究进展,最后,说明了论文的主要 研究内容以及论文的总体框架。
10
2相关技术
本章主要介绍了图像存储和检索理论设计的相关理论基础:对象存储方式、图像检 索框架、深度学习理论、度量学习,最后对本章内容进行小结。
2.1对象存储
2.1.1概述
对象存储(object storage)[39],通常称为基于对象的存储,它是一种用于处理大量的 非结构化数据的数据存储架构。这些数据无法被储存在常规的关系型数据库中。今天, 网上的大部分数据都是无结构的。这包括邮件,视频,图片,网页,声音文件,还有其 它形式的媒介和网页内容,不管是文本还是非文本。
如何高效地存储和管理这类海量数据,是一个富有挑战性的问题。基于对象的存储 方法是当前最流行的数据归档与备份方法。它提供了一种传统的以文件或块为基础的内 存无法实现的可扩展性。有了面向对象的存储器,你就可以储存并管理一个 TB, PB, 乃至更多的数据。
对象存储[35]将文件作为对象保存在存储系统中,并向配置文件中添加所有有关的 元数据,而且对象存储添加了扩展元数据,并去除了文件存储中所用的层次结构,将所 有的内容都放入一个被称为存储池的平坦的地址空间中。所述存储系统软件利用所述特 定物体的独特识别符[36]来寻找所述特定物体,例如一段视频或一张相片。相对于其它 的资料储存方式,元资料对于物件储存的价值而言,至关重要。因为元数据是可以被用 户定义的,所以可以从不同的角度对元数据进行分析。
2.1.2对象存储的组成
对象存储是一种数据存储结构[37],它把数据视为对象并使用唯一的标识符来区分它 们。每个对象可以包含数据及其相关的元数据(如创建日期、修改日期、文件类型等)。
11 对象存储通常使用智能化的存储设备和软件框架来构建存储系统,提供高效的数据访问 和存储管理。对象存储体系结构的主要组成部分:客户端、对象存储设备、元数据服务 器。
客户端是对象存储系统的用户接口[38],可以是应用程序、Web服务或其他类型的客 户端。客户端对存储系统发出请求,通过与对象存储设备进行交互,读取、写入和管理 存储的对象。一般是将统一标准的操作接口提供给上层应用,对底层的调用进行封装, 屏蔽实现的复杂细节,将用户的操作最终实现为对于数据对象的操作,使用户能够快速 有效地访问对象存储系统中的数据。
对象存储设备是对象存储系统的核心组件[39],它负责存储和管理对象。通常采用分 布式存储的方式,将数据分散存储在多个节点上,以提高数据的可靠性和扩展性。对象 存储设备主要负责管理整个对象存储体系结构中的对象,是整个系统的核心组成。它由 独立的CPU、内存、网络系统等设备组成,负责管理被分配到此设备上的对象,由于其 具有独立的存储资源,因此可以为外部提供对象读写服务,使其比传统存储设备更加智 能。与文件存储不同的是元数据与数据可以完全分离,这意味着,对象存储设备可以更 好地实现数据的可靠性和冗余性,从而提供更高的系统可用性和可靠性[40]。同时,对象 存储设备还可以实现数据的多副本备份,从而更好地保护数据的安全性,这样便于实现 系统的可靠性。它通过使用对象存储技术来管理和存储数据,对象存储设备将数据的存 储称为对象,每个对象包含数据以及与之相关的元数据,例如对象的名称、大小、创建 时间等。对象存储设备具有独立的存储资源,可以为外部系统提供对象的读写服务。一 个对象存储设备可以管理整个对象存储系统中的对象,包括对象的创建、存储、访问和 删除等。
元数据服务器是对象存储系统的管理组件[41],它负责存储和管理对象的元数据。元 数据包括对象的名称、大小、类型、创建日期、修改日期等信息。元数据服务器通常采 用分布式的方式,以提高可靠性和可扩展性。在对象存储系统中,元数据服务器维护对 象存储设备的对象状态信息,包括系统与对象存储设备之间的对应关系以及对象存储设 备的状态。就对象存储结构而言,元数据较少,可以不需要单独的数据服务器,提高了
12
系统的扩展性。
在对象服务器中,每个对象都有一个唯一的标识,用来表示对象,对象长度不固定, 依据数据大小确定对象的大小。对象存储通常存储非结构化数据,有文件、图像、视频、 音频、记录等。对象的属性、特征信息和访问权限。元数据包括对象名称、对象长度、 对象到物理存储单元的映射等信息。
2.1.3对象存储的优势
与文件存储相比,对象存储克服了其读取和写入速度缓慢的缺陷,与块存储相比, 它弥补了其不可共享的缺陷,将二者的优点结合在一起,就产生了对象存储,具有如下 两大优势[42]:
(1)实现信息的分享。在对象存储中,数据被储存为对象。每一个对象都拥有自己的 属性,与文件存储比较起来,文件存储主要是对文件系统展开操作,文件结构是树状的 [43],客户端可以对文件进行直接修改,对象存储可以通过应用程序在多个平台上访问, 不能对数据进行修改,从而实现多个平台共享。
(2)安全性、可靠性;从安全性角度来看,对象存储技术比传统的块存储技术更具优 势。后者主要是在存储器中进行修改,而前者则是将数据分解为对象,含有数据的属性 无法对数据进行修改,只有在下载之后才能进行修改,这样就更加安全,不会出现数据 被篡改的情况。
2.1.4冗余恢复技术
分布式系统规模的不断扩大,系统中各节点出现故障的可能性会增加,那么系统就 需要有容错的能力,通过重复存储数据的方式来防止数据丢失,副本策略[44]和纠删码[45] 是目前存储中常用的两种数据冗余方法。
( 1 )多副本
在主节点发生故障时,可以使用复本中所存储的数据来确保主机的正常工作。假定
13
主节点设备被破坏了,那么就一定要有多个复制,这样会占据很大的内存空间。但是, 在正常运行的时候,并不需要那么多的复制来确保系统的正常运行,所以磁盘的利用率 很低,实际使用中只占用了 1/n。因为主要拷贝保存了同样的数据,所以数据备份也更 简单;采用多副本的方法,可以减少对网络的占用,提高系统在发生故障时的恢复率。
(2)纠删码
与副本策略相比,纠删码(Erasure Coding,简称EC)[46]恢复率虽不及副本策略,但EC 的磁盘利用率较高。纠删码技术是一种数据保护技术,通过对原始数据[19]进行编码来生 成冗余数据,并将这些冗余数据存储在不同的内存中,实现容错的目的。相比于传统的 多副本存储方式,纠删码技术能够显著地降低存储空间,提高系统可靠性和数据可用性, 其核心思想是将原始数据分块,对每个数据块进行编码,生成若干个校验块,并将这些 数据块和校验块分别存储到不同的存储节点中。当存储节点发生故障[47]或数据丢失时, 可以使用剩余的数据块和校验块来恢复原始数据。通过编码计算校验块,解码计算出丢 失数据块的方式实现对对象的高效可靠存储,是一种高效的冗余机制来保护存储的数据, 可以有效地应对存储系统中的硬件故障、数据损坏等情况。
纠删码编码译码过程,源数据k个数据块,用合适的纠删码容错方式进行编码,经 过编码后产生k'个数据校验码,k-k'个数据块,在数据丢失的情况下,这些数据块和校 验块经过译码器译码得到重构数据块,实现数据的恢复。编码解码过程如图 2-1 所示。
Figure 2-1 Encoding and decoding process
14
而对于Minio采用Reed-Solomoncode方法将对象拆分成N/2数据和N/2奇偶校验 块。这就意味着如果是N块盘,一个对象会被分成N/2个数据块、N/2个奇偶校验块, 你可以丢失任意块盘,只要有满足N/2+1个磁盘没有丢失,你仍可以用这N/2+1个剩余 磁盘中的数据对所有磁盘进行恢复。
2.1.5经典的分布式存储系统
(1) Amazon S3
Amazon Simple Storage Service (简称 Amazon S3)是一种以对象存储为基础的云 存储服务[48],它拥有很好的共享性,可以存储多种类型的数据,它提供了一个 web 服 务接口,用户可以在web上的任何位置,随时在web上的任何位置存储和获取任意数 量的数据,可以通过对对象进行操作来进行存储。这项服务为所有开发者提供了一个具 有高可扩展性,高可靠性,高安全性,高速度的数据存储环境,而它也是第一个成熟的、 商业化的云计算产品。
(2) Ceph
Ceph 分布式存储系统的架构[49],其设计目的在于提供更好的性能、可靠性和可扩 展性。由于 Ceph 的出色表现,它的设计非常符合现在的市场需求。在 Linux 环境下, Ceph是一种PB级别的分布式存储系统。它利用目标模型[21],对数据进行储存和管理。 相对于其它分布式存储, Ceph 最大的特色就是在相同的一套对象模型下,将三种不同 视角的数据进行统一的存储。支持Amazon S3协议来实现物体的存储;另外,区块储存, 它为标准区块储存装置提供了资料储存的能力,并且支援诸如容量缩减、快照、逻辑复 制等进阶特性;最后是文件存储,它是一种基于目录和文件视图的网络文件系统,在不 做任何改动的情况下,可以将原来的文件存储功能直接替换为Ceph。因为Ceph能够 对三种不同的数据进行统一的存储,所以它在部署与应用上有着特殊的优点,因而在 OpenStack 等诸多领域得到了广泛的应用。
(3 ) Minio
Minio是一项基于Apache License 2.0开放源码协议,与亚马逊(Amazon S3)S3云
15
端储存服务界面相匹配的对象储存服务[50]。Minio对象存储系统是为海量数据存储、人 工智能、大数据分析而设计的,它适用于存储大容量非结构化的数据,比如,图片,视 频,日志文件,备份数据等,存储对象支持的大小可以从最小的几kB到TB不等°Minio 主要是用Golang语言来实现的,在客户端与服务器之间使用的是http/https通信协议, 它是一个非常轻量的服务,可以很容易的与其他应用相结合,就像 NodeJS、 Redis 或 者 MySQL 一样。
2.2图像检索
2.2.1图像检索框架
图像检索包括图像特征提取和相似性度量[49],医学图像检索流程图如图 2-2 所示, 主要包含特征提取、哈希学习、相似性度量等。
图 2-2 医学图像检索流程图
Figure 2-2 Flow chart of medical image retrieval
(1)图像特征提取:首先对数据集中的图像提取特征,针对图像的特点,使用适当
的方法对图像信息进行分析,提取出数据集中各个图像特征描述,把这些图像提取的特
征描述作为图像的特征。这个过程就是特征提取。提取特征的方法有传统方法[23]和深度
16 学习方法[24],这些方法都是将图像提取转化成提取的图像特征,由于图像本身具有丰富 的语义信息,图像进行特征提取后会出现数据的维度过高的问题。
(2) 哈希学习:为了解决维度灾难,提出了使用哈希方法对图像检索进行优化。使 用合适的哈希函数将高维度图像转换到低维度的汉明空间,保持图像原始样本的相似性。
(3) 相似性度量:在获得哈希码之后,检索图像的哈希码和哈希码数据库进行比 较,得到最终的结果。目前常见的相似性度量方法有欧式距离和汉明距离等。
2.2.2相似性度量
相似性度量是判断两个图像之间相似程度的一种度量[50]。两个图像越相似,它们的 相似性也就越大,而两个图像越不相似,它们的相似性也就越小。
在图像特征提取之后,将图像转化为特征向量。一个具有 N 维的特征向量,可以被 看成是 N 维特征空间中的点,对不同图像之间的相似性的计算,就可以被转换为可以 被转换为对该特征空间中不同的点之间的距离的计算,然后选择适当的距离度量方法来 对这些特征向量之间的距离进行比较,将距离的大小当作图像的相似度的大小,作为两 个特征向量之间的相似度。
下面介绍几种常用的距离度量方法[53]:
(1)汉明距离
两个向量之间的相似性通常使用汉明距离来计算,假设两个向量都是 k 维的向量 u 和v,用汉明距离比较两个向量的相似性:
H(u,u) = Ef=1(^i 丰 Vt) (2-1)
其中Ui,Vi分别表示图像特征中i维二进制码。汉明距离对二进制的每一个比特位 进行异或操作比较,得到的异或的个数作为距离,通过计算两个向量之间的哈希码,得 到的汉明距离来确定它们的相似性,两个向量随着汉明距离的增大,相似程度在不断降 低。
( 2)欧氏距离
欧氏距离是最常见的计算距离方式,从直观上可以理解为两点之间的直线距离。在
17
特征空间中利用欧式距离计算两个向量之间的距离,假设两个向量分别为x=
{x/2,…,X"}和丫 = {为,,2,…,yn},则它们之间的距离为
d(X, Y) = ^l^Xi-yi)2 (2-2)
(3) 余弦距离
两个向量的特征向量X和Y的夹角余弦能够体现出它们之间的差异,计算公式如下:
cos(0)=器1® (2-3)
两个向量的夹角余弦的值范围是[-1,1],当两个向量完全不同时,它们的夹角余弦为 -1,当两个向量完全一样时,它们的夹角余弦为1。
(4) 曼哈顿距离
两个向量的特征向量X和Y的曼哈顿距离计算公式如下:
d(X,Y)=》n=i|Xi-yil (2-4)
2.3 深度学习理论基础
深度学习是在机器学习基础上发展而来[51],它通过构造具有非线性的多层神经网络, 进行特征学习。该方法所得到的特征可以用于分类,物体检测,图像检索等。深度学习 主要有三种类型:有监督学习、无监督学习和半监督学习。与传统的人工神经网络相比, 卷积神经网络具有两大核心思想:局部感受野和权值共享。
第一个是局域感受野,它是指在卷积神经元仅与前一层次的特征图像相关。在对外 部世界的感知方面,人们对外部世界的认知类似于图像的空间关系,它们都是由局部向 整体进行的,而离得越远的像素之间的联系就越稀疏,而离得越近的像素之间的联系就 越紧密。这样,每个神经元只需要感知到一个局部的或感兴趣的区域,就可以不需要感 知到整体的图像,而是通过更高层的局部信息来获得整体的信息。
第二个是权值共享,基于同一卷积核进行特征抽取,不依赖于物体的位置。通过权 值共享,可以有效地减少模型中的参数,提高模型的学习速度。简单地说,与传统的神 经网络相比,卷积神经网络的最大的改进体现在以下几个方面:一是建立一个权值共享
18
的卷积层,利用局部感知和权值共享,大大降低了参数量[29];二是通过设置池化层,既 可以减小特征图,又可以减小参数个数。下面,我们将用常见的网络来描述卷积神经网 络的结构。
其基本结构如图 2-3 所示。
图 2-3 卷积神经网络结构图
Figure 2-3 convolutional neural network structure diagram
如图 2-3 所示,一个基本的卷积神经网络模型的基本结构:卷积层、激活函数、池 化层、全连接层等。
( 1 )卷积层
卷积层看作一个特征提取器,对输入信息的特征进行提取,滤波器对捕捉图像中的 特定内容实现局部连接和参数共享。以带有参数值的高维度矩阵为卷积核,与输入数据 进行相乘运算,输出指定大小的维度和输出特征图。
( 2)池化层 实际上是一种降采样,一般在卷积层之后,用于特征降维、保持特征不变性,防止 过拟合,增强泛化能力,扩大感受野。池化的方式主要有最大池化、平均池化、局部最 大池化。
( 3 )全连接层 全连接层的作用是将输入的多维特征进行组合映射到线性空间。对矩阵[31]进行线性 变换。同时也是一种稠密连接,参数较大,训练时间消耗大。
19
4)激活函数
激活函数向神经网络中引入非线性变换,神经网络输出都是线性组合,使用不同的
激活函数可以带来不同的非线性变换结果。常用的激活函数主要有 sigmoid、tanh、relu、
图 2-4 激活函数图
Figure 2-4 Activation function diagram
2.4 度量学习
距离度量学习在图像检索、行人识别、聚类等方面都有着很好的应用,已经成为了
计算机领域的研究热点之一。
基于传统方法的图像检索在度量图像之间的相似性时,通常采用某种合适的相似性
20 度量函数,如欧氏距离、余弦距离等。然而医学图像在视觉上很相似、大多是灰度图像 的特点,会产生图像特征类内不相似和类间相似的问题,在这个问题下,使用相似性度 量会产生较大误差。
度量学习是一种机器学习方法,主要用于处理分类、聚类、检索等问题。它通过学 习距离度量函数来度量不同数据之间的相似性或差异性。这个度量函数通常被定义为一 个从数据空间到实数空间的映射,将数据点映射到一个特征空间中,其中数据点之间的 距离反映了它们在原始空间中的相似性或差异性。它是一种数据依赖的度量,从而把数 据集按类别区分。度量学习的目标就是在减小同类距离的同时,尽可能地增大不同类距 离,能根据任务类型的不同自主地从训练数据中学习最优度量模型。
总的来说,度量学习是一种强大的机器学习方法,它可以通过学习最优度量函数来 精确描述样本之间的相似性或差异性,从而更好地适应不同的应用场景,增强学习到的 特征的判别能力。度量学习中常见的损失函数主要有以下几种形式[52]:
( 1 )对比损失
成对损失通过输入成对的图像,经过特征学习获得特征向量,在分类中经常用到, 可以使同类样本之间更紧凑,使不同类样本之间更松散,忽视了那些属于不同类,但两 两距离远远大于设定的相似度阈值。对比损失的公式如下所示:
^con = (1 - xi/) max(Sij -a,0)- y^S^j (2-5)
其中表示Xij用于判断两个样本是否是同类样本,Xij=1两个样本被认为是相同的类 别,yij=0则被认为这两个样本是不同的类别。Sij代表两个样本之间的相似性大小,相似 性越大,两个样本是同类的可能性也就越大。符号a需要在训练之前设定一个值,这个 值大于这个值相似,小于这个值表示不相似。通过公式可以知道,通过训练,相似样本 之间的距离越小越好。
(2)三元组损失
三元组既包含锚点样本又包含正反两个样本。在此基础上,对其进行了优化,使其 与正例之间的间距比与负例之间的间距更小。三元群丢失是根据三元群中的样本对结构, 得到的一个丢失函数。目的是使相同类型的图像尽可能接近,而不是相同类型的正例尽
21
可能接近,并避免样本的特征在很小的空间内聚集在一起,因此,对于同一类型的 2 个 正例 1 个负例,负例 1 个负例的 Margin 三元组损失的计算公式如下:
Ltri = max(Sip — Sin + a, 0) (2-6)
其中Sip表示锚点样本验与正例样本xp之间的相似性,Si”代表同一个锚点样本脸与负 样本xn之间的相似性。阈值Q代表正负样本之间需要区分开的距离。
2.5哈希算法
2.5.1局部敏感哈希
局部敏感哈希(Locality Sensitive Hashing, LSH)是一种适用于大规模、高维数据 的快速最近邻搜索方法。该算法的基本思路是:当两个点之间的距离较小时,用某种哈 希函数映射两个点时,两个点之间的哈希值相同的可能性较大;相反,当两个点之间的 距离较大时,则哈希值相同的可能性较小。基于局部敏感哈希映射到低维空间后,仍能 保留原数据在高维空间中的相对位置信息,利用该映射得到的低维向量进行图像检索, 可以有效提升检索效果。
2.5.2卷积神经网络哈希
近年来,随着深度学习技术的不断发展,大量的哈希算法被提出。传统的哈希方法 主要包括:CNNH,NINH,DSH,DPSH等。下面这一部分,我们将简要介绍三种典型 的深度哈希方法,并了解深度学习对哈希方法的极大改进。
( 1) CNNH
CNNH 是将哈希算法和神经网络相结合的第一种算法[26],该方法将哈希学习分为两 个阶段,第一阶段特征学习,通过深度学习学到特征,然后将特征输入到第二阶段哈希 学习阶段,学习得到哈希编码,这两个阶段 实现了哈希算法与神经网络的结合。
在哈希编码的学习阶段,设输入的训练集为I = {厶,L…,I”},定义训练集的相似度 矩阵为S,其中S满足:
22
_J+1,IJj为相似对
3,j =]-1, Ii, I为为非相似对
将矩阵S分解为HHT的形式,即
S = - HHT
q
在学习过程中通过对下列损失函数进行优化以学习哈希码:
其中 II L 为 Frobenius 范数,H e [-1,1]""q。
在图像特征提取和哈希编码的过程中,将利用上一阶段学习得到的H矩阵和原始图 像,通过深度学习获得图像的特征和哈希函数。这一阶段采用的 CNN 网络包含三个卷 积层,并利用softmax函数来学习q维的哈希码。
CNNH算法将深度学习和哈希检索技术相结合,实现图像特征的提取和哈希函数的 学习,有效地提高了大规模图像检索效率,同时也提升了检索的准确率。然而,该算法 整体框架分为两个阶段进行,第一阶段的图像深层特征提取之后,接着对第二阶段的哈 希码学习,从而在某种意义上制约了哈希学习的效果。
2) NINH
NINH(Network in Network Hash)是一种嵌套式网络结构[34]。比CNNH的模型要 更深,简称 NINH。 NINH 方法训练时使用三张图像构成的三元组。所谓三元组,即第 一张图像和第二张图像属于相似的正样本对,而第一张图像与第三张图像则是不相似的 负样本对。针对在汉明空间的哈希码保证相似样本对的距离大于不相似样本对的距离, 提出了 triplet 三元组来用于解决问题。
输入图像三元组共享深度架构,共享堆叠卷积层来提取特征,用于将中间图像特征 划分为多个分支,每个分支对应一个哈希位,用于保持相对相似性的三元组损失。 NINH 方法训练时使用三张图像构成的三元组。
深度架构包含三个模块: 1)共享堆叠卷积层来提取特征。 2)分割和编码模块,用
23
于将中间图像特征划分为多个分支,每个分支对应一个哈希位, 3)三元组排名损失,以 维持图像之间的相似度。
本算法使用带有一个堆叠卷积层的共享子网来自动学习输入图像的特征。通过该子 网,输入三元组输入网络的得到具有相同维度的向量。采用嵌套式网络的体系结构作为 基本框架,该模型在具有较大接收域的滤波器的一些卷积层之后插入具有1x1过滤器的 卷积层。
( 3) DPSH
DPSH(deep pairwise-supervised hashing》28】,通过深度学习从图像对标签中学习到图 像的特征和哈希值,主要有几个方面:通过 CNN 的卷积层提取特征,使用网络的最后 一个全连接层学习哈希值,设计合理的损失函数使得相同标签的图像哈希码尽可能距离 相近,也就是相似的标签,哈希码距离比较小,不相似的标签,哈希码距离比较大。
假定有n个图片X = {兀梟,兀表示第i张图片。因为监督学习的哈希方法,图像都 是有标签的,可以通过标签构建出矩阵S = {叮,Sj g{0,1}。当两个图片相似时,Sj为1。 当两个图片不相似时,Sj为0可以通过图片的标签来获取相似性矩阵。
力(b,乞,y) = i(1 - y) |丹-b2 II: +1 y max(m - ||bi - dll:,0)+«(|| lbJ-比+||lb2| -斗丿(2-io)
(4)DSH
DSH 是一种新型的基于深度有监督的哈希算法,它可以在大样本下进行紧致二元编 码的学习。在此基础上,本项目提出一种基于压缩二进制编码的哈希学习算法,实现了 基于压缩二进制编码的图像相似度高、鲁棒性好、鲁棒性好等特点。具体地,本项目提 出一种基于 CNN 的图像(类似/不类似)的 CNN 框架,通过卷积、池化等方法,在该 框架下,每一层平均池化之后,加入两个全连接层。首先,将所抽取的高维特征映射为 500个特征,然后,基于哈希码的比特率k,对所抽取的数据进行完全连通,然后,对 该数据进行正则化处理,将哈希码限制为-1或者-1。针对这一问题,本项目拟构造一种 新的损失函数,既利用图像对中的监督信息,又利用正则化的方法,使其近似于期望的
24
离散值,使其在输出空间上具有最大的可识别性。与 DPSH 相似,增加了一个正规化。
2.6本章小结
本文阐述了医学图像存储和检索中的关键技术。首先介绍了对象存储技术,然后介
绍了图像检索技术,接着描述了深度学习理论,对网络的不同层的作用做了详细的介绍, 最后介绍了度量学习,用于度量图像描述图像的相似性。
25
3基于对象存储技术的海量医学影像存储研究
随着云计算、医学数字成像技术的快速发展,医院每天都会产生海量的医学影像数 据。这些数据数量众多,种类复杂,其中视频、图像[36]、文本等非结构化数据所占的比 例越来越大,数据存储在关系型数据库系统中,系统增加数据,删除数据,操作繁杂, 也存在数据损坏甚至丢失的问题。因此存储系统需要不断发展,用来更好的存储数据[37]。 对于非结构化数据,块存储和文件存储系统都不能很好的解决系统的可扩展性,低成本 等需求。当数据规模不断增大,对象存储在可伸缩性、易用性[38]、可靠性和低成本等方 面具有很大的优势,成为应对这些挑战的一个可行的解决方案。基于对象存储技术的优 势,本章提出了一个以 minio 对象存储为核心的分布式存储系统,深入分析了 minio 对 象存储API,将minio作为存储节点,设计一个分布式存储系统Minio Object Storage System (简称 MOSS)。
3.1应用场景与需求分析
对象存储的应用场景非常广泛,其中包括海量图片、音频、视频等多媒体资料,对 象存储适合于非结构化数据。
随着医学数字化的发展,医疗机构每天会产生大量的医学数据,医学影像数据内存 较大,不易共享。我们可以将对象存储技术引入到医学影像数据的存储[39],提高存储效 率和访问性能。对于医学影像数据,一般多读少写,不需要对数据进行修改,对数据共 享,存储性能要求较高。对象存储将文件看作对象,这样避免了操作失误造成的数据修 改,丢失数据。接下来,本章从需求分析、系统结构、功能设计、集群部署等几个部分, 对该系统做详细的介绍。
该系统的核心功能需求主要有:文件上传、下载、删除、对象信息查询,还包括对
Bucket 的管理。
27
3.2系统结构
MOSS 是一个分布式对象存储系统[40],它与现有的分布式文件系统有很多共同点。 但是,它和其他的分布式文件系统有着明显的区别。相同之处在于它们都具有高容错性, 适合部署在普通的主机上,都具有良好的横向扩展性,都能存储海量数据。不同之处在 于: MOSS 系统的无中心节点,;另外,分布式文件系统通常提供 POSIX 文件访问接口, 而 MOSS 只使用 http 作为对象访问接口。
3.2.1物理结构
MOSS 系统采用非中心化节点模式,集群中每个节点既是元数据管理模块也是存储 服务器,整个系统的数据和元数据都存放在存储节点上。节点使用普通的廉价机器即可, MOSS 则可以把大量的内存小的服务器构成的集群构成一个巨大的存储块。该系统的物 理结构如图 3-1 所示。
图 3-1MOSS 系统的物理结构图
Figure 3-1 Physical structure of the object storage system
3.2.2逻辑结构
该系统使用分层的设计思想,分为客户端(client),对元数据管理(OSS)以及对象存储
28
服务器(OSD)三个层次。其中,client为客户端,它利用OSS提供的接口,为用户提供 对象存储的界面操作环境,因此Client具有设计的灵活性,可以根据用户的需要嵌入到 应用中;OSS提供了对象存储服务接口与功能,并对存储数据进行处理操作;OSD为实 际存储节点,在系统中为OSS提供存储功能。如图3-2所示,为系统的逻辑结构图。
客户端
X
Res tful API HTTP 协议
图 3-2 系统的逻辑结构图
Figure 3-2 Logical structure of an object storage system
在对象存储系统中,文件数据与元数据分离,元数据服务器通过管理和操作元数据 来确定文件所在位置以及存储数据时需要存放的位置。在进行文件读写时,客户端向元 数据服务器发出请求来获取数据对象的存放位置。元数据用来管理新添加的数据存放位 置以及查询已存储数据的具体存放位置,不存储数据。尽管元数据和文件数据都存放在 OSD集群中。但是元数据与文件数据的分开管理。对象是存储在系统中的数据存储管理 的基本单元,其中包含id, metadata, attribute和data, id是对象的标识符,metadata是 元数据,对象的 attribute 是 key/value 键值对, data 是实际存储的数据。元数信息表示文 件系统的逻辑结构,保存文件系统中文件的空间信息。
3.2.3系统结构设计
在对象存储服务系统中,Client与对象存储服务器的通信通过RESTful或者HTTP 协议,在局域网内部进行,其功能是由对象存储服务器的接口提供。 Client 提供的基本 功能,满足用户对对象存储服务系统的基本功能需求。在对象存储服务器中,为 Client
29
提供功能接口,同时,其会对 Client 的请求进行相应的处理,并向 OSS 发送处理请求, 读取用户需要的数据。
对象存储系统MOSS
|数据管理服务器OSD
^Bucket管理) [元数据信息] 「用户认证]
「副本管理] 「负载均衡] [数据请求调度
数据存储服务器OSS 数据存储服务器OSS
数据上传/下载]数据迁移] 数据上传/下载]数据迁移]
I
<客户端> <客户端> <客户端>
图 3-3 系统结构图
Figure 3-3 System structure
在图 3-3 中,显示了对象存储中应该具备的功能结构,在对象存储系统包含包括监 控服务器、对象存储系统MOSS。具体如下:
(1) 监控服务器。 该模块控制对象存储模块的运行状态,并且检测集群的每个节点的状态,自动将数
据访问服务从离线节点转换到其他在线节点。实现了数据不丢失,可靠性存储。
(2) 对象存储系统 MOSS。 该模块包含数据管理服务器和数据存储服务器。数据管理服务器为每个对象创建一
个ID,维护和管理系统的元数据信息,包括文件元数据(文件大小、类型、创建时间), 对象与存储节点映射,保存对象的存储路径,对象版本号,存储容量,这一部分用于存 储数据。
数据存储管理器主要功能有数据操作(上传、下载、删除、版本控制、复制等),客 户端发出请求,接收请求,处理请求,并将请求发送给数据管理服务器。
30
3.2.4负载均衡管理
为了更好的管理节点,我们通过负载均衡来对节点管理,数据对象存储在节点上, 节点组成的集群, MOSS 采用非中心化架构,每个 MOSS 的存储节点都是对等的,因此 每个 MOSS 存储节点自然就是负载均衡的。当有新的存储节点加入到集群时,系统会自 动进行数据的均衡,将现有集群的所有存储节点上的一小部分数据迁移到新加入的存储 节点上,保持全局的负载均衡。这里的负载均衡包括存储空间的均衡,以及接受外部数 据访问时的均衡,所以接受客户端访问请求时,每个节点提供服务的机会也均等。当节 点损坏时,系统也会通过负载均衡的方式为节点分配新的节点,保证系统的正常运行。
3.2.5对象存储管理
对象存储是以对象作为数据的基本存储单元,通过每一个数据文件的唯一标识符 ID, 经过纠删码为数据分配存储区域,划分成数据块和校验块,在写入数据时, Bitrot 技术 计算数据的哈希值,将哈希写入磁盘。在写入数据后,然后数据通过文件流的方式传输 文件,文件流将应用程序与文件连接起来,将数据放在每一个存储节点上,这样数据块 和校验块中都含有数据,实现了数据的高可用,可靠性,保证了数据的不丢失,生成 meta 数据,保存数据的哈希值,当查询或者下载时,对数据校验,。当系统一个节点宕机时, 通过使用纠删码冗余恢复机制恢复系统,为系统重新分配数据。
使用纠删码用来保证对象的存储数据不丢失和可恢复,还对 Object 将数据以文件流 写入对象且从中获取数据实现文件的上传和下载。在该模块中,用户通过业务管理模块 中的数据目录和元数据记录获取数据的唯一标识符ID。经过OSS处理请求,然后发送 给OSD。经过哈希算法对数据寻址找到对应的对象存储地址,获取对应数据并经过对应 接口返回给客户端,以此来完成数据读写的主要I/O。对象的主要操作有上传、下载、 删除、查看等,具体如表 3-1 所示。
31
表 3-1 对象操作
Table 3-1 Object operations
操作名称 操作
上传对象 PutObject()
获取对象 getObject()
删除对象 RemoveObject()
桶的对象信息 ListObjects()
3.3 系统核心功能设计
3.3.1文件查看
文件查看功能,帮助用户查看图像、音频、视频等非结构化数据。在对象存储服务 系统中,用户存储的文件是以文件流的方式存储到集群节点中,并且用户在获取文件时, minio需要根据对象的ID以及对象存储的路径进行文件的查找。
在文件查看时,客户端发出查看请求,OSS处理请求,请求参数发送到OSD集群, 需要对获取的文件流进行处理。获取文件信息时,读取流文件,获取到文件,文件发送 给用户,在用户界面显示文件。查看文件流程图如图 3-4 所示。
请求参数
图 3-4 查看文件流程图
Figure 3-4 Flowchart for viewing a file
32
3.3.2文件上传
在文件上传时,客户端发出上传请求,OSS处理请求,请求参数发送到OSD集群, 需要对获取的文件流进行处理,元数据管理上传的文件,为文件设置ID,把文件分装为 对象,存储到存储服务器。上传成功之后,OSD向客户端发送上传成功的反馈。文件上 传流程图如图 3-5 所示。
图 3-5 文件上传流程图
Figure 3-5 Flowchart for uploading files
3.3.3 文件下载
根据对象的 ID 以及对象存储的路径进行文件的查找,客户端发出下载请求, OSS 处理请求,请求参数发送到 OSD 集群,需要对获取的文件流进行处理。获取文件信息 时,读取流文件获取到文件,文件发送给用户,在用户界面下载文件。文件下载流程图 如图 3-6 所示。
33
3.4 实验
3.4.1开发环境
本系统在 Windows10 64bit 系统下开发,通过 VMware Workstation Pro14 安装多台
虚拟机模拟集群环境进行实现。 具体环境如表 3-2 所示。
表 3-2 集群信息
Table 3-2 Cluster information
主机名 服务器IP 目录
Node1 192.169.180.131 /data/minio/data
Node2 192.168.180.132 /data/minio/data
Node3 192.168.180.133 /data/minio/data
1)搭建 Minio 集群 #vim/opt/minio/run/run.sh #!/bin/bash exportMINIO_ACCESS_KEY=admin
34
exportMINIO_SECRET_KEY=adminbfd123
/opt/minio/run/minioserver--config-dir/etc/minio\
--address:9029\
http://192.168.180.131/opt/minio/data\
http://192.168.180.132/opt/minio/data\
http://192.168.180.133/opt/minio/data1\
2)集群测试
三个节点的集群如图3-7 (a)、(b)、(c)所示。
a)node1 集群
b)node2 集群
c)Node3 集群
35
图 3-7 结点集群
Figure 3-7 Node cluster
3.4.2实验结果
(1)系统功能实现
上传文件页面,如图 3-8 图像上传、3-9 上传结果图所示。
图3-8 图像上传
Figure 3-8 Image uploading
图 3-9 上传结果图
Figure 3-9 Upload result
下载文件页面,如图3-10文件下载、3-11文件下载结果所示
36
图 3-10 文件下载
Figure 3-10 Downloading file
图 3-11 文件下载结果
Figure 3-11 File download result 查看文件列表,如图 3-12 所示。
图 3-12 查看文件列表
Figure 3-12 Viewing the file list
37
3.5本章小结
本章首先介绍了分布式对象存储系统MOSS的设计,然后对系统的物理结构和逻辑 结构进行分析,接着详细介绍了该系统的结构,分析该系统数据的存储流程和实现方法, 实现了存储数据的查看、下载、删除,并且对该系统做非功能需求测试。测试结果证明, MOSS 可以有效地对海量数据存储,具有使用价值。
38
4基于深度哈希的医学影像检索算法研究
4.1引言
目前,面向大规模的医学影像检索存在以下问题:1)医学图像的类间相似度较高、 病灶区域位置较小且难以分辨,导致特征提取时容易遗漏重要病灶信息,影像检索准确 率。2)医学图像噪声较大,仅考虑图像整体特征会由于包含病变区域之外的很大一部分 噪声,导致对病变区域的误判;仅考虑图像局部特征会在获取病变信息分布时导致重要 信息的丢失。3)针对现有的深度哈希方法直接将最后一个全连接层转换为哈希编码,完 全忽视了中间层特征,丢失图像信息。
为了更好地在深度哈希算法框架中同时挖掘局部显著特征与高层语义信息,本章提 出一种大规模医学图像的深度检索方法,加入空间注意力模块可以更好的提取图像的语 义信息与视觉细节,之后经过特征融合模块将全局特征和局部特征进行融合得到的高维 向量,输入到哈希层,得到哈希码,图像相似性度量完成检索。
4.2深度哈希的图像检索方法
4.2.1深度哈希的医学影像检索
基于以上分析,本章结合医学影像的特点,提出了医学影像的深度哈希图像检索方 法,该算法的主要特点有:
(1) 本章使用 ResNet50 作为骨干网络,之后将最后一个全连接层作为哈希层用于 降低特征维度,将特征学习和哈希码学习放在同一个框架中,避免因为两个模块使用不 同的网络所造成的损失,降低使用的参数量,实现了端到端的医学影像的图像检索方法。
(2) 空间注意力模块,使用空间注意力机制,可以有效的关注到图像的细节信息, 用三个不同尺度的池化层对图像进行压缩,彼此之间获得的特征互为补充,有效地关注 到图像的细节信息,避免了显著区域的特征丢失,提高了特征表达能力。
(3) 结合图像标签和图像对之间的相似度信息一起训练网络模型,分类交叉熵损
39
失和图像对损失作为损失函数,使得哈希码可以反映图像之间的相似性。
具体医学图像检索框架如图 4-1 所示:
该检索方法分为四个部分,分别是主干网络、空间注意力模块、特征融合、损失函 数。该算法利用图像之间的标签信息来判断图像的相关性,就需要以图像对的形式作为 模型输入。首先将数据集以图像对的形式到预训练网络,提取出全局特征,然后注意力 机制模块对这些全局特征向量池化,提取细节特征,输出图像的多尺度特征,可以有效 地提取图像的细节区域。接着将提取的多尺度特征输入到特征融合模块,对图像的全局 特征和局部特征进行融合,然后经过全连接层。最后进入哈希层,将哈希层的输出使用 Sigmoid 函数对特征二值化约束,使其值在[0,1]之间,分类损失和对比损失约束模型。 最后反向传播训练模型。
该算法在一个网络框架中完成特征学习和哈希学习任务。待检索的图像经过该模型, 得到图像的哈希码,与图像特征库中的各图像的哈希码进行相似性度量,最终得到与待 检索图像最为相似的图像。
4.2.2空间注意力模块
注意力机制的意思是:利用有限的注意力资源对目标扫描,从大量内容中选出需要
40
重点关注的部分,获取目标的细节信息,对无关信息不加以关注。注意力机制在计算机 视觉中有着广泛的应用,自然语言处理、图像与语音识别等任务中广泛使用,成为深度 学习中的一个核心技术。
在图像检索中,其主要功能是针对传统的视觉检索方法,提取特征表现不好,更好 地体现图像的细节信息,针对这一方面,进行优化。引入注意力机制到图像检索突出图 像重点关注部分,提高了图像检索的准确率。
注意力机制能够选择性地关注某一区域的信息,从而区别对待不同的信息。随着卷 积神经网络层数的增加,能够从深层的网络上提取出更多的图像内容信息,这些信息对 于图像的检索是非常重要的。然而,在图像检索中,大多数卷积神经网络提取到的特征 大多都是整体特征,难以捕捉关注区域的信息,对于细节信息的关注不足,为了关注医 学图像的病灶区域特征,强化对不同图像的辨识度,提高哈希编码的特征表示能力,本 文使用空间注意力模块。通道注意力能够突出具有医学图像的病灶区域,对该区域赋予 更大的权重。
图4-2展示了本文设计的通道注意力模块,给定一个网络中间层特征图FwRCxhxw, 先对其使用平均池化和最大值池化来压缩融合特征中的空间维度信息,得到施g和F爲。 然后把得到的两个特征输入到一个参数共享的全连接层,使用 Relu 激活函数,对上面 两个特征相加并通过 Sigmoid 激活函数得到新的特征。
4.2.3特征融合
为了更好的将图像的局部特征和全局特征融合,如图 4-3 所示,本文在网络中添加 了一个残差块和一个平均池化模块,用来对图像的特征进行融合,将融合后的特征输入 到哈希层,生成二进制哈希码。
该部分包含7x7的卷积层、3x3的最大池化层、残差块以及特征细化网络。其中,选 取的残差块来源于ResNet网络,主要由一层3x3的卷积层、BatchNormal、ReLU组成,如 图 4-4 所示,使用了跳跃连接,解决梯度消失问题,从而便于网络加深。特征细化网络为一 个独立的网络结构,由 1 个残差块和 1 个 3x3 平均池化层组成,用于将关注的特征嵌入更 高层的语义中。
图 4-4 残差块结构
Figure 4-4 Residual block structure
4.2.4损失函数
一个好的损失函数对于网络的训练起着重要的作用,通过损失函数可以使网络参数 优化得更好,网络获取的特征也更加接近实际,对于图像检索同样重要,为了使图像得 到更好的哈希码,本文结合图像标签和对相似信息,我们将损失函数分为三部分:(1) 图像标签分类损失,(2)样本之间相似度损失,(3)量化损失,通过损失函数的设计能 够进一步保持二值哈希码之间的相似性。本章使用的损失函数可表示为:
第一部分是图像标签信息学习,为了使学到的哈希编码比较只有哈希编码,对图像 更有区分度,我们提出了把标签信息作为辅助哈希编码学习的一个思路,为了使哈希编 码与标签信息之间的误差更小。本文使用交叉熵损失。查阅文献,我们发现交叉熵损失 一般用于图像分类任务,同样也可以用于图像检索方面,使用交叉熵损失函数利用其标 签与特征进行学习,减少二进制码与标签对应图像之间的差距,通过不同样本分布的概 率对图像分类,学习交叉熵损失。
Lc(Y,H ) = L(Y,wcTH) (4-1)
其中Y是图片的标签集合,y】wY, wc w底曲是分类部分的权重,H=tanh(X),为分 类前的特征,h w H。
一般来说,对于单标签分类任务,即每个数据样本有且仅有一个类别,此时使用 Softmax 损失函数:
wiT hi
Lsoft max (” wCH)=玄 y: log 工 w场
如果一个图片样本包含多个标签,此时为多标签分类问题,在这种情况下使用交叉 熵损失函数,和 Softmax 损失函数类似,其定义如下:
<
1 e - wChj
log尹F +(1 - yi)log(i + e wTh)>
= ^{wThi -yiwThi + log(1 + e-也)} (4-3)
43
在样本之间的相似度学习方面,我们希望生成的哈希编码能最大程度的表达图像之 间的相似程度,具体来说就是,对于输入的两张图像之间越相似,对应生成的二进制哈 希编码之间的汉明距离也就越小,否则,便认为这两个图像不相似,它们生成的哈希编 码之间的汉明距离越大。当输入两个图像I,Ij,它们对应的哈希编码是b,bj,它们 之间的汉明距离可以这样表示:
Ld (Sij, b bj) = * (1 + Sj max(m -〈 b”, b\ ,0) +1(1 + Sj max(m +〈 b”, b、,0) ( 4-4)
两个哈希编码之间的内积越小,则表示它们之间的哈希值越接近,反之则不然。因 此我们可以用不同样本的内积来表示图像之间的相似程度。
基于成对的图像我们可以定义这样的一个似然函数: 上述公式表明,优化损失函数可以使两个相似图像之间的二进制哈希编码对应的汉 明距离应尽可能地小,相反不相似图像对应的二进制哈希编码汉明距离应尽可能地大, 这样设计才能符合我们的检索目标。
综合以上两个公式,损失函数可以写成:
L(Y, S, H) = Lc +aLd (4-5)
同时,也应该看到很多深度学习哈希检索算法中,直接将特征通过激活函数 sigmoid 或者 tanh 近似阈值化变为二进制编码,这种做法会造成信息丢失,直接将特征映射到 哈希空间,使得哈希编码不能完全表现图像信息。为了解决这一问题我们在是指网络 输出对特征正则化,使得网络输出的实数值接近哈希值。具体如下:
N
1 = min £|||b,|-比 (4-6)
” =1 1
公式(4.4)中的1表示整数向量,卜h表示向量/I范式。卜|表示绝对值运算。 因此我们得到最终的损失函数为:
loss = L(Y, S, H) + plx = lc +ald +/31、 (4-7)
在设计了网络结构和损失函数之后,我们使用反向传播来训练网络模型,根据损失 函数对网路进行优化训练。训练完成后,用sigmoid(・)对特征进行阈值化,公式如下:
44
11 b > 0 sigmoid (b)= <
[0 otherwise
4.3 实验与分析
4.3.1数据集
本实验采用ImageCLEF(Med)[51],数据根据身体器官的不同部位形成不同的类别, 如胸腔、脑、膝盖等,本研究使用的数据集共包含二十个类的不同器官图像,共 7157张 医学数据集,从每一个类中选取80%作为训练集, 20%作为测试集。所有图像被调整为 256*256,训练集和测试集不包含相同图像,训练时对数据进行了增强,即对于训练数据 的每一批图像,首先从该批图像中每一张进行随机翻转操作,然后从图像中随机裁剪 224*224的图像送到模型中进行训练。显示了数据集中部分示例图像。如图 4-4所示。
图4-5 ImageCIEF (med)数据集中的示例图像
Figure 4-5 Sample images in the ImageCIEF (med) dataset
4.3.2实验环境
本实验基于pytorch开发,实验训练环境表如表4-1所示。
45
表 4-1 实验训练环境表
Table 4-1 Configuration of the experimental environment system
项目 环境
CPU AMDRyzen75800H3.20GHz
GPU NVIDIAGeForceGTX1650Ti
硬件 内存 16G
显存 6GB
操作系统 Windows10
软件 python 3.6
pytorch 1.14.0
在训练的该模型时,我们用 ResNet50 在 ImageNet 上得到的权重来对模型前 14 层 的参数权重做初始化,模型的学习率为 10-6,批大小为 200,且迭代次数为 300。
4.3.3评价指标
通常情况下,评价一个图像检索算法的性能,需要综合多个方面,如有效性、可靠 性,检索速度等方面。在实际应用中,通常使用准确率、召回率、和平均准确率等指标 来评价图像的检索性.下面将介绍查准率、查全率和平均准确率等。
( 1 )查准率与查全率 查准率又称检索精度,表示检索结果中和查询图像相关的图像占检索结果的比例; 召回率表示检索结果中和查询图像相似的图像占图像库中与图像库所有相似图像的比 值。查准率(Precision)、查全率(Recall),计算公式如下:
Recall = —. (4-9)
A + C
Precision = -^ (4-10)
A+B
其中,A为系统检索到的相似图像数,B为系统所有返回显示的图像总数,C为图 像库所有相似的图像总数,P为查准率,R为召回率。
46
(2)平均准确率
平均准确率(Mean Average Precision, MAP)是用于评价算法检索性能好坏的重要 指标。在图像检索领域中被广泛的使用。当检索到的图像相似性越大,检索结果越好, 则 MAP 的值就会越大。
对单个查询点q,将平均精确度(AP)定义为公式4-11:
AP(q)=右災i 爲(r)&q(r) (4-11)
厶q
其中,Lq是查询点q在训练过程中的相似性数目,n是所有训练数据集的样本数量, Pq(r)表示检索结果中前r个的精确率,6q(r) = 1表示第r个检索属于真实近邻中,反 之,6q(r) = 0表示第r个检索不属于真实近邻中。
MAP为所有测试样本的AP的平均值,计算公式如式4-12所示:
MAP=1^^iAP(qi) (4-12)
由此可见, AP 结合了召回率和准确率两个方面的指标,可以表现出模型在某一个 类别中检索质量的好坏,而 MAP 是对所有类别的 AP 取平均值,可以看出模型在所有 类别中的平均表现。
综上所述,通过对检索算法的查准率、查全率和平均准确率等指标进行综合评价, 可以评估图像检索算法的性能,提高检索算法的准确率和效率。
4.3.4实验结果
在本文设定的ImageCLEF(Med)数据集上的实验在不同的哈希编码长度下进行实验。 本章选用了近年来出现的基于深度学习的哈希检索算法进行对比包括 CNNH[30]、 DPSH[33]、DSH[33]等,通过计算哈希方法的MAP,以此衡量各种哈希算法的性能。
为了提高图像检索的效率,通常只对汉明距离小于等于2的特征空间进行排序。由 于哈希码能起到了特征的表达精确度和复杂度。太长的哈希编码会增加计算时间,而太 短的哈希编码又不能表达特征的完整性,因此,本章采用四个长度的哈希编码进行式样, 依次是 12bits、 24bits、 36bits、 48bits。
本章采用的方法在ImageCLEF(Med)数据集上在12bits、24bits、36bits、48bits长度
47
下进行实验,取得了很好的结果,优于其他深度学习方法。 其中,表 4-2 表示有无哈希 层在ImageCLEF(Med)数据集上的准确率。
表 4-2 有无哈希层在 ImageCLEF(Med) 数据集下的准确率 MAP(%) 值
Table 4-2 Accuracy MAP(%) value of Image CLEF (Med) with or without hash layer
方法 16bit 32bit 48bit 64bit
有哈希层 0.845 0.882 0.850 0.850
无哈希层 0.673 0.693 0.672 0.673
由表 4-2 可知,有哈希层的准确率明显比无哈希层的准确率高,由此可以看出哈 希层对于图像检索的准确率具有极大的提高。当哈希编码为 32 时,实验结果达到最 优。
表4-3不同方法不同编码长度MAP (%)值
Table 4-3 MAP (%) values of different encoding lengths by different methods
Method 16bit 32bit 48bit 64bit
LSH[26] 0.423 0.636 0.424 0.624
CNNH[28] 0.469 0.685 0.470 0.472
DPSH[30] 0.673 0.685 0.672 0.672
DSH[33] 0.713 0.727 0.714 0.715
Ours 0.853 0.885 0.850 0.850
由表 4-3 可以看出本文的方法要比 DSH、CNNH 和 DPSH 这些主流的深度哈希方
法准确率要高。证明了方法的可行性。本文方法在哈希编码为 32bit 时,准确率最高。 检索结果如 4-6 图所示。
检索图像 检索结果
图 4-6 检索结果图
Figure 4-6 Search results
48
此外,如图 4-7 所示为不同哈希方法的查准率和召回率的关系图。由图可以得出,
本章提出的构建哈希方法比DPSH, CNNH等其他哈希方法的检索精度都要高,从而证
4.4本章小结
本章提出了一种基于深度哈希卷积神经网络的医学图像检索方法。通过搭建深度哈 希卷积神经网络模型,充分利用深度学习强大的特征学习能力,以 ResNet50 为主干网 络迁移学习,采用图像成对损失和交叉熵损失函数联合作为损失函数,将空间注意力模 块加入到卷积神经网络中来提取医学影像更复杂的数据信息,更好地提取到图像的细节 特征,在医学图像数据集上采用批量随机梯度下降方法对模型参数进行优化,利用医学 影像的标签信息和图像对信息,使同类图像产生相近的二进制哈希编码,使不同类的图 像产生较远的哈希编码,最终产生适合于医学图像检索的深度哈希编码模型。在医学影 像数据集上进行了验证实验,通过一系列对比实验结果的分析,验证了本章提出的医学 图像检索方法的可行性。
49
5医学影像检索系统的设计与实现
5.1 引言
第四章实现了基于深度学习的医学影像检索,提升了医学图像检索的准确率,最终 获得不错的检索结果。为了更好地利用本文的检索模型,本章依据第四章的医学影像检 索研究了基于框架 Flask 医学影像检索系统。医学影像检索系统的设计结合了 MVC 三 层架构,前端使用HTML和CSS设计,后端使用Flask的web框架来设计,并且系统 设计需求、设计系统,并且实现该系统,实现对医学影像的检索,在数据库上检索出需 要的医学图像。
5.2 系统需求分析
5.2.1 系统目的
本系统主要是辅助医生对病人疾病的诊断。医学检测设备产生大量的医学影像,医 学影像中含有疾病的重要信息,所以如何高效地利用医学图像,快速找到与以往病例相 似的病例,这对于医生诊断病情有着极大的作用。本章以深度学习的医学影像检索算法 为基础,设计web端来提供服务,让深度学习医学影像模型得到充分的应用。
5.2.2 功能需求分析
系统主要包括图像上传和图像检索等功能,用户启动 Flask 后台服务后自动在浏览 器上弹出图像上传界面,上传图像,系统调用加载模型对图像进行特征提取,然后把图 像特征与图像数据集里的图像特征相对比,返回检索结果。
51
5.2.3系统模块划分
根据系统的需求分析,依据第四章的图像检索算法,图像检索系统分为两部分,分 别是:用户管理模块、图像检索模块。用户管理模块用于图像管理和用户管理,图像检 索模块管理用于图像检索的主要模块,包括数据预处理、特征提取、提取哈希码和相似 性度量。
图 5-1 系统模块设计图
Figure 5-1 System module design
5.2.4数据库设计
根据本系统的需求和功能要求,系统中的数据表主要包括用户信息表、图像数据信 息表。图像数据信息表用于存储图像信息包括图像类型、图像名称、图像大小,如表 51 图像数据表所示,用户信息表用于存储用户信息包括用户名、密码等如表 5-2 用户数 据表所示。
52
表 5-1 图像数据表
Table 5-1 Image data table
序号 字段 数据类型 是否为空 说明
1 id int No 图像 ID
2 Type varchar yes 图像类型
3 Name varchar yes 图像名称
4 filepath varchar yes 图像路径
5 Size varchar yes 图像大小
表 5-2 用户数据表
Table 5-2 User data table
序号 字段 数据类型 是否为空 说明
1 Id int no 用户 id
2 nane varchar yes 用户名
3 password varchar yes 密码
5.2.5图像检索模块
该模块为检索系统的核心,第四章提出了图像检索算法为该模块提供了方法。主要 过程分为数据预处理、特征提取、提取哈希码、相似性度量,其中,数据预处理模块选 取了 Pytorch 中的图像预处理包 torchvision.transforms 对图像数据进行预处理。特征提取 模块使用第四章的深度哈希图像检索网络提取特征并且生成哈希码。相似性度量通过计 算图像之间的汉明距离来衡量图像之间的相似度,并进行从小到大的排序。图像检索过 程,如图 5-2 所示:
53
图 5-2 图像检索过程
Figure 5-2 Process of image retrieval
5.3系统实现
基于第四章提出的医学影像检索算法搭建了医学影像检索系统,图像检索流程图如 图 5-3 所示。系统以图像检索算法为基础,通过离线和在线阶段分离的形式进行设计。
在线下阶段,首先对图像进行预处理,然后利用本文第四章训练的模型,对数据集 中所有图像的特征进行提取,之后对特征保存,并建立特征数据库。按照第四章所述的 方法,将所得到的特征进行融合,然后将其输入到深度哈希模型,并输出相应的二进制 哈希码,最终将该哈希码写入到相应的数据库中。
在线阶段,以用户提交的图片为输入,通过深度哈希算法,生成哈希码,并将其标 记为新图片。最后,根据哈希码间的相似性,得到相应的查询结果。
54
图 5-3 图像检索流程图
Figure 5-3 Flowchart of image retrieval
5.4开发环境与结果展示
5.4.1开发环境
本章系统使用Python语言开发,采用Flask框架进行框架设计,采用MySQL数据 库存储用户信息和医学影像信息。该系统根据现有的医学影像,使用第四章提出的基于 深度哈希的医学影像检索算法进行检索。本文主要介绍 Flask。
Flask是Python的一种开发框架,它是开源免费的,支持各种操作系统。Python除 了 Flask还有Django和Tornado,这些框架都是目前主流的Python Web编程框架。相比 于其他两种框架,Flask,它更加简洁灵活的同时还容易扩展。
55
Flask 可以利用 Flask-SQLALchemy 实现 ORM 框架的扩展。几乎不用写 SQL 语句 让开发者不用直接操作数据库,SQLALchemy实际上是一个对数据库操作的对象,通过 Python 对象来操作数据库,并且支持多种类型的数据库,使用方便等特点。
5.4.2结果展示
检索结果
Figure 5-5 Search results
5.5本章小结
本章主要介绍了医学影像检索系统的设计,首先对用户的需求进行分析并介绍了实 现该系统的模块。然后介绍了开发环境和需要用到的相关技术,并对系统的功能模块进 行分析设计,然后介绍了系统的实现流程和数据库的设计,最后显示检索系统结果。
56
6总结与展望
医学影像分析对临床诊断和科学研究都有着很大的意义,对海量的医学影像存储和 快速检索的性能要求越来越高。本文对医学影像存储和检索进行了深入的研究,主要讨 论了基于医学影像的对象存储,基于深度哈希的医学影像检索。本章对本文的研究内容 进行全文总结,并对下一步的工作内容进行展望。
6.1 总结
在存储方面,传统的单点存储方式已渐渐不能满足需求;在检索方面,对于图像数 据量不断增加,在海量数据中进行指定信息的快速检索越来越困难。针对这些存在的问 题,本文分析研究了传统的存储方式和现有的存储方式,基于对象存储在存储方面表现 出来的巨大优势,使用 minio 对象存储设计一个海量影像的存储系统对医学影像进行存 储。
在检索方面,为了更好地使用医学影像数据,发挥医学影像的作用,提出了基于一 个医学影像检索方法,查阅相关研究文献后发现,深度学习可以很好的对图像提取特征, 所以使用深度学习对图像提取特征,同时为了提高检索效率,将网络结构生成的高维度 图像向量通过哈希映射,生成哈希码。通过实验论证了本文提出的算法在图像检索的准 确性和高效性。
本文主要研究医学影像的存储与检索:
(1)详细介绍了医学影像在存储和检索方面的研究背景和意义.
在存储方面,有块存储,文件存储和对象存储,分析不同存储的优缺点,发现对象 存储在存储时间和存储性能上要优于块存储和文件存储,重点介绍了对象存储,查阅资 料分析对象存储的国内外研究现状,最后确定对医学影像的存储研究思路,利用对象存 储对医学图像存储。
在检索方面,介绍了传统的图像检索方式,基于文本检索和基于内容检索,查阅文 献比较两种检索方式的优缺点以及基于内容的图像检索的两个重点,特征提取和相似度
57
度量,分析国内外研究现状,深度学习在特征提取上表现出很大的优势,结合医学影像 的特点和发展现状,并对研究现状以及深度学习在医学影像研究上的应用进行了必要的 分析和总结;最后确定了深度学习的研究思路。利用深度学习提取特征,利用哈希方法 完成检索。
(2)对于存储的相关技术,详细介绍了对象存储,包括对象存储的组成,经典的分 布式对象存储以及存储中的纠删码用于节点负载均衡,保证数据的高可用;对于医学影 像检索的相关技术,详细介绍了医学影像检索框架,对于其中涉及到的相似性度量,和 图像检索的评价指标也做了介绍,接着介绍了深度学习中的卷积神经网络,和度量学习 等相关理论。
(3)对于医学影像存储,本文提出分布式对象存储技术的方法用于医学影像存储。 为了解决以往研究中存储节点故障,数据丢失等问题,我们采用负载均衡机制冗余恢复 技术,恢复数据,保证了数据的高可用性和高可靠性,使数据不会轻易丢失。
(4)对于医学影像检索,本文提出一种基于深度哈希算法的医学影像检索方法。由 于深度学习在提取特征方面的优异性能,以及在大规模图像检索中利用二进制哈希编码 提升检索效率,将哈希算法整合到卷积神经网络中实现端到端的图像检索。首先将注意 力机制与 ResNet50 整合,提取到图像的多尺度区域特征,可以将不同层卷积输出的图 像特征进行融合,不仅获取细节信息,也获得了语义信息,避免了网络从底层到高层的 特征学习,特征信息丢失,然后在网络的最后把全连接层变成哈希层,这样特征学习和 哈希算法就融入到同一个网络,利用标签信息和图像的成对相似度信息训练网络,哈希 码损失和分类损失作为该网络的损失函数,使得哈希码之间保持更好的语义相似性,提 升检索性能。
6.2展望
对于存储,本文通过研究提出了对象存储技术存储医学影像,并且基于该技术设计 完成了医学影像存储系统;对于检索本文提出了基于深度哈希的医学影像检索算法,并 基于该算法设计,第五章完成了医学影像检索系统。但本文仍有许多的提升空间。
58
本文第三章的 MOSS 基本功能已经实现,还有一些尚未考虑的因素:(1)频繁地写 入文件浪费系统的性能,当频繁地存取数据时会极大地影响该系统的性能,造成资源浪 费。(2)分布式节点少,难以应用于大文件存储。(3)未考虑其安全性能,当有错误数 据输入时,未返回提示。
因此,未来的研究可以考虑对象存储系统的安全性能,对其进行边缘检测,黑盒测 试,当大文件输入时,受限于节点的内存较小,难以不能存储大文件,增加防止频繁访 问的机制,避免系统资源被浪费。
对于医学影像检索,本文采用密集网络来提取丰富的特征信息,可能还有其他网络 的提取能力比密集网络的要好,然而,该检索算法对于部分图像的检索效果还差强人意, 所以有待于进一步研究,因此,从以下几方面完善改进:
(1)纹理过于复杂的图像,检索准确率仍然比较低,需要优化算法,提高准确率来 克服背景复杂这一难题。
(2)本文采用了成对图像对比的方式进行数据,图像检索比较依赖图像的标签信 息,下一步可以考虑不使用标签信息图像检索。
59
参考文献
[1]云影像技术应用与思考J].沈伟富;徐旭;何炜;何必仕;徐哲.医学信息学杂志,2018(03)
[2]互联网云平台影像存储与传输系统在区域医疗中的应用J].马如慧.医学信息学杂
志,2017(05)
[3]医学影像服务云建设构想J].沈明辉;杨娟;万绍平;雍正平;龙虎;丁智刚;江顺权;吴结凤;
付鹏.医学信息学杂志,2018(10)
[4]云计算技术在医学影像计算领域的应用J].唐辰.电子技术与软件工程,2020(20)
⑸云计算环境下的分布存储关键技术J].王意洁;孙伟东;周松;裴晓强;李小勇.软件学 报,2012(04)
[6]一种面向高性能计算的分布式对象存储系统J].陈曦;朱建涛;何晓斌.计算机工
程,2017(08)
[7]一种海量小文件对象存储优化方案J].屠雪真;黄震江.计算机技术与发展,2019(08)
[8]分布式对象存储系统中元数据服务器选择策略研究J].单颖;姚念民.武汉理工大学学
报,2011(07)
[9]面向强一致性的分布式对象存储的I/O并行性优化J].史骁;宋永浩;郑晓辉;唐宏伟;于
雷;赵晓芳.高技术通讯,2020(02)
[10]医院云影像信息系统的应用研究[J].吴斌;黄慧萌;戴慧敏;沈默.信息与电脑(理论 版),2020(18)
[11]三种海量医学图像存储技术对比分析J].高杰诚;杨媛媛.中国医疗器械杂志,2021(04)
[12 ]崔少国,熊舒羽,刘畅,等.基于深度哈希卷积神经网络的医学图像检索J].重庆理工大 学报(自然科学版),2020,34(8):134-142.D0I:10.3969/j.issn.1674-8425(z).2020.08.020.
[13]管安娜,刘骊,付晓东,等.面向大规模胸片图像的深度哈希检索J].中国图象图形学 报,2023,28(2):601-612.
[14]郝瑞,秦亚雪,甄俊平,等.基于深度哈希网络的肺结节CT相似图像检索方法研究J].中 山大学学报(医学科学版),2022,43(4):667-674.DOI:10.13471/j.cnki.j.sun.yat-
61
sen.univ(med.sci).2022.0419.
[15]毛亚青,王亮,胡俊峰.基于加权深度特征的医学图像并行检索仿真[J].计算机仿 真,2021,38(11):438-444.DOI:10.3969/j.issn.1006-9348.2021.11.087.
[16]杨锋,魏国辉,曹慧,等.基于内容的医学图像检索研究进展[J].激光与光电子学进 展,2020,57(6):30-42.DOI:10.3788/LOP57.060003.
[17]白娟.基于深度学习的图像检索技术应用[J].无线互联科技,2022,19(13):120- 122.DOI:10.3969/j.issn.1672-6944.2022.13.037.
[18]郑钰山,姜志国.组织病理图像检索及其癌症辅助诊断方法概述[J].中国体视学与图像 分析,2019,24(4):287-297.D0I:10.13505/j.1007-1482.2019.24.04.001.
[19 ]何悦,陈广胜,景维鹏,等.基于深度多相似性哈希方法的遥感图像检索[J].计算机工 程,2023,49(2):206-212.D0I:10.19678/j.issn.1000-3428.0064827.
[20]王汉,王兵,李悦,等.基于R树的图像检索方法[J].计算机与现代化,2011(01):107-109.
[21]杜振鹏, 李德华. 基于 KD-Tree 搜索和 SURF 特征的图像匹配算法研究 [J]. 计算 机与数字 工程, 2012, 40(2).
[22]Indyk P, Motwani R. Approximate nearest neighbors: towards removing the curse of dimensionality [C]//Proceedings of the thirtieth annual ACM symposium on Theory of computing. ACM, 1998: 604-613.
[23]Andoni A, Indyk P. Near-Optimal Hashing Algorithms for Approximate Nearest Neighbor in High Dimensions[C]//IEEE Symposium on Foundations of Computer Science, 2006: 459-468.
[24]Gong Y, Lazebnik S, Gordo A, et al. Iterative quantization: A procrustean approach to learning binary codes for large-scale image retrieval[J]. IEEE transactions on pattern analysis and machine intelligence, 2012, 35(12): 2916-2929.
[25]Kulis, Brian, and Kristen Grauman. "Kernelized locality-sensitive hashing for scalable image search." 2009 IEEE 12th international conference on computer vision. IEEE, 2009
[26]Slaney, Malcolm, and Michael Casey. "Locality-sensitive hashing for finding nearest neighbors [lecture notes]." IEEE Signal processing magazine 25.2 (2008): 128-131.
62
[27]Yang H. F., Lin K., Chen C. S. Supervised learning of semantics-preserving hash via deep convolutional neural networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 40(2): 437-451.
[28]Xia Rongkai, Pan Yan, Lai Hanjiang, et al. Supervised hashing for image retrieval via image representation learning[C]//Proceedings of the AAAI Conference on Artificial Intelligence. Quebec City, Canada: AAAI Press, 2014: 2156-2162.
[29]H. Lai, Y. Pan, Ye Liu and S. Yan, "Simultaneous feature learning and hash coding with deep neural networks," 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Boston, MA, USA, 2015, pp. 3270-3278, doi: 10.1109/CVPR.2015.7298947.
[30]Li Wujun, Wang Sheng, Kang Wangcheng. Feature learning based deep supervised hashing with pairwise labels[C]//Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence. New York City, USA: 2016: 1711-1717Dimov D T. Rapid and Reliable Content Based Image Retrieval[J]. nato asi, 2022.
[31]H. Liu, R. Wang, S. Shan and X. Chen, "Deep Supervised Hashing for Fast Image Retrieval," 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA, 2016, pp. 2064-2072, doi: 10.1109/CVPR.2016.227.
[32]Rhrich S, Heidinger B H, Prayer F, et al. Impact of a content-based image retrieval system on the interpretation of chest CTs of patients with diffuse parenchymal lung disease[J]. European radiology, 2023, 33(1):360-367.
[33]Zhang Z, Zhu X, Lu G, et al. Probability Ordinal-Preserving Semantic Hashing for Large- Scale Image Retrieval[J]. ACM Transactions on Knowledge Discovery from Data (TKDD), 2021.
[34]Iii R I B, Harvill L Y, Bean R H. Tiling Process For Digital Image Retrieval: CA, CA2845911 A1[P]. 112.
[35]Wei W, Qiu S, Zhang Y, et al. ERP prototypical matching net: a meta-learning method for zero-calibration RSVP-based image retrieval[J]. 2022.
63
[36]Kameyama K, Kim S N, Toraichi K, et al. Content-Based Image Retrieval of Kaou Images by Region Characterization and Probabilistic RelaxationJ]. 2022.
[37]Zachariah A G, Gharibi M, Rao P. A Large-Scale Image Retrieval System for Everyday ScenesJ]. ACM, 2021.
[38]彭棉珠.图像自动标注及其在图像检索上的应用研究[J].网络安全技术与应用, 2023(1):2.
[39]杨锋,陈雷,邢蒙蒙.基于Faster R-CNN的图像检索手腕骨折分类研究J].中国医疗 设备,2023, 38(2):7.
[40 ]朱媛媛,王佳婧,王笑梅.一种基于CBAM-ResNet50纸币图像检索方法:, CN115661427A[P]. 2023.
[41]俸萍,陈震海,张瀚匀.基于视觉显著和CNN的花卉图像检索软件[J].信息技术,2022, 46(1):6.
[42]Xiang S Z, Huang T S. Relevance feedback in image retrieval: A comprehensive reviewJ]. Multimedia Systems, 2003, 8(6):536-544.
[43]Jing F, Li M, Zhang H J, et al. An efficient and effective region-based image retrieval framework[J]. IEEE Trans Image Process, 2004, 13(5):699-709.
[44]Gordo A, Almazan, Jon, Revaud J, et al. End-to-End Learning of Deep Visual Representations for Image RetrievalJ]. International Journal of Computer Vision, 2017.
[45]Vogel J, Schiele B. Semantic Modeling of Natural Scenes for Content-Based Image RetrievalJ]. International Journal of Computer Vision, 2007, 72(2):133-157.
[46]Zhang R, Lin L, Zhang R, et al. Bit-Scalable Deep Hashing with Regularized Similarity Learning for Image Retrieval and Person Re-identification[J]. IEEE Transactions on Image Processing, 2015, 24(12):4766-4779.
[47]Liu G H, Lei Z, Hou Y K, et al. Image retrieval based on multi-texton histogram [J]. Pattern Recognition, 2010, 43(7):2380-2389.
[48]TieuKinh, ViolaPaul. Boosting Image Retrieval: Special Issue on Content-Based Image RetrievalJ]. International Journal of Computer Vision, 2004.
64
[49]Ceyhun Burak Akgul, Rubin D L, Napel S, et al. Content-Based Image Retrieval in Radiology: Current Status and Future Directions[J]. Journal of Digital Imaging, 2011, 24(2):208-222.
[50]Rui M, Cheng H D. Effective image retrieval using dominant color descriptor and fuzzy support vector machine[J]. Pattern Recognition, 2009, 42(1):147-157.
[51]ImageCLEF(Med):https://www.imageclef.org/
[52]A novel HBase data storage in wireless sensor networks[J]. Xiang Li;;Zhuo Li;;Xirong Ma;;Can Liu.EURASIP Journal on Wireless Communications and Networking,2017(1)