基于区块链的图像特征提取方法、装置、设备及介质
文献发布时间:2023-06-19 12:10:19
技术领域
本发明涉及图像处理技术领域,尤其是一种基于区块链的图像特征提取方法、装置、设备及介质。
背景技术
区块链技术具有去中心化、公开透明、不可篡改、可追溯的特性,使得区块链技术可以在多种业务领域得到广泛应用。不同的业务领域的机构一般会通过公有链或联盟链的方式进行信息上传、共享、追溯、监督等。
在图像处理和计算机视觉领域,特征提取是数字图像处理的高级阶段,同时也是图像识别的首要任务。图像特征可广泛应用于机器学习、图像分类算法的训练集、图像识别等业务。
特征提取的算法种类很多,在选取和使用时应具体业务具体分析,具有一定的主观性。在图像分类、图像识别被广泛应用的今天,有很大几率出现不同数据提供方会选择相同的图像特征提取方案的情况,但由于业务本身的特性和选择算法的主观性,使用相同算法的数据提供方之间并没有一个公开的,数据共享的平台为他们提供图像特征。
目前,大多数应用图像识别、计算机视觉的机构依然选择在各自的平台上进行图像特征提取,这种中心化的方式存在以下几个问题:
1.对于使用了相同算法,或提取相似图片集合的需求方来说,由于互相之间没有联系,每个需求方都会对使用的图像进行一次特征提取,从长远来说,是一种重复工作,造成了资源上的浪费。
2.中心化机构提供的封装好的特征提取算法对于隐私化程度较高的业务存在信任危机,不足以保证使用方的隐私。
3.中心化机构业务类型单一,数据集合样本较小,如果可以由全网或联盟共同提供数据样本,将极大增加样本数量,增强后续图像识别的效率。
发明内容
有鉴于此,本发明实施例提供一种数据机密性高且效率高的,基于区块链的图像特征提取方法、装置、设备及介质。
本发明的第一方面提供了一种基于区块链的图像特征提取方法,包括:
由数据提供方将目标图像上传至图像上传模块;
通过图像灰度化处理模块将所述目标图像转化成灰度图像,并对所述灰度图像进行同态加密,得到加密图像;
通过图像特征提取模块对所述加密图像进行特征提取;
将提取得到的特征存储在区块链的算法与特征管理模块;
由数据使用方在算法与特征管理模块中选择目标特征;
根据所述数据使用方的环签名确定下载权限,根据所述下载权限通过图像特征下载模块下载所述目标特征;
对所述目标特征进行同态解密。
可选地,所述通过图像灰度化处理模块将所述目标图像转化成灰度图像这一步骤中,所述灰度图像的转化公式为:
Gray=0.3*R+0.59G+0.11B
其中,Gray代表灰度化处理后的像素值;R代表灰度化处理前,三原色中红色的像素值;G代表代表灰度化处理前,三原色中绿色的像素值;B代表代表灰度化处理前,三原色中蓝色的像素值。
可选地,所述对所述灰度图像进行同态加密,得到加密图像,包括:
由区块链管理者生成Paillier算法的公钥和私钥;
将所述公钥和私钥分配给区块链中各个节点;其中,不同节点之间的公钥相同且私钥不同;
根据所述公钥对所述灰度图像进行同态加密,得到加密图像。
可选地,所述通过图像特征提取模块对所述加密图像进行特征提取,包括:
从垂直和水平方向对所述加密图像的梯度值和梯度方向进行计算;
根据所述梯度值和梯度方向,统计所述加密图像的梯度方向直方图;
对所述梯度方向直方图进行特征标准化处理,得到特征向量组。
可选地,所述通过图像特征提取模块对所述加密图像进行特征提取,还包括:
将所述加密图像与预设高斯函数做卷积运算,确定所述加密图像的尺度空间;
对所述加密图像进行高斯模糊处理以及降采样处理,确定高斯金字塔;
通过DoG函数对所述高斯金字塔进行局部极值检测,确定极值点;
根据所述极值点确定关键特征点;
计算所述关键特征点的像素的梯度值以及梯度方向,得到特征向量组。
可选地,所述由数据使用方在算法与特征管理模块中选择目标特征,包括
通过算法与特征管理模块对提取到的特征进行分类存储以及分类展示;
根据数据使用方发出的特征选取指令,确定目标特征。
可选地,所述数据使用方的环签名根据区块链中的公钥集合生成;
所述对所述目标特征进行同态解密,具体为:
由数据使用方根据自身节点的私钥对所述目标特征进行解密。
本发明实施例的第二方面提供了一种基于区块链的图像特征提取装置,包括:
上传单元,用于由数据提供方将目标图像上传至图像上传模块;
转化单元,用于通过图像灰度化处理模块将所述目标图像转化成灰度图像,并对所述灰度图像进行同态加密,得到加密图像;
提取单元,用于通过图像特征提取模块对所述加密图像进行特征提取;
存储单元,用于将提取得到的特征存储在区块链的算法与特征管理模块;
选择单元,用于由数据使用方在算法与特征管理模块中选择目标特征;
下载单元,用于根据所述数据使用方的环签名确定下载权限,根据所述下载权限通过图像特征下载模块下载所述目标特征;
解密单元,用于对所述目标特征进行同态解密。
本发明实施例的第三方面提供了一种电子设备,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如前面所述的方法。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
本发明的实施例由数据提供方将目标图像上传至图像上传模块;通过图像灰度化处理模块将所述目标图像转化成灰度图像,并对所述灰度图像进行同态加密,得到加密图像;通过图像特征提取模块对所述加密图像进行特征提取;将提取得到的特征存储在区块链的算法与特征管理模块;由数据使用方在算法与特征管理模块中选择目标特征;根据所述数据使用方的环签名确定下载权限,根据所述下载权限通过图像特征下载模块下载所述目标特征;对所述目标特征进行同态解密。本发明通过区块链技术实现图像特征提取,能够保证数据机密性且提高特征提取效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为DoG函数的局部极值检测示意图;
图2为本发明实施例提供的图像特征提取系统的实现流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
针对现有技术存在的问题,本发明实施例提供了一种基于区块链的图像特征提取方法,包括:
由数据提供方将目标图像上传至图像上传模块;
通过图像灰度化处理模块将所述目标图像转化成灰度图像,并对所述灰度图像进行同态加密,得到加密图像;
通过图像特征提取模块对所述加密图像进行特征提取;
将提取得到的特征存储在区块链的算法与特征管理模块;
由数据使用方在算法与特征管理模块中选择目标特征;
根据所述数据使用方的环签名确定下载权限,根据所述下载权限通过图像特征下载模块下载所述目标特征;
对所述目标特征进行同态解密。
可选地,所述通过图像灰度化处理模块将所述目标图像转化成灰度图像这一步骤中,所述灰度图像的转化公式为:
Gray=0.3*R+0.59G+0.11B
其中,Gray代表灰度化处理后的像素值;R代表灰度化处理前,三原色中红色的像素值;G代表代表灰度化处理前,三原色中绿色的像素值;B代表代表灰度化处理前,三原色中蓝色的像素值。
可选地,所述对所述灰度图像进行同态加密,得到加密图像,包括:
由区块链管理者生成Paillier算法的公钥和私钥;
将所述公钥和私钥分配给区块链中各个节点;其中,不同节点之间的公钥相同且私钥不同;
根据所述公钥对所述灰度图像进行同态加密,得到加密图像。
可选地,所述通过图像特征提取模块对所述加密图像进行特征提取,包括:
从垂直和水平方向对所述加密图像的梯度值和梯度方向进行计算;
根据所述梯度值和梯度方向,统计所述加密图像的梯度方向直方图;
对所述梯度方向直方图进行特征标准化处理,得到特征向量组。
可选地,所述通过图像特征提取模块对所述加密图像进行特征提取,还包括:
将所述加密图像与预设高斯函数做卷积运算,确定所述加密图像的尺度空间;
对所述加密图像进行高斯模糊处理以及降采样处理,确定高斯金字塔;
通过DoG函数对所述高斯金字塔进行局部极值检测,确定极值点;
根据所述极值点确定关键特征点;
计算所述关键特征点的像素的梯度值以及梯度方向,得到特征向量组。
可选地,所述由数据使用方在算法与特征管理模块中选择目标特征,包括
通过算法与特征管理模块对提取到的特征进行分类存储以及分类展示;
根据数据使用方发出的特征选取指令,确定目标特征。
可选地,所述数据使用方的环签名根据区块链中的公钥集合生成;
所述对所述目标特征进行同态解密,具体为:
由数据使用方根据自身节点的私钥对所述目标特征进行解密。
本发明实施例的第二方面提供了一种基于区块链的图像特征提取装置,包括:
上传单元,用于由数据提供方将目标图像上传至图像上传模块;
转化单元,用于通过图像灰度化处理模块将所述目标图像转化成灰度图像,并对所述灰度图像进行同态加密,得到加密图像;
提取单元,用于通过图像特征提取模块对所述加密图像进行特征提取;
存储单元,用于将提取得到的特征存储在区块链的算法与特征管理模块;
选择单元,用于由数据使用方在算法与特征管理模块中选择目标特征;
下载单元,用于根据所述数据使用方的环签名确定下载权限,根据所述下载权限通过图像特征下载模块下载所述目标特征;
解密单元,用于对所述目标特征进行同态解密。
本发明实施例的第三方面提供了一种电子设备,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如前面所述的方法。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
下面结合说明书附图,对本发明实施例的图像特征提取方法的实现过程进行详细描述:
本发明提供了一种基于区块链技术的图像特征提取系统,该系统包括图像上传模块,图像灰度化处理模块,图像特征提取模块,算法与特征管理模块,图像特征下载模块。
在本发明中,数据提供方将图像上传至图像上传模块,通过图像灰度化处理模块对图像转化成灰度图像并进行同态加密,通过图像特征提取模块对加密后的图像进行特征提取,可选择加密图像特征提取HOG算法、加密图像特征提取SIFT算法或其他特征提取算法。提取出的图像特征以及算法信息存储在算法与特征管理模块。
数据使用方在算法与特征管理模块中选择需要的特征进入图像特征下载模块,根据环签名确认下载权限,特征经过同态解密后可用于表征图像。
所述“图像上传模块”是本发明网络前端的文件上传插件,将上传的图像存储在服务器端等待上链。
所述“图像灰度化处理模块”对彩色图像进行RGB分量转灰度图像处理。
所述“灰度图像”,其转化公式如下:
Gray=0.3*R+0.59G+0.11B
所述“同态加密”为本系统引进用于给图像加密,保护图像中人像,重要机密信息等的私密性。需要管理者生成Paillier算法的公钥和私钥,分配给本系统联盟链各个节点Ni,Ni具备一对公钥匙和私钥(PK,SKi),其中公钥相同、私钥不同。
所述“管理者”为联盟管理员,联盟创建者默认为联盟管理员,联盟管理员可以增加或删除本机构成员为联盟管理员。
所述“Paillier算法”是基于密码公钥学的概率非对称算法,选取两个大质数p,q,以及随机数g经过一系列函数运算获得公钥与私钥。
在图像照度不均匀的情况下,可以通过Gamma校正,将图像整体亮度提高或降低。
所述“Gamma校正”是调整图像亮度的算法,这里采用平方根方法,公式如下(其中γ=0.5):
Y(x,y)=I(x,y)
其中,(x,y)代表图像像素点的坐标;Y(x,y)代表坐标(x,y)处的像素值;I(x,y)
对经过颜色空间归一化后的图像用公钥PK进行同态加密:
C(x,y)=E(Y(x,y),r)=g
其中,C(x,y)代表同态加密后的图像,E(Y(x,y),r)代表同态加密过程,即对原图像Y(x,y),通过随机数r进行同态加密;r为随机数,n为满足gcd(pq,(p-1)(q-1))=1的两个大质数p和q的乘积。
所述“图像特征提取模块”将加密后的图像信息,以及算法信息上传至区块链,在区块链上进行特征提取。
所述“加密图像特征提取HOG算法”是在传统图像特征提取算法HOG的基础上,对加密后的图像进行特征提取的算法。算法包含图像梯度计算,梯度直方图统计,L2-norm特征标准化算法这三个过程。
所述“图像梯度计算”对加密图像进行梯度和梯度方向,在垂直和水平方向进行计算:
Gx(x,y)=I(||x+1||,||y||)-I(||x-1||,||y||)
Gy(x,y)=I(||x||,||y+1||)-I(||x||,||y-1||)
其中,Gray代表灰度化处理后的像素值;R代表灰度化处理前,三原色中红色的像素值;G代表代表灰度化处理前,三原色中绿色的像素值;B代表代表灰度化处理前,三原色中蓝色的像素值,I(||x||,||y||)为图像同态加密后(x,y)点的像素值。
所述“梯度直方图统计”传统的HOG算法将图像分为若干个不重叠的8*8的cells,在每个cell内统计梯度方向直方图,梯度方向为向量的夹角,角度范围所对应的梯度值累加值为向量的长度。
所述“L2-norm特征标准化算法”由于光照和背景的影响,改良的HOG算法在生成梯度方向直方图时,使用了特征标准化方法。例如,将上下左右相邻的2x2个cells作为一个block整体,相邻block之间是有重叠的,这样有效的利用了相邻像素信息,对检测结果有很大的帮助。
用L2-norm方式对block内的特征向量进行标准化,公式如下:
其中,||υ||
对有所有重叠block的直方图归一化之后,将所有block的特征向量都组合起来,就形成了该图像加密后的HOG特征,这个特征向量和形成特征向量的方法存储在区块链上,可供数据使用方使用,算法可由联盟链上的其他节点进行优化改良。
所述“加密图像特征提取SIFT算法”是在传统的SIFT算法基础上,将原始图像I(x,y)同态加密获得加密图像||I(x,y)||,将加密后的图像和SIFT算法信息上传至区块链,在区块链上进行图像的SIFT特征提取。包括高斯模糊,高斯金字塔,关键特征点检测,像素梯度计算等过程。
所述“高斯模糊”用原始图像同态加密后的图像||I(x,y)||与一个可变尺度的2维高斯函数G(x,y,σ)做卷积运算来表征图像的尺度空间。
L(x,y,σ)=G(x,y,σ)*||I(x,y)||
其中,L(x,y,σ)代表高斯模糊后的加密图像;G(x,y,σ)代表二维高斯函数,σ为尺度空间因子,用于表征图像被平滑程度。
所述“高斯金字塔”用高斯模糊后的加密图像和降采样后的加密图像形成高斯金字塔,使用DoG函数进行局部极值检测。
所述“DoG函数”每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。如图1所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。
L(x,y,σ)=G(x,y,σ)*I(x,y)
D(x,y,σ)=[G(x,y,kσ)-G(x,y,σ)]*I(x,y)
=L(x,y,kσ)-L(x,y,σ)
DOG算子需要去除边缘效应,获取特征点处的Hessian矩阵:
Tr(H)=D
Tr(H)表示矩阵对角线元素之和,Det(H)表示矩阵的行列式。当
所述“像素梯度计算”对于保留的关键点,采用下列公式获得像素的梯度值与梯度方向:
θ(x,y)=tan
采用4×4×8=128维向量表征,综合效果最优。
所述“特征管理模块”将提取后的图像特征与算法分类存储并分类展示,数据提供方在使用和选择时可以根据业务类型选择下载。
所述“图像特征下载模块”是给数据使用方提供的特征下载入口,数据使用方提供环签名获取下载权限,若签名有效,经过加密图像特征提取算法的特征值将在下载前进行同态解密,下载得到的特征值为解密后可以表征图像的特征。
所述“环签名”为区块链签名技术,可以在验证节点为联盟链中的一员的同时保护联盟链中各节点的身份,数据使用方获取特征时,先用公钥集合中的n个公钥生成环签名,公钥集合如下,P
Pk={P
签名者生成n-1个随机数,其中,随机数与公钥一一对应,r
R′={r
根据递推式c
c
可得出结论:r
R={r
将c
所述“同态解密”为同态加密的解密过程,数据使用方对区块链上已有的图像特征F′
F
其中,L(u)=(u-1)/N。
解密后的图像特征向量F
本发明提供了一种基于区块链的图像特征提取系统,如图2所示,该系统的运行包括以下步骤:
步骤S101:数据提供方提供图像信息,在所述图像上传模块1选择图像类别与算法,将上传的图像批量上传至节点所在服务器。
步骤S102:图像在所述图像灰度化处理模块2进行灰度化处理。数据提供方若直接提供灰度图像信息,可在所述图像灰度化处理模块2选择图像类别与算法,将上传的图像批量上传至节点所在服务器。
步骤S103:灰度化处理的图像在所述图像特征提取模块3进行同态加密,并按照算法进行图像特征提取,将提取到的特征上传至联盟链。提取的特征类型和算法将作为选项展示在所述算法与特征管理模块4。
步骤S104:数据提供方若直接提供提取好的图像特征,可在所述算法与特征管理模块4选择特征类型与算法,将提取好的图像特征上传,上传后的特征进行同态加密后上传至联盟链。
步骤S105:数据提供方若提供新的特征提取算法信息,可在所述算法与特征管理模块4添加算法信息,将算法模型上传至节点服务器。
步骤S106:数据使用方在所述算法与特征管理模块4选择所需的特征,进入所述图像特征下载模块5,数据使用方提供环签名验证身份,可将解密后的特征下载至本地服务器.
综上所述,相较于现有技术,本发明具有以下优点:
1.对于使用了相同算法,或提取相似图片集合的多个数据提使用方,加入联盟链后可直接从区块链上获得类似图像各种常用算法的图像特征,避免重复工作,提高机器学习的效率。
2.使用环签名技术,保护数据提供方和数据使用方的隐私,为隐私化要求较高的需求方,如医疗,交通等,提供了很好的保障。
3.中心化机构业务类型单一,数据集合样本较小,如果可以由全网或联盟共同提供数据样本,将极大增加样本数量,增强后续图像识别的效率。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
- 基于区块链的图像特征提取方法、装置、设备及介质
- 基于区块链的通证提取方法、装置、电子设备及存储介质