发明名称 一种基于深度神经网络的多视SAR图像目标识别方法
摘要 本发明公开了一种基于深度神经网络的多视SAR图像目标识别方法,包括图像预处理、基于CAE的特征提取、基于RNN的多视SAR图像识别三个步骤。首先对输入图形进行裁剪,能量归一化等预处理过程,然后通过对CAE进行无监督训练提取到原始图像的特征,而后先利用上述特征构建多视SAR图像特征序列。之后,用训练集特征序列对RNN进行有监督训练。训练完成后,RNN可用于对测试集特征序列进行识别。本发明能充分利用CNN在学和提取图像概括性特征方面的能力,及RNN充分提取序列上下文关系的能力,从而有效的提高了多视SAR图像目标的识别率,具有较高的工程价值。
申请公布号 CN105512680A 申请公布日期 2016.04.20
申请号 CN201510873282.0 申请日期 2015.12.02
申请人 北京航空航天大学 发明人 王鹏波;李轩;李春升;门志荣
分类号 G06K9/62(2006.01)I;G06N3/08(2006.01)I 主分类号 G06K9/62(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 赵文颖
主权项 一种基于深度神经网络的多视SAR图像目标识别方法,包括以下步骤:步骤一、对输入的训练集图像和测试集图像进行尺寸裁剪,能量归一化预处理过程;(1)以原始图像的目标中心为中心进行裁剪,仅保留原图中目标的部分;(2)对裁剪后的图像进行能量归一化处理<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mover><mi>x</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>x</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mi>m</mi></mrow><mi>&sigma;</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000865436420000011.GIF" wi="1254" he="126" /></maths>其中式(1)中,x(i,j)表示原图中(i,j)像素点的原始值,m为原图中各个像素点的均值,σ为原图中各个像素点的均方差,<img file="FDA0000865436420000012.GIF" wi="146" he="71" />为经过归一化后的图像中(i,j)像素点的值;步骤二、构建包含卷积层和降采样层的卷积稀疏自编码器CAE,并采用类似于稀疏自编码器SAE的无监督训练方法对CAE进行无监督训练,利用完成训练的CAE提取原始图像的特征,并对提取到的特征进行降维处理;(1)初始化CAE;建立含有卷积层L层,降采样层L层的CAE,其中,卷积层与降采样层交替排列,设第k层卷积层和第k层降采样层所含子图个数为M<sub>k</sub>;(2)构建训练所用输入数据X<sub>data</sub>;设输入图像的尺寸为n<sub>1</sub>×n<sub>1</sub>,个数为N<sub>1</sub>,第1层卷积层单元的局部感知域尺寸为m<sub>1</sub>×m<sub>1</sub>,卷积层的子图个数为M<sub>1</sub>,构建尺寸为m<sub>1</sub><sup>2</sup>×N<sub>1</sub>(n<sub>1</sub>‑m<sub>1</sub>+1)<sup>2</sup>的原始输入数据矩阵X;运用m<sub>1</sub>×m<sub>1</sub>的矩形窗在原始图像上进行滑动,遍历整个图像;同时,将矩形窗在各个位置所对应的窗内原始图像数据转换为向量,构成X中的某一列;随机分配该向量在X中的位置;选取X中的某些列,构建训练所用的输入数据X<sub>data</sub>;(3)构建SAE;输入层节点的个数为输入数据X<sub>data</sub>中数据的维度m<sub>1</sub><sup>2</sup>,隐含层节点的个数为卷积层的子图个数M<sub>1</sub>,输出层节点的个数为与输入层相同,隐含层和输出层根据下式获得;h<sub>i</sub>=f(Wx<sub>i</sub>+b<sub>1</sub>)  (2)y<sub>i</sub>=f(Uh<sub>i</sub>+b<sub>2</sub>)  (3)其中,x<sub>i</sub>表示X<sub>data</sub>中的第i列,作为输入数据;h<sub>i</sub>为隐含层节点的值;y<sub>i</sub>为输出层节点的值,W为隐含层与输出层之间的转移矩阵,U为隐含层与输出层之间的转移矩阵,b<sub>1</sub>,b<sub>2</sub>分别为隐含层和输出层偏置向量,W,U的初始值在<img file="FDA0000865436420000021.GIF" wi="549" he="134" />的范围中随机选择,b<sub>1</sub>,b<sub>2</sub>的初始值为0;f()为sigmoid函数,即<img file="FDA0000865436420000022.GIF" wi="341" he="127" />(4)无监督训练SAE;无监督训练的目标函数为<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>J</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mi>N</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msup><mrow><mo>(</mo><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mi>&beta;</mi><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>M</mi><mn>1</mn></msub></munderover><mrow><mi>K</mi><mi>L</mi><mrow><mo>(</mo><mrow><mi>&rho;</mi><mo>|</mo><mo>|</mo><msub><mover><mi>&rho;</mi><mo>^</mo></mover><mi>j</mi></msub></mrow><mo>)</mo></mrow></mrow><mo>+</mo><mfrac><mi>&lambda;</mi><mn>2</mn></mfrac><mrow><mo>(</mo><mrow><mo>|</mo><mo>|</mo><mi>W</mi><mo>|</mo><msubsup><mo>|</mo><mi>F</mi><mn>2</mn></msubsup><mo>+</mo><mo>|</mo><mo>|</mo><mi>U</mi><mo>|</mo><msubsup><mo>|</mo><mi>F</mi><mn>2</mn></msubsup></mrow><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000865436420000023.GIF" wi="1569" he="144" /></maths>其中N表示X<sub>data</sub>中的数据个数,β为稀疏准则的权重,ρ稀疏参数,ρ<sub>j</sub>为隐含层第j个节点的平均值,KL()表示KL散度,λ为权值衰减参数;第一项表示输入和输出的差别,第二项表示对隐含层提取到的特征进行稀疏性限制,最后一项表示对网络参数值的惩罚项;以式(4)为目标函数,采用L‑bfgs优化方法对网络参数进行更新,直至网络收敛为止;(5)卷积和降采样操作;第1层卷积层中子图的尺寸为(n<sub>1</sub>‑m<sub>1</sub>+1)×(n<sub>1</sub>‑m<sub>1</sub>+1),子图k中第(i,j)个点的取值c<sub>k</sub>(i,j)为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>c</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>k</mi></msub><msub><mi>x</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></msub><mo>+</mo><msubsup><mi>b</mi><mn>1</mn><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000865436420000024.GIF" wi="1254" he="87" /></maths>其中,x<sub>(i,j)</sub>为由原始图像中由(i,j),(i+m<sub>1</sub>‑1,j),(i,j+m<sub>1</sub>‑1),(i+m<sub>1</sub>‑1,j+m<sub>1</sub>‑1)所限定的m<sub>1</sub>×m<sub>1</sub>的区域转化为的m<sub>1</sub><sup>2</sup>×1的向量,w<sub>k</sub>为第k个子图的权重,为第(3)步中获得的W矩阵中的第k行,b<sub>1</sub><sup>(k)</sup>为第k个子图的偏置,为第(3)步中获得的b<sub>1</sub>向量中的第k个元素;降采样层的子图个数与前一层卷积层的子图个数相同,设第1层降采样层中单元对应的局部感知域大小为p<sub>1</sub>×p<sub>1</sub>,不同单元对应的局部感知域不重叠,降采样层的子图k中第(i,j)个点的取值s<sub>k</sub>(i,j)为:s<sub>k</sub>(i,j)=max(c<sub>k</sub>(u,v))u∈{(i‑1)p<sub>1</sub>+1,(i‑1)p<sub>1</sub>+2,...,ip<sub>1</sub>}  (6)v∈{(j‑1)p<sub>1</sub>+1,(j‑1)p<sub>1</sub>+2,...,jp<sub>1</sub>}如果构建的CAE中卷积层和降采样层的个数等于1时,则直接进行第(7)步,否则执行第(6)步;(6)对下一层卷积层和降采样层进行无监督训练;设第k层降采样层的子图尺寸为n<sub>k</sub>×n<sub>k</sub>,子图个数为M<sub>k‑1</sub>,原始输入图像个数为N,下一层卷积层单元的局部感知域尺寸为m<sub>k</sub>×m<sub>k</sub>,子图个数为M<sub>k</sub>,构建尺寸为M<sub>k‑1</sub>m<sub>k</sub><sup>2</sup>×N(n<sub>k</sub>‑m<sub>k</sub>+1)<sup>2</sup>的原始输入数据矩阵X<sub>k</sub>;运用m<sub>k</sub>×m<sub>k</sub>的矩形窗在上一层降采样层中的各个子图上滑动后,遍历整个子图;同时,将矩形窗在各个子图同样位置所对应的窗内子图数据合并为一个向量,构成X<sub>k</sub>中的某一列;随机分配该向量在X<sub>k</sub>中的位置;选取X<sub>k</sub>中的某些列,构建训练所用的输入数据X<sub>data</sub>;将X<sub>data</sub>作为SAE的输入,重复第(2)~(6)步,逐层训练,直至训练完(1)步中构建的CAE中的所有层;(7)获取图像特征;设最后一层降采样层的子图尺寸为n<sub>L</sub>×n<sub>L</sub>,子图个数为N<sub>L</sub>;将每个子图都转化为n<sub>L</sub><sup>2</sup>×1的向量,并将这N<sub>L</sub>个向量拼接为尺寸为N<sub>L</sub>n<sub>L</sub><sup>2</sup>×1的向量;对该向量采用PCA方法,进行降维处理,获得图像特征;步骤三、采用步骤二中获取到的特征,构建多视SAR图像特征序列,对循环神经网络RNN进行有监督训练,完成训练后,利用该RNN对测试集数据进行识别;(1)构建多视SAR图像特征序列;根据SAR图像的视角信息,将具有固定视角间隔的多幅属于同一目标的SAR图像利用步骤二所提取到的特征进行组合,得到多视SAR图像特征序列;假设共构建了N个序列,每个序列中共含有M个图像特征;(2)初始化RNN;设置RNN的输入层左半部节点数与输入特征的维数相同,RNN的输入层右半部节点数与RNN中隐含层的节点数相同,输出层节点数与待分类的类别数相同,每个节点与一种类别相对应;设利用步骤二获得的特征维数为m,RNN的隐含层节点个数为u,输出层节点数为n,则RNN的输入层含有m+u个节点;RNN中相邻两层间的转移矩阵的初始值随机获得,服从标准正态分布;各偏置向量中每个单元的初始值为0;利用步骤(1)中获得的多视SAR图像特征序列作为RNN的输入;设此时输入的特征为x<sub>t</sub>此时,第1层隐含层节点的取值h<sub>t</sub>,由式(7)获得h<sub>t</sub>=f(W<sub>1</sub>x<sub>t</sub>+W<sub>2</sub>h<sub>t‑1</sub>d<sub>h</sub>)  (7)其中,h<sub>t‑1</sub>为序列中前一特征对应的隐含层节点值,令当t=1时,序列中前一特征所对应的隐含层取值h<sub>0</sub>中每个单元的值为0。W<sub>1</sub>为当前时刻输入与隐含层之间的转移矩阵,W<sub>2</sub>为序列中前一特征对应的隐含层取值与此时隐含层之间的转移矩阵,d<sub>h</sub>为隐含层所对应的偏置向量,f()为sigmoid函数。输出层节点中第k个节点的值<img file="FDA0000865436420000041.GIF" wi="111" he="71" />由式(8)获得<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msubsup><mi>y</mi><mi>t</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><mo>=</mo><mfrac><mrow><msubsup><mi>w</mi><mn>3</mn><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><msub><mi>h</mi><mi>t</mi></msub><mo>+</mo><msubsup><mi>d</mi><mi>o</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup></mrow><mrow><munder><mo>&Sigma;</mo><mi>k</mi></munder><mrow><mo>(</mo><msubsup><mi>w</mi><mn>3</mn><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><msub><mi>h</mi><mi>t</mi></msub><mo>+</mo><msubsup><mi>d</mi><mi>o</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000865436420000042.GIF" wi="1211" he="187" /></maths>其中,W<sub>3</sub>为隐含层与输出层之间的转移矩阵,d<sub>o</sub>为输出层所对应的偏置向量;h<sub>t</sub>为当前时刻隐含层节点的值;<img file="FDA0000865436420000043.GIF" wi="99" he="78" />为W<sub>3</sub>矩阵中的第k行,<img file="FDA0000865436420000044.GIF" wi="93" he="77" />为d<sub>o</sub>向量中的第k个单元;将序列中下一特征x<sub>t+1</sub>和通过式(7)得到的h<sub>t</sub>输入到RNN中,重复执行本步,直至处理完序列中所有特征为止;(3)有监督训练RNN;网络有监督训练的目标函数为:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>J</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mi>N</mi><mi>M</mi></mrow></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>&CenterDot;</mo><mi>l</mi><mi>o</mi><mi>g</mi><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo></mrow><mo>+</mo><mfrac><mi>&lambda;</mi><mn>2</mn></mfrac><mrow><mo>(</mo><mo>|</mo><mo>|</mo><msub><mi>W</mi><mn>1</mn></msub><mo>|</mo><msubsup><mo>|</mo><mi>F</mi><mn>2</mn></msubsup><mo>+</mo><mo>|</mo><mo>|</mo><msub><mi>W</mi><mn>2</mn></msub><mo>|</mo><msubsup><mo>|</mo><mi>F</mi><mn>2</mn></msubsup><mo>+</mo><mo>|</mo><mo>|</mo><msub><mi>W</mi><mn>3</mn></msub><mo>|</mo><msubsup><mo>|</mo><mi>F</mi><mn>2</mn></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000865436420000045.GIF" wi="1525" he="150" /></maths>其中,N为序列个数,M为序列中图像特征个数,y<sub>ij</sub>表示第j个序列中第i个特征对应的输出结果,p<sub>ij</sub>为对应特征的标注,设该特征属于第k类,则p<sub>ij</sub>中第k个单元值为1,其他单元值为O,λ为权值衰减参数;<img file="FDA0000865436420000048.GIF" wi="114" he="79" />为矩阵W的Frobenius范数;采用BPTT的更新策略训练RNN,并用共轭梯度法对网络参数进行更新,直至收敛为止;(4)利用RNN进行识别对测试集图像构建具有与训练集相同视角间隔的多视SAR图像特征序列,将该序列代入式(7)~(8),得到网络的输出y<sub>avg</sub>;<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>y</mi><mrow><mi>a</mi><mi>v</mi><mi>g</mi></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mi>M</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000865436420000046.GIF" wi="1117" he="143" /></maths>其中y<sub>t</sub>表示序列中第t个特征对应的网络输出;取出y<sub>avg</sub>中最大的值,设y<sub>avg</sub>中第k个单元值<img file="FDA0000865436420000047.GIF" wi="126" he="78" />为y<sub>avg</sub>中的最大值,则测试图像属于第k类。
地址 100191 北京市海淀区学院路37号