发明名称 一种遥感图像多类目标检测和识别方法
摘要 本发明涉及一种基于稀疏表示字典学的遥感图像多类目标检测和识别的方法。技术特征在于:首先对预处理后的训练数据使用基于稀疏表示字典训练方法训练出字典;然后对测试图像中的子图像块使用训练所得到的字典进行稀疏编码,求出其稀疏表示系数进而得出子图像块的重构误差,通过对重构误差的阈值化处理,确定候选目标区域;最后经过后期处理实现对遥感图像多类目标的精确检测和识别。利用本发明方法,可以从复杂背景下的遥感图像中检测并识别出多种类型的目标。本发明具有较高的检测识别精度和较低的虚警率。
申请公布号 CN102867195A 申请公布日期 2013.01.09
申请号 CN201210300645.8 申请日期 2012.08.22
申请人 西北工业大学 发明人 韩军伟;周培诚;王东阳;郭雷;程塨;李晖晖
分类号 G06K9/66(2006.01)I 主分类号 G06K9/66(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 王鲜凯
主权项 1.一种遥感图像多类目标检测和识别方法,其设计步骤如下:步骤1:使用基于稀疏表示字典学习的方法训练字典,具体步骤如下:步骤a1训练图像前期处理:首先将原始图像中的同类别目标统一到一个主方向,然后将统一方向后的图像沿着0°到360°、按照步长<img file="FDA00002042658400011.GIF" wi="32" he="36" />旋转为<img file="FDA00002042658400012.GIF" wi="123" he="134" />个不同方向的图像;将不同类别目标的原始图像都按照上述方法处理,得到<img file="FDA00002042658400013.GIF" wi="269" he="133" />类训练图像,其中p为所要检测的不同类别目标数,<img file="FDA00002042658400014.GIF" wi="32" he="36" />为旋转角度,c是所得到的训练图像中不同目标不同方向图像的类别总个数;其中:<img file="FDA00002042658400015.GIF" wi="59" he="61" />为向下取整;步骤b1数据预处理:采用加权平均法对<img file="FDA00002042658400016.GIF" wi="269" he="133" />类训练图像的RGB三个分量进行加权平均得到灰度图像,然后对灰度图像进行下采样处理,得到n×n大小的图像;对n×n大小的图像进行能量归一化处理得到归一化图像,再将归一化图像转换为n<sup>2</sup>×1维的列向量,将列向量作为训练数据中的一列,得到预处理后的训练数据集U=[U<sub>1</sub>,U<sub>2</sub>,…,U<sub>c</sub>],其中U<sub>1</sub>是训练数据集U中对应第i类的子数据集,i=1,2,…,c;步骤c1训练字典:通过Fisher Discrimination Dictionary Learning for Sparse Representation发布的FDDL软件包训练已知训练数据集U=[U<sub>1</sub>,U<sub>2</sub>,..,U<sub>c</sub>],得到字典D=[D<sub>1</sub>,D<sub>2</sub>,…,D<sub>c</sub>],其中,D<sub>i</sub>是与第i类相对应的子字典;步骤2稀疏编码:根据训练所得到的字典D=[D<sub>1</sub>,D<sub>2</sub>,…,D<sub>c</sub>],对测试图像中的每个子图像块进行稀疏编码,求出每个子图像块对应的稀疏系数,具体处理步骤如下:步骤a2测试图像预处理:首先使用步骤b1中所述的加权平均法将测试图像转化为测试灰度图像,然后使用大小为S×S的滑动窗口沿着测试灰度图像以间隔步长b滑动得到子图像块;将子图像块下采样处理到大小为n×n的图像,然后进行能量归一化处理,再将能量归一化处理后的图像转换为一个n<sup>2</sup>×1维的列向量β,用列向量β来表示通过滑动窗口所得到的子图像块的像素灰度值信息;步骤b2稀疏编码:对每个子图像块通过优化模型<maths num="0001"><![CDATA[<math><mrow><mover><mi>&alpha;</mi><mo>^</mo></mover><mo>=</mo><mi>arg</mi><mi></mi><mi>min</mi><msub><mrow><mo>|</mo><mo>|</mo><mi>&alpha;</mi><mo>|</mo><mo>|</mo></mrow><mn>1</mn></msub><mi>s</mi><mo>.</mo><mi>t</mi><mo>.</mo><msubsup><mrow><mo>|</mo><mo>|</mo><mi>&beta;</mi><mo>-</mo><mi>D&alpha;</mi><mo>|</mo><mo>|</mo></mrow><mn>2</mn><mn>2</mn></msubsup><mo>&le;</mo><mi>&epsiv;</mi></mrow></math>]]></maths>得到对应每个子图像块的稀疏编码系数<img file="FDA00002042658400022.GIF" wi="367" he="63" />其中<img file="FDA00002042658400023.GIF" wi="40" he="52" />是与子字典D<sub>i</sub>所对应的系数向量,ε>0是容许误差,||·||<sub>1</sub>为l<sub>1</sub>范数,||·||<sub>2</sub>为l<sub>2</sub>范数;步骤c2求取重构误差:根据稀疏编码系数<img file="FDA00002042658400024.GIF" wi="366" he="63" />计算每个子图像块与每一类的重构误差e<sub>i</sub>,取e=min{e<sub>i</sub>}作为此子图像块的重构误差,并记录其所对应的类别<img file="FDA00002042658400025.GIF" wi="324" he="88" />然后根据重构误差e与预先设定的阈值τ之间的大小关系来判定此子图像块中是否包含目标:如果e<τ,说明包含目标,否则,说明此子图像块为背景;步骤3目标检测与识别:步骤a3:将步骤c2中判定包含目标的每个子图像块所对应的重构误差e,组成一个与测试灰度图像大小一致的、表示候选目标区域的重构误差矩阵E=(e<sub>st</sub>)<sub>P×Q</sub>;其中,e<sub>st</sub>为重构误差矩阵在坐标点(s,t)处的值,<maths num="0002"><![CDATA[<math><mrow><msub><mi>e</mi><mi>st</mi></msub><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mi>e</mi><mo>&GreaterEqual;</mo><mi>&tau;</mi></mtd></mtr><mtr><mtd><mi>e</mi></mtd><mtd><mi>e</mi><mo>&lt;</mo><mi>&tau;</mi></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>P×Q为测试图像的大小,s=1,2,…P,t=1,2,…Q;将步骤c2中判定包含目标的每个子图像块所对应的类别C,组成一个与测试灰度图像大小一致的、表示候选目标类别的类别矩阵L=(C<sub>st</sub>)<sub>P×Q</sub>;其中C<sub>st</sub>为类别矩阵在坐标点(s,t)处的值,<maths num="0003"><![CDATA[<math><mrow><msub><mi>C</mi><mi>st</mi></msub><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mi>e</mi><mo>&GreaterEqual;</mo><mi>&tau;</mi></mtd></mtr><mtr><mtd><mi>C</mi></mtd><mtd><mi>e</mi><mo>&lt;</mo><mi>&tau;</mi></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>步骤b3:改变滑窗S×S的大小G次,重复步骤2~步骤a3G次,得到的G个重构误差矩阵和G个类别矩阵,G的取值范围为5~10;将得到的G个重构误差矩阵组成一个多尺度重构误差矩阵MAP=(e<sub>stg</sub>)<sub>P×Q×G</sub>;其中,e<sub>stg</sub>为矩阵MAP中的元素,其值为第g次改变滑窗大小得到的重构误差矩阵所对应的e<sub>st</sub>,P×Q×G为多尺度重构误差矩阵的大小,g=1,2,…G;将得到的G个类别矩阵构成一个多尺度类别矩阵CLASS=(C<sub>stg</sub>)<sub>P×Q×G</sub>;其中,C<sub>stg</sub>为矩阵CLASS中的元素,其值为第g次改变滑窗大小得到的类别矩阵所对应的C<sub>st</sub>;根据多尺度重构误差矩阵MAP得到一个最小重构误差矩阵(map(s,t))<sub>P×Q</sub>,其中map(s,t)为对应最小重构误差矩阵在坐标点(s,t)处的值,<img file="FDA00002042658400031.GIF" wi="416" he="89" />然后求出对应最小重构误差矩阵的最小类别矩阵(class(s,t))<sub>P×Q</sub>,其中class(s,t)为最小类别矩阵在坐标点(s,t)处的值,<img file="FDA00002042658400032.GIF" wi="1026" he="174" />根据多尺度重构误差矩阵MAP求出尺度矩阵scale=(scale(s,t))<sub>P×Q</sub>,scale(s,t)为对应尺度矩阵在坐标点(r,t)处的值,<maths num="0004"><![CDATA[<math><mrow><mi>scale</mi><mrow><mo>(</mo><mi>s</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>e</mi><mi>st</mi></msub><mo>=</mo><mn>0</mn></mtd></mtr><mtr><mtd><munder><mrow><mi>arg</mi><mi></mi><mi>min</mi></mrow><mi>g</mi></munder><mo>{</mo><msub><mi>e</mi><mi>stg</mi></msub><mo>}</mo></mtd><mtd><msub><mi>e</mi><mi>st</mi></msub><mo>&NotEqual;</mo><mn>0</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>步骤c3:求取最小重构误差矩阵(map(s,t))<sub>P×Q</sub>的局部邻域极小值作为检测到的目标响应值,局部邻域极小值在最小重构误差矩阵(map(s,t))<sub>P×Q</sub>中所对应的坐标即为目标的中心位置,根据中心位置在(class(s,t))<sub>P×Q</sub>和(scale(s,t))<sub>P×Q</sub>中对应的位置找到目标所对应的类别及尺度大小。
地址 710072 陕西省西安市友谊西路127号