发明内容
本发明的目的是提供一种训练图像样本分布式情况下对图像进行识别的方法,该方法可以快速地构造线性分类器,实现准确高效的图像识别功能。
本发明的技术方案是:一种基于SVM的分布式图像识别方法,包括:内积计算、最优问题求解和图像识别步骤,所述内积计算、最优问题求解和图像识别步骤包括:
步骤1图像样本数据集的准备和预处理,各站点分别完成训练图像样本数据集的准备、格式转换、尺度归一化、去噪、增强处理;
步骤2图像分割,各站点分别确定每幅训练图像的待识别区域;
步骤3特征提取,各站点分别提取每幅训练图像中待识别区域的特征,构造各站点的训练图像样本数据集DBi,i=1,2,...,k,总的样本数为n;所述训练图像样本集DBi中各样本的表示为(x,y),其中x为非类别属性,y为类别属性,y的值为1或-1,分别表示两类情况;
步骤4最优分类函数f(x)的构造;
步骤5主机进行图像的识别。
进一步,所述步骤4最优分类函数f(x)构造的具体步骤包括:
步骤4.1初始化,选择一台独立计算机作为主机,并记为站点S,该主机用来计算内积以及求解最优化问题,然后设定主机两个内存块的大小,分别用来接收两个站点的数据;
步骤4.2主机请求各站点发送训练图像样本,然后进行内积计算;
步骤4.3最优解的求解。
进一步,所述步骤4.3最优解求解的具体过程包括:
步骤4.3.1求数学模型为公式(1)的最优解;
s.t.yi((w.xi)+b)≥1,i=1,2,......,n
其中,φ(x)为最优函数,w、b为待求参数。
步骤4.3.2将公式(1)式转化为求公式(2)Lagrange函数的鞍点;
步骤4.3.3将公式(2)式转化为求公式(3)的优化问题;
其中,α为待求参数。
步骤4.3.4求解公式(3)的最优解,得到α的解α*;
步骤4.3.5计算w,其中SV为支持向量集;
步骤4.3.6计算b,选择不为0的代入得到b;
步骤4.3.7计算f(x)=(w.x)+b。
进一步,所述步骤5主机进行图像识别的具体步骤包括:
步骤5.1待识别图像的准备和预处理,包括格式转换、尺度归一化、去噪、增强处理;
步骤5.2主机识别出待识别图像t的待识别区域;
步骤5.3提取出待识别图像t的待识别区域特征;
步骤5.4根据步骤5.3所述的待识别区域特征xt=(xt1,xt2,......,xtp)计算f(xt);
步骤5.5根据f(xt)决定待识别图像t的类别。
进一步,所述步骤5.5的具体过程为:
如果f(xt)>1,对应的图像属于第1类;
如果f(xt)<1,对应的图像属于第2类。
本发明的主要有益效果是可以识别出训练图像样本分布情况下待识别图像的类别,并就识别过程中线性分类器的构造给出了相应的解决方案,提出了一种基于SVM的分布式图像识别方法,该方法可确保各站点数据不在其他站点驻留,保证了数据的安全和隐私性,同时有着较高的识别准确率。
具体实施方式
下面进一步对本发明的具体实施方式进行说明。
设训练图像样本总数为n,分布环境下的k个站点分别是S1、S2、......、Sk,它们之间除了通过网络传递信息外,其它资源(如硬盘、内存等)全部独立,站点Si(i=1,2,...,k)上的训练图像样本数为ni,显然n1+n2+.....+nk=n,训练图像样本x的向量表示为(x1,x2,......,xp,y),其中p为非类别属性个数,x1,x2,......,xp为非类别属性,y为类别属性,y的值为1或-1,分别表示两类情况。如图1所示,其主要包括以下几个方面的内容:
(1)预处理
各站点分别完成对训练图像样本数据集的准备、格式转换、尺度归一化、去噪、增强工作。
(2)图像分割
各站点分别确定每幅训练图像的待识别区域。
(3)特征提取
各站点分别提取每幅训练图像中待识别区域的特征,构造各站点的训练图像样本数据集DBi,i=1,2,...,k。
(4)最优分类函数f(x)的构造
如图2所示,最优分类函数f(x)的构造分为初始化、计算内积、求最优解。
①初始化
初始化包括下列步骤:
a选择一台独立计算机作为主机(记为站点S),该机用来计算内积以及求解最优化问题;
b设定主机两个内存块的大小,分别用来接收两个站点的数据,设其值分别是m1、m2,m1>m2;
②内积计算
设每块可以存放m条样本,站点S1、S2、......、Sk上的样本数分别记为|S1|、|S2|、......、|Sk|,假设|S1|≤|S2|≤......≤|Sk|。内积的计算包括下列步骤:
③最优解的求解(主机完成)
最优解的求解方法包括下列步骤:
a求数学模型为(1)式的最优解;
s.t.yi((w.xi)+b)≥1,i=1,2,......,n
其中,φ(x)为最优函数,w、b为待求参数。
b将(1)式转化为求式(2)Lagrange函数的鞍点;
c将(2)式转化为求式(3)的优化问题;
其中,α为待求参数。
d求解式(3)的最优解,得到α的解α*;
e计算w,其中SV为支持向量集;
f计算b,选择不为0的代入得到b;
g f(x)=(w.x)+b;
(5)图像的识别(主机完成)
对于一幅未知标签集的图像t,其识别过程包括以下步骤:
①预处理
对图像t进行格式转换、尺度归一化、去噪、增强处理。
②图像分割
识别出待识别图像t的待识别区域。
③特征提取
提取出待识别图像t中待识别区域的特征。
④图像识别
设待识别图像t经上述4步处理后得到的特征向量值为xt=(xt1,xt2,......,xtp),图像t的识别过程包括以下步骤:
a计算f(xt);
b根据f(xt)决定带识别图像t的类别;
下面以某分布式图像为实施例,详细地说明本发明的执行过程。本实例选择了52幅图像,它们分别分布在三台独立的站点上,站点1、2、3上各存放了20、16、16幅样本图像,具体执行步骤如下:
(1)各站点分别对这52幅图像进行格式转换、尺度归一化、去噪、增强处理。
(2)各站点分别分割并提取每幅图像中待识别区域的相关特征并进行归一化处理,结果如表1所示。本发明实例提取了三个特征,分别记为特征1、特征2、特征3,类别分两类,分别记为1和-1。
表1图像特征表
(3)最优分类函数f(x)的构造
选择一台独立计算机作为主机(记为站点S),该机用来计算内积以及求解最优化问题,设该主机预留的两个内存块大小分别为2和1,每块可容纳的样本数为8条,最优分类函数f(x)的构造具体如下:
①站点S向站点2(站点2上的样本数最小)请求发送16(2*8)个样本数据,站点2向站点S发送16个样本数据,记为DS21,站点S计算DS21内任意两个样本的内积;
②站点S向站点3请求发送8(1*8)个样本数据,站点3向站点S发送8个样本数据,记为DS31,站点S计算DS21、DS31之间两个样本的内积,并保存在站点S上。站点S向站点3请求发送8个样本数据,站点3向站点S发送8个样本数据,记为DS32,站点S计算DS21、DS32之间两个样本的内积,并保存在站点S上;
③站点S向站点1请求发送8个样本数据,站点1向站点S发送8个样本数据,记为DS11,站点S计算DS21、DS11之间两个样本的内积,并保存在站点S上。站点S向站点1请求发送8个样本数据,站点1向站点S发送8个样本数据,记为DS12,站点S计算DS21、DS12之间两个样本的内积,并保存在站点S上。站点S向站点1请求发送8个样本数据,因为站点1上只有4个样本了,站点1向站点S发送4个样本数据,记为DS13,站点S计算DS21、DS13之间两个样本的内积,并保存在站点S上;
④站点S向站点3请求发送16个样本数据,站点3向站点S发送16个样本数据,记为DS31;
⑤站点S向站点1请求发送8个样本数据,站点1向站点S发送8个样本数据,记为DS11,站点S计算DS31、DS11之间两个样本的内积,并保存在站点S上。站点S向站点1请求发送8个样本数据,站点1向站点S发送8个样本数据,记为DS12,站点S计算DS31、DS12之间两个样本的内积,并保存在站点S上。站点S向站点1请求发送8个样本数据,站点1向站点S发送4个样本数据,记为DS13,站点S计算DS31、DS13之间两个样本的内积,并保存在站点S上;
⑥求解最优化问题(4)式;
式(5)中的xi.xj即为前面各步所得的内积。
⑦计算w,根据得到w=(1.2,3.3,4.2);
⑧计算b,得到b=-2.2;
⑨f(x)=(w.x)+b=1.2x1+3.3x2+4.2x3-2.2。
(5)图像的识别(主机完成)
对于一幅未知类别的图像t,经预处理、图像分割、特征提取后得到其对应的特征向量值为xt=(xt1,xt2,......,xtp)。
如xt=(0.48,0.56,0.65),计算f(x)=2.95≥1,对应的图像属于第1类。
如xt=(0.25,0.12,0.11),计算f(x)=-1.09≤-1,对应的图像属于第2类。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围。