面向医疗图像协同分析的系统模型及访问控制
2022-08-16刘同来章子凯武继刚
刘同来,章子凯,武继刚+
1.广东工业大学 计算机学院,广州510006
2.北京交通大学 电子信息工程学院,北京100044
随着数字化医疗和机器学习的发展,越来越多的电子健康系统受到学术界和产业界的青睐。由于数字化的特性,大量的医疗数据需电子化存储并通过云平台共享,以获得更高质量和更广泛的应用。医疗图像分析过程通常以医生或专家识别为主,但易造成视觉疲劳,从而导致识别准确率降低。深度学习算法,特别是卷积神经网络,具有自动学习更精准的特征,可提高分类准确性的能力。因此,其已经迅速成为分析医学图像的研究热点。然而,图像数据量会影响模型训练精度,且现实中也很难将所有医院所有图像都集中在一起。为了进一步提升分类精度,学者们提出了协同深度学习并应用在医疗图像分析中。然而,在这些拥有独立私有云的医疗图像数据处理系统中,若未有任何访问控制策略,用户的数据极易暴露给非法用户。访问控制通过一套访问规则,可保证授权用户访问资源,未经授权的用户无法访问,从而很好地解决数据安全和隐私泄漏的问题。
目前,现有工作已将深度学习或协同深度学习算法应用于医疗图像分析。在深度学习方面,例如,文献[5]提出了一种基于特征传递网络和局部背景抑制的微动脉瘤检测方法;文献[6]提出了一种反卷积神经网络准确区分微动脉瘤和非微动脉瘤;文献[7]利用形态学的开闭操作来消除孤立的噪声点。此外,还将图像尺寸的归一化方法应用于训练集和测试集的构建。协同深度学习方面,例如,在胸部CT上准确识别肺恶性结节,文献[8]提出了一种基于多视角知识的协同深度学习模型,利用有限的胸部CT数据来分离恶性结节和良性结节;基于两个协作深度学习网络,文献[9]提出了一种基于关节卷积神经网络模型的肩关节图像自动分割算法,该算法能够准确分割肩关节图像中的肩关节盂和肱骨头;文献[10]在医疗健康协作深度学习中提出了分割学习的方法。然而,现有关于深度学习和协同深度学习算法的工作偏重于模型的设计,未同时考虑数据清洗和分类的协同,这将导致数据质量不高。此外,还存在个人隐私泄漏和数据安全保护问题。
为了保证医疗数据的安全和隐私,学者们已经提出了多种访问控制方法。例如,在医疗图像传输中,文献[11]提出了一种采用两层方法的分层访问控制方案。Choi 等人提出了基于风险的访问控制模型,动态决定访问权限。流行的访问控制模型有基于角色的访问控制(role-based access control,RBAC)、基于属性的访问控制(attribute-based access control,ABAC)、基于区块链的访问控制(blockchain-based access control,BBAC)。其中,RBAC利用用户的角色来定义安全策略,该策略通常与用户的作业相关联,其在医院信息系统(hospital information system,HIS)中被广泛使用。Jin 等人提出了基于角色的云基础设施即服务访问控制。为了实现良好的细粒度访问控制,Xue 等人提出了基于属性的协同访问控制(attribute-based controlled collaborative access control,
ABCCC)模型,其中数据所有者指定选定的用户进行协作访问。在文献[15]中,基于属性的细粒度访问控制加密被设计成用属性集标记密文。由于区块链的去中心化和不可篡改特点,区块链成为解决电子病历互操作性和安全性问题的一种很有前景的解决方案。在医疗信息系统中,一些现有工作提出了基于区块链的访问控制方法。文献[17]提出了一个可扩展的、健壮性高的系统,其中包含了区块链技术进行访问控制。它使用了一种离散小波变换技术来增强安全性。Omar等人使用区块链进行患者医疗保健的安全隐私存储,解决了在存储加密数据时失控的问题。然而,对于RBAC,很多工作忽视了属性级别的细粒度访问特点。对于BBAC,很多工作忽视了轻量级访问的特点。因此,他们方案的性能和可伸缩性受到计算密集型共识机制的限制。
本文提出了两种避免未经授权访问医疗数据的访问控制方案,包括改进的基于角色的访问控制(RAC)方案和基于区块链的访问控制方案(BAC)。RAC 是基于角色优先级划分的,具有来自功能权限和数据权限的属性级约束,可以禁止非法用户访问HIS。分布式网络体系结构中,BAC 使用了区块链技术,可避免可信第三方权威机构的参与。其访问控制策略使用轻量级无证书公钥加密算法来保护医疗数据的隐私和安全,并且减少了数据传输量。由于HIS 大部分功能通常在局域网中使用,它比在广域网中使用的其他系统更安全,并且带宽更加充足。因此本文在面向局域网使用系统功能部分使用基于角色的访问控制方案,在面向广域网使用系统功能部分使用基于区块链的轻量级访问控制方案。
本文的主要贡献如下:
(1)提出了面向医疗图像协同分析的系统模型。该模型中,医疗图像在私有云本地进行清洗,高性能的清洗模型参数通过区块链共享给其他私有云。清洗后的高质量图像传递给分类模型,模型参数通过API 网关安全地上传至公有云,并由公有云加权平均得到新的全局模型,全局模型再被下发给各私有云。该过程面向协同机器学习时,不需要将图像上传至公有云,降低了数据传输量,保护了私有云身份、权限和模型参数的安全,并实现更加准确的病变分类。
(2)改进了基于角色的访问控制方案RAC。改进后的方案能够灵活动态地同时向角色授予功能权限和数据访问权限,同时还考虑了属性,实现细粒度访问控制。
(3)提出了一种基于区块链的访问控制方案BAC,通过基于椭圆曲线密码的轻量级无证书公钥密码体制来保护身份、权限和模型参数的安全。随机选择一个联盟节点作为密钥生成中心,不需要可信第三方的参与。
1 系统模型
为了保障患者的医疗数据安全和系统的模型参数安全的同时,提高病变分类准确率,本文提出医疗图像协同分析的系统模型。
1.1 医疗图像协同分析的系统模型
本文设计的医疗图像协同分析的系统模型如图1 所示,包括数据清洗和病变分类两个阶段。数据清洗阶段从联盟链CBD(consortium blockchain for data cleaning)上获取私有云提供的清洗效果最好的模型参数(每个私有云都将自己的模型通过CBD 共享),用于识别出低质量图像,不再将低质图像传递到病变分类阶段。病变分类阶段主要使用经过数据清洗得到的高质量图像进行训练和分类,并将模型参数通过API(application programming interface)网关安全传递给公有云。公有云收集各私有云模型参数,并通过加权平均的方式得到全局模型,进而将全局模型分享给各私有云。私有云向公有云请求服务时,API 网关借助联盟链CBC(consortium blockchain for classification)对私有云进行身份认证和访问控制,避免非法用户访问公有云。
图1 医疗图像协同分析系统模型Fig.1 System model for medical image collaborative analysis
为了数据安全,医生、私有云和公有云之间的数据只有在身份验证通过后方可进行交换。因此,本文设计了两种访问控制方案,一种是改进基于角色的访问控制方案(RAC),另一种是基于联盟链的访问控制方案(BAC)。在RAC 中,考虑了功能权限和数据权限。把一所医院看作一个私有云。对于每个私有云,RAC 确保只有合法用户才能使用授权的软件功能并访问HIS 中的授权数据集,实现数据清洗和病变分类。在BAC 中,公有云以API 的形式对外提供服务。每个私有云都通过API 网关与公有云交换数据。API 网关是私有云和公有云之间的通道路由器。此外,它还是一个负载均衡器,甚至是授权和访问管理器。在传统的信息系统中,客户端可以在第三方授权机构授予权限的情况下访问数据。本文方案中,私有云可以通过API 网关中的BAC 直接从公有云请求数据,同时验证私有云的身份和权限。RAC和BAC 都可以保护数据的安全性和私密性,同时降低了设置授权权限和验证有效用户的复杂性。此外,在私有云节点和API 网关节点上部署了两个联盟链,以保护数据安全和隐私。第一个是在数据清洗阶段保存深度学习模型的联盟链(CBD)。第二个是在分类阶段保存日志、私有云身份和权限的联盟链(CBC)。
1.2 数据清洗
数据清洗架构如图2所示。每个私有云都有一个基于关系数据库(如Oracle)的HIS 集群。同时,本文构建一个卷积神经网络(convolutional neural network,CNN)模型对私有云中的医疗图像进行清洗,并用联盟链保存深度学习模型。HIS 是一个由一系列信息系统组成的综合性信息平台。它涉及医院的行政、财务和临床管理等方面。此外,最重要的一点是只有经过授权的用户才能访问HIS 中的数据。目前,大多数信息系统采用的传统的基于角色的权限控制方案,因此,使用RAC 方案,并进行改进,使其更加灵活、动态,并且实现细粒度控制。
图2 数据清洗的架构Fig.2 Architecture for data cleaning
在该方案中,授权医生可以使用HIS 将所有加密的医疗图像上传到相应的私有云进行数据清洗。深度学习模型将低质量图像的结果返回给相应的医生,以方便医生重新采集图像。每个私有云作为一个节点加入联盟区块链。每个节点都将更新后的模型写入区块链。为了提高模型的学习能力,私有云选择模型时采取“迭代择优”策略,当前节点总是从CBD 上获取清洗性能最好的模型。
数据清洗过程描述如下:
医生扫描的所有图像加密后通过HIS 上传到私有云;
利用深度学习模型对低质量图像进行清洗;
高质量图像将传递给下一阶段进行病变分类,低质量的图像返回给医生,并在HIS 中提醒医生;
将更新后的深度学习模型重新写入联盟链CBD 上;
当前节点读取并使用CBD 上数据清洗性能最好的模型。
1.3 病变分类
病变分类架构如图3 所示。一方面,私有云在此阶段提供病变分类功能;另一方面,私有云与公有云之间通过REST API 进行数据交换。REST API 可以通过提供许多有用且强大的特性轻松地扩展系统的使用范围。根据区块链的特点,私有云可以访问公有云中的数据,而不需要可信第三方的身份验证。私有云接入时即被分配适当的API 权限,当其向公有云请求服务时,API 网关同时验证其身份和权限。这里构造了一条用于访问控制的联盟链(CBC)。私有云加入到联盟区块链网络时或更新公钥时,将公钥信息上链,而不再全网广播,减少网络通信量。私有云可以从区块链读取数据,也可以向区块链写入数据,而API网关只能从区块链读取数据。
图3 病变分类的架构Fig.3 Architecture for lesion classification
私有云将模型参数上传至公有云时,使用无证书加密算法封装身份、权限、模型参数,API 网关利用CBC 进行身份认证和权限识别,公有云汇聚各私有云的模型参数后,进行加权平均处理,得到新的全局模型,再将其下发给各私有云。
1.4 用于清洗和分类的深度学习
临床上医疗图像的质量参差不齐,低质量的彩色眼底图像主要存在对比度低、过度曝光以及图像中包含噪声等问题。这些低质量图像大大增加了眼科医生的诊断难度,甚至无法分辨DR(diabetic retinopathy)早期的病变类型,如出血点和硬性渗出物等。同时,在利用计算机技术自动检测DR 病变时,低质量的彩色眼底图像会对检测模型的训练过程造成极大干扰,从而无法训练出精确检测病变的模型。因此,在数据清洗阶段将这些低质量图像剔除,可以大大提升模型检测的效果。本文利用CNN 模型对低质量图像进行检测,该模型结构如图4 所示,模型参数如表1所示。本文使用文献[20]中的模型对眼底图像中的出血点和硬性渗出物进行检测,检测效果优于大部分已有的方法。
图4 数据清洗模型Fig.4 Model of data cleaning
表1 数据清洗模型参数Table 1 Model parameters of data cleaning
2 访问控制方案
2.1 改进基于角色的访问控制
本文改进基于角色的访问控制RAC 方案首先考虑角色的优先级,然后考虑属性。它通过同时向角色授予操作权限和数据访问权限来实现细粒度访问。设置访问控制策略有两种方式:一种提供高效、方便的设置,属于静态数据权限设置;另一种提供灵活的动态设置,属于基于属性的动态数据权限设置。管理员可以根据规则编写表达式来实现数据访问控制。在高优先级下,允许基于属性的数据权限设置保持为空。基于属性的动态数据权限是在有效约束下执行的。医生使用HIS 管理员分配的用户名和密码通过中央认证服务(central authentication service,CAS)的单点登录(single sign on,SSO)方式登录系统。医生的身份通过CAS 服务器的HTTPS 请求验证。通过后,系统根据角色动态加载医生的功能模块(菜单)。医生拥有多个角色,且该权限可被多个角色的权限重叠。这个过程由服务器执行,服务器计算权限并通过HTTPS 将模块传输给客户端。一旦医生使用了指定的页面,服务器就可以验证他的操作权限和数据权限,并将它们存储在一个会话中,这样可以降低通信和计算成本。
下面给出描述RAC 模型的一些定义。
(RAC 模型)RAC 模型由以下组件组成:
(1)、、P、P、分别表示用户、角色、操作权限、数据权限和对象的集合。
(2)⊆{(p,p,)|P∧p∈P∧∈}表示权限的集合。
(3)~、~、~、~分别表示用户-角色、用户-会话、会话-角色之间的关系。
(4)~⊆×表示一个用户和角色之间多对多的关系。
(5)~⊆×表示一个权限与角色之间多对多的关系。
(6)ROP=(,,p)表示操作权限分配功能,即对于对象,角色拥有权限p。
(7)ROP=(,,p)表示操作权限分配功能,即对于对象,角色拥有权限p。
()表示一个对象的权限代码,由0 和1 构成 的字符串,0 表示未授权,1 表示授权。
((1,2))功能用来对参数1 和2 执行按位“与”操作。
((1,2))功能用来对参数1 和2 执行按位“或”操作。
((1,2))功能用来从参数1 和2 执行取小值操作。
(属性)属性指一个对象的特征,用二元组<名称,值>表示。
(属性表达式,AE)属性表达式是一个三元组<名称,操作,值>。操作集合为{>,≥,<,≤,=,≠}。
(权限表达式,PE)权限表达式是一个PCode和属性表达式的组合。
会话约束由CAS 提供,CAS 还用于验证用户的身份。如果用户被授权,则将用户信息(包括角色信息)返回给HIS 中相应的子系统。然后系统根据操作权限加载对象,即系统模块。权限由静态数据权限(以p表示)和基于属性的动态数据权限(以p表示)决定。对于对象和角色,用户的权限=(,,)计算如下:
其中,||表示连接操作。
对于对象拥有例如、两个角色,其ROP计算如下:
其中,()表示属于对象,(())表示多属性表达式之间的逻辑操作(,,)。接着便能得到对象的操作权限和数据权限PE。
RAC 中,一个系统模块视为一个对象,CRUD 操作(创建、检索、更新和删除)在关系数据库中执行。数据访问权限与角色的工作职责相关联。表2 中设置了4 个数据访问级别,并进行了编码,包括个人级别、组级别、科室级别和医院级别。个人级别意味着用户可以访问自己创建的记录。部门级别意味着用户可以访问同部门中所有成员创建的记录。表3 列出角色和针对对象、、的访问控制策略。对于和,操作权限是“1010”表示用户具有创建的权限,不具有检索的权限,具有更新的权限,不具有删除的权限。假设某用户拥有角色和,那么针对对象,这个用户拥有的操作权限是“1010 AND 1110”,即“1010”。该用户对应静态的数据访问权限是“MIN(01,10)”,即“01”。最终,这个用户的PCode 是“101001”。由于角色和针对对象的操作权限都是“0”,PCode 不会被写入数据库中,这样系统可以通过操作权限控制用户对资源的允许访问或者拒绝访问。表3 中,角色对资源拥有操作权限“1010”、静态数据访问权限“01”和基于属性的动态数据访问权限“(score≥90 and lesion=HA)”。当基于属性的动态数据访问权限非空时,静态数据访问权限变为无效,基于属性的动态数据访问权限优先级高于静态数据访问权限。“(score≥90 and lesion=HA)”表示图像质量大于等于90,并且病变类型为出血点。为了保证医疗数据的安全,根据安全的最小权限原则,对多个角色的基于属性的数据权限进行“与”操作。此外,RAC 方案也满足责任分离原则。
表2 数据访问级别Table 2 Level of data access
表3 控制策略Table 3 Control policy
2.2 基于区块链的访问控制
私有云可以通过微服务与公有云进行数据交换,这些服务很容易部署在异构网络中,每个微服务都可以设计为执行特定的任务。假设一个服务“/service”包括“/service/post”“/service/get”“/service/put”“/service/delete”,分别对应创建、检索、更新和删除的操作。RAC 中,可将一个功能模块视为一个对象,BAC 中,一个API 视为一个对象。当私有云向公有云请求服务时,私有云的PE(此处的PE 扩展为私有云身份、权限及分类模型参数)将被传输至API 网关,API 网关读取区块链上该私有云公钥等数据,对私有云进行身份认证和权限识别。因此,在广域网中,安全风险增大,带宽有限,身份和权限信息的安全及轻量化便是一个具有挑战的问题。区块链技术利用其具有去中心化、透明性、可追溯、防篡改等特征,可提高数据可信任性和安全性。接下来重点阐述云环境下身份认证、权限识别的轻量化过程。
在众多的加密密钥管理方案中,无证书公钥密码体制(certificateless public key cryptography,CL-PKC)在许多方面优于公钥密码体制和基于身份的密码体制。CL-PKC 可以避免在没有公钥真实性认证的情况下对基于身份的私钥托管问题。在CL-PKC 中,可信密钥生成中心(key generation center,KGC)生成部分私钥,而不是完整的私钥。另一部分是由用户端生成。上述密码系统需要依赖于可信的第三方KGC,这样容易受到攻击造成单点故障。借力区块链技术和基于椭圆曲线密码体制(elliptic curve cryptography,ECC)的无证书公钥密码体制,本文提出了一种基于区块链的轻量级无证书公钥加密(blockchain lightweight certificateless public key cryptography,BL-CL-PKC),用于对数据加密/解密和签名/验证签名。在联盟链中,只有部分事先被选择的节点才被允许加入到网络中,这些节点被称为联盟节点(consortium nodes,CNs)。在BL-CL-PKC 中,KGC 是联盟节点之一,而不是一个独立的第三方。
假设标识符为ID的私有云A 向标识符ID的API 网关B 请求数据交换。只有授权节点才能参与联盟区块链,加密后的PE 及由私有云签名信息提前写入区块链中。当私有云A 向网关B 发送一个请求,网关B 从区块链读取加密后的PE,并解密。同时,B需要验证A 的数字签名。这个过程需要使用BL-CLPKC 中一个轻量级的无证书公钥加密(lightweight certificateless public key encryption,L-CL-PKE)方案和一个轻量级的无证书公钥签名(lightweight certificateless public key signature,L-CL-PKS)方案。
一个轻量级的无证书公钥加密(L-CL-PKE)方案由算法Setup、ExtractPartialKey、SetSecretValue、Set-PrivateKey、SetPublicKey、Encrypt和Decrypt组成。
(1)Setup
该算法由CN 运行,执行系统设置操作。算法描述如下:
其中,、、P分别代表系统公开参数、主私钥和主公钥,表示安全参数。算法主要处理过程如下:
(2)ExtractPartialKey
该算法由CN 运行,执行生成部分私钥d和部分公钥R操作,并通过安全通道发送给私有云。算法描述如下:
算法主要处理过程如下:
(3)SetSecretValue
该算法由私有云运行,执行生成秘密值x操作,该值由私有云安全存储。算法描述如下:
其中,表示一个私有云的唯一标识符。 x从[1,-1]中随机选择。该算法同样在API网关中运行。
(4)SetPrivateKey
该算法由私有云运行,执行设置私有云的私钥SK操作。算法描述如下:
算法主要处理过程如下:
该算法同样在API网关中运行。
(5)SetPublicKey
该算法由私有云运行,执行设置公钥PK操作。算法描述如下:
PK由式(9)计算获得:
可知,PK与ID和P有关。该算法同样在API网关中运行。
(6)Encrypt
该算法由私有云运行,执行加密操作。私有云使用API 网关的公钥PK加密PE,并将密文保存到区块链中。算法描述如下:
该算法返回密文和加密失败信息。ID是API网关唯一标识符。算法主要处理过程如下:
(7)Decrypt
该算法由API 网关运行,执行解密操作。当私有云向公有云请求访问时,API 网关读取密文并运行该算法,使用SK进行解密。算法描述如下:
该算法返回明文PE 和解密出错信息。算法主要处理过程如下:
一个轻量级的无证书公钥签名(L-CL-PKS)方案由算法Setup、ExtractPartialKey、SetSecretValue、Set-PrivateKey、SetPublicKey、Sign 和Verify组成,算 法Setup、ExtractPartialKey、SetSecretValue、SetPrivateKey、SetPublicKey 与CL-PKE 中的相同。
(1)Sign
该算法由私有云运行,使用私钥SK对消息执行数字签名操作。算法描述如下:
该算法返回签名和出错提示信息。 ID是私有云唯一标识符。算法主要处理过程如下:
该算法由API 网关运行,使用私有云的公钥PK对签名执行认证操作。算法描述如下:
该算法返回表示认证通过,表示认证不通过,表示认证过程发生异常。 ID是私有云的唯一标识符。算法主要处理过程如下:
现有的CL-PKC 方案大多基于双线性配对,计算成本较高,效率较低。BAC 方案基于ECC,加密和签名通过标量乘法实现,只需要简单的哈希函数,而椭圆曲线上的标量乘法运算速度比模指数运算快得多,因此,BAC 方案具有明显的效率优势。由于哈希、对称密码算法等算术运算的开销要比标量乘法的开销低得多,在开销中主要考虑标量乘法的个数。核心算法是Encrypt、Decrypt、Sign 和Verify 分别对应有2个、1 个、1 个和3 个标量乘法。而文献[19]中Encrypt和Decrypt 则高达60 个和20 个标量乘法。文献[25]中的Sign 和Verify 也分别有1 个和7 个标量乘法。
3 实验与对比分析
3.1 RBAC 方案对比
表4 列出一些基于角色的访问控制模型,并从基于属性、灵活性、动态性等方面与本文的RAC 模型进行对比。本文提出的RAC 模型在控制数据域访问时可以灵活配置,不同层级角色实现不同范围的数据访问,功能操作可以根据业务需要增加或减少,具有灵活性、动态性、可扩展性等特征,并在实际项目中得以应用,证明其是可用的而且方便的。此外,RAC基于属性能够实现细粒度的访问控制。由表4 可以看出,在是否支持属性级别的控制、灵活性、动态性、扩展性多层级安全控制和模型安全方向,RAC 都要优于ABCCC、E-RBAC、SAT-RBAC 和ABAC-IaaS。
表4 基于角色访问控制的比较Table 4 Comparison of role-based access control
3.2 BAC 中运行时间的对比
运行时间对比实验在安装Windows 10 操作系统的PC机上进行,该PC机配置为2.9 GHz Intel、Core、i7-7500U,8 GB RAM,128 GB SSD 和1 TB HDD。使用Java 语言(JDK 1.8)在开发环境IntelliJ IDEA 2018.3.1 Ultimate Edition 上编写。加密/解密、签名/验证分别基于ECIES 和ECDSA。使用160 位密钥长度的ECC作为参考安全强度,采用Secp160r1[SEC2]中的参数。Encrypt 中对称密钥算法使用128 位AES。由于哈希、对称密码算法等算术运算的开销要比标量乘法的开销低得多,在时间开销中主要用标量乘法的个数乘以一个标量乘法运行时间来衡量(一个标量乘法运行时间平均约计0.81 ms)。
BAC 方案使用BL-CL-PKC 对PE 进行加密/解密以及签名/认证,并将L-CL-PKE 和L-CL-PKS 分别与文献[19]、文献[28]、文献[29]进行加密/解密时间对比,与文献[19]、文献[25]、文献[30]进行签名/认证时间对比。图5(a)为算法对PE 进行加密和解密操作时运行时间的对比。从图中可以看出,算法L-CL-PKE在对PE 进行加密和对密文进行解密的时间消耗优于对比算法。图5(b)为算法对PE 进行签名和认证操作时运行时间的对比。从图中可以看出,算法L-CLPKS 在对PE 进行签名和认证操作时,时间消耗优于对比算法。这是因为CL-PKE 采用双线性对,运行的时间代价比标量乘法高,而其他算法标量乘法数量较多。相反,本文L-CL-PKE 的设计是将ID 集成到ECC 中,而不是基于身份的加密,但它保留了基于身份的公钥加密的特性。因此,提出的BAC 方案是轻量级的。
图5 时间消耗对比Fig.5 Comparison of running time
3.3 病变分类结果
本文对DIARETDB0(DB0)数据集进行数据清洗实验,对DIARETDB1(DB1)数据集中的眼底图像进行DR 早期病变检测。其中,DB0 数据集包含130 幅彩色眼底图像,DB1 数据集包含89 幅彩色眼底图像,两个数据集的眼底图像大小均为1 500×1 152。DB0 中的眼底图像被划分为低质图像和非低质图像,利用DB0 数据集对数据清洗模型训练,为了验证模型的性能,本文使用DB1 数据集对训练好的模型进行测试。实验结果表明,本文所选用模型可以过滤掉低质量的眼底图像,其准确率可提升至74.4%。DB1 数据集包含出血点和硬性渗出物的真值图,因此本文利用该数据集来验证模型的病变分类效果。同时,本文采用10 倍交叉验证方法对模型进行训练和测试,检测结果的衡量标准包括灵敏度和准确率。其中,灵敏度(Sensitivity)为被分类正确的正样本占所有被分类正样本的比例,用来衡量模型对正样本的分类性能;准确率(Accuracy)为被分类正确的正负样本数量占所有正负样本数量总和的比例,用来衡量模型分类的整体性能,计算方式如下:
其中,为预测正确的正样本;为预测正确的负样本;为预测错误的正样本;为预测错误的负样本。本实验中,对正负样本的检测准确率达到90.2%,图6 为其中一幅彩色眼底图像的检测效果,其中,HA(hemorrhage)表示出血点,HEs(hard exudates)表示硬性渗出物。
图6 DB1 数据集上出血点和硬性渗出物的分类结果Fig.6 Classification results of HA and HEs on DB1 dataset
除了灵敏度和准确率,本文还使用FROC 曲线来衡量不同病变的检测效果,该曲线描绘了灵敏度和平均每幅图像上的误检个数的关系。图7(a)、(b)分别为数据清洗前后的FROC 曲线,图中FPs(false positives)表示假阳性。从曲线可以看出,清洗后不同病变的检测灵敏度有所提高。表5 列出了每一种病变的敏感度,数据清洗后出血点和硬性渗出物的敏感度增加。为了更客观地验证本文模型的检测性能,表5 还对比了已有的不同方法对眼底图像的检测情况。从表中可以看出,数据清洗后出血点和硬性渗出物的灵敏度有所提升,并且本文模型的检测性能均要优于其他已有方法,表明了本文方法对眼底目标检测的有效性。
图7 DR 病变分类的FROC 曲线Fig.7 FROC curves for DR lesions classification
表5 DR 病变的检测灵敏度Table 5 Sensitivity of DR lesions classification
4 结论
本文设计了基于深度学习的医疗图像协同分析系统模型,该模型能够保护医疗数据和模型参数的安全,减少数据传输量,节省带宽,同时实现更准确的病变分类。系统模型中第一阶段是数据清洗,即医生采集图像上传至私有云进行数据清洗,将清洗后的高质量图像传递给分类模型;第二阶段是分类,即私有云使用高质量图像进行模型训练,将模型参数上传至公有云进行聚合,然后公有云再将新得到的全局模型下发给私有云。在这两个阶段中,本文设计了RAC 和BAC 两种访问控制方案。RAC 基于角色和属性,可以实现细粒度的、灵活的、动态的访问控制。BAC 是一种基于区块链的方案,可以消除可信的第三方来防止单点故障认证或中间人攻击,并且基于无证书公钥加密技术,实现在广域网上数据的轻量级传输。并且,私有云向公有云请求上传模型参数时,不需要单独进行身份认证和权限识别,而是将身份、权限信息与模型参数一起封装,减少单独的身份识别操作。两种方案都可以防止非法用户访问医疗数据。数据清洗处理能够去除低质量图像对DR 早期病变的诊断,有效提高精度。实验结果和安全性分析证明了该方案能有效地保护系统的安全性,对医学数据进行分类,分类精度可达90.2%。