发明名称 基于方向波变换和改进的水平集的SAR图像变化检测方法
摘要 本发明提供了一种基于方向波变换和改进的水平集的SAR图像变化检测方法,实现过程为:1)输入SAR图像A和B进行预处理;2)对预处理得到图像采用不同的比值法构造比值差异图;3)基于方向波变换差异图的融合;4)分割融合后的差异图;5)得到变化检测结果图。本发明通过对对数比值差异图和均值比值差异图进行方向波融合,有效地抑制了背景信息,增强了变化信息,从而使得对变化区域和未变化区域有更精确的描述;同时由于本发明采用改进的SBGFRLS水平集模型对融合后的差异图像进行图像分割,提高了对变化信息和未变化信息分类的正确率,使得变化检测的结果更加精确,同时大幅度的降低了变化检测的时间复杂度。
申请公布号 CN104240249B 申请公布日期 2017.03.15
申请号 CN201410465229.2 申请日期 2014.09.12
申请人 西安电子科技大学 发明人 白静;焦李成;张钊;熊涛;马晶晶;马文萍;侯彪;杨淑媛
分类号 G06T7/30(2017.01)I;G06T7/11(2017.01)I;G06T5/00(2006.01)I 主分类号 G06T7/30(2017.01)I
代理机构 西安吉盛专利代理有限责任公司 61108 代理人 张恒阳
主权项 基于方向波变换和改进的水平集的SAR图像变化检测方法,其特征在于,包括如下步骤:1)输入同一地区变化前的SAR图像A和变化后的SAR图像B进行图像配准、几何校正和图像去噪预处理,获得预处理后的两幅图像X<sub>1</sub>,X<sub>2</sub>;2)对预处理后的两幅图像X<sub>1</sub>和X<sub>2</sub>,通过对数比值法构造对数比值差异图I<sub>L</sub>,通过均值比值法构造均值比值差异图I<sub>M</sub>;3)分别对对数比值差异图I<sub>L</sub>和均值比值差异图I<sub>M</sub>进行N层方向波分解,得到对数比值差异图I<sub>L</sub>的高频子带系数<img file="FDA0001110592560000011.GIF" wi="170" he="71" />和低频子带系数<img file="FDA0001110592560000012.GIF" wi="107" he="62" />均值比值差异图I<sub>M</sub>的高频子带系数<img file="FDA0001110592560000013.GIF" wi="171" he="71" />和低频子带系数<img file="FDA0001110592560000014.GIF" wi="110" he="62" />然后分别对得到的高频子带系数和低频子带系数按不同的融合规则进行方向波的融合,得到融合后差异图的低频子带系数<img file="FDA0001110592560000015.GIF" wi="81" he="70" />和融合后差异图的高频子带系数<img file="FDA0001110592560000016.GIF" wi="195" he="70" />4)将方向波融合后的差异图的低频子带系数<img file="FDA0001110592560000017.GIF" wi="83" he="78" />和融合后差异图的高频子带系数<img file="FDA0001110592560000018.GIF" wi="171" he="71" />进行方向波的逆变换,则可得到重构后的图像,即融合后的差异图像I<sub>F</sub>;5)利用改进的SBGFRLS水平集模型对融合后的差异图像I<sub>F</sub>进行图像分割,得到变化检测的结果;其中,步骤5)中所述的利用改进的SBGFRLS水平集模型对融合后的差异图像I<sub>F</sub>进行图像分割,具体步骤如下:(1)初始化水平集函数为u,并根据水平集函数u在融合后的差异图像I<sub>F</sub>上做一条闭合曲线:<maths num="0001"><math><![CDATA[<mrow><mi>u</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo>=</mo><mn>0</mn><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mo>-</mo><mi>c</mi></mrow></mtd><mtd><mrow><mi>x</mi><mo>&Element;</mo><mi>&Omega;</mi></mrow></mtd></mtr><mtr><mtd><mi>c</mi></mtd><mtd><mrow><mi>o</mi><mi>t</mi><mi>h</mi><mi>e</mi><mi>r</mi><mi>w</mi><mi>i</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001110592560000021.GIF" wi="653" he="151" /></maths>其中,c表示大于0的常数,c取常数1,Ω表示水平集函数u将融合后的差异图像I<sub>F</sub>分成的闭合曲线内部区域,otherwise表示水平集函数u将融合后的差异图像I<sub>F</sub>分成的闭合曲线外部区域;(2)分别计算当前水平集函数u将融合后的差异图像I<sub>F</sub>分成的内部区域的灰度均值c<sub>1</sub>和外部区域的灰度均值c<sub>2</sub>:<maths num="0002"><math><![CDATA[<mrow><msub><mi>c</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mo>&Integral;</mo><msub><mi>&Omega;</mi><mn>1</mn></msub></msub><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>H</mi><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mi>d</mi><mi>x</mi></mrow><mrow><msub><mo>&Integral;</mo><msub><mi>&Omega;</mi><mn>1</mn></msub></msub><mi>H</mi><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mi>d</mi><mi>x</mi></mrow></mfrac><mo>,</mo><msub><mi>c</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mo>&Integral;</mo><msub><mi>&Omega;</mi><mn>2</mn></msub></msub><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>H</mi><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>)</mo><mi>d</mi><mi>x</mi></mrow><mrow><msub><mo>&Integral;</mo><msub><mi>&Omega;</mi><mn>2</mn></msub></msub><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>H</mi><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>)</mo><mi>d</mi><mi>x</mi></mrow></mfrac></mrow>]]></math><img file="FDA0001110592560000022.GIF" wi="1206" he="199" /></maths>其中,Ω<sub>1</sub>表示当前水平集函数将融合后的差异图像I<sub>F</sub>分成的内部区域,Ω<sub>2</sub>表示当前水平集函数将融合后的差异图像I<sub>F</sub>分成的外部区域,I(x)表示融合后的差异图像,H(u)为Heavisirle函数;(3)根据更新公式对当前水平集函数u进行更新u=u<sup>n+1</sup>,更新公式如下所示:<maths num="0003"><math><![CDATA[<mrow><msup><mi>u</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msup><mo>=</mo><msup><mi>u</mi><mi>n</mi></msup><mo>+</mo><mi>&Delta;</mi><mi>t</mi><mi>g</mi><mfrac><mrow><mo>&part;</mo><mi>u</mi></mrow><mrow><mo>&part;</mo><mi>t</mi></mrow></mfrac></mrow>]]></math><img file="FDA0001110592560000023.GIF" wi="349" he="119" /></maths><maths num="0004"><math><![CDATA[<mrow><mfrac><mrow><mo>&part;</mo><mi>u</mi></mrow><mrow><mo>&part;</mo><mi>t</mi></mrow></mfrac><mo>=</mo><mo>&lsqb;</mo><mn>2</mn><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msub><mi>c</mi><mn>1</mn></msub><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>&rsqb;</mo><mi>g</mi><mi>R</mi><mo>,</mo><mi>x</mi><mo>&Element;</mo><mi>&Omega;</mi></mrow>]]></math><img file="FDA0001110592560000024.GIF" wi="686" he="111" /></maths>其中,n表示迭代次数,初始值为0,u<sup>n+1</sup>表示第n+1次循环迭代后的水平集函数,u<sup>n</sup>表示第n次循环迭代后的水平集函数,Δt为时间步长,<img file="FDA0001110592560000025.GIF" wi="67" he="118" />为水平集函数的梯度下降流方程,<img file="FDA0001110592560000026.GIF" wi="517" he="127" />λ表示大于0的常数,r<sub>xmax</sub>和r<sub>ymax</sub>的表达式为:<maths num="0005"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><msub><mi>r</mi><mrow><mi>x</mi><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>=</mo><mi>m</mi><mi>a</mi><mi>x</mi><mo>(</mo><mfrac><mrow><msub><mi>&mu;</mi><mrow><mi>x</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow><mrow><msub><mi>&mu;</mi><mrow><mi>x</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mfrac><mrow><msub><mi>&mu;</mi><mrow><mi>x</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow><mrow><msub><mi>&mu;</mi><mrow><mi>x</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mtd></mtr><mtr><mtd><msub><mi>r</mi><mrow><mi>y</mi><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>=</mo><mi>m</mi><mi>a</mi><mi>x</mi><mo>(</mo><mfrac><mrow><msub><mi>&mu;</mi><mrow><mi>y</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><msub><mi>&mu;</mi><mrow><mi>y</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mfrac><mrow><msub><mi>&mu;</mi><mrow><mi>y</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><msub><mi>&mu;</mi><mrow><mi>y</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>)</mo></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0001110592560000031.GIF" wi="982" he="350" /></maths><maths num="0006"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><msub><mi>&mu;</mi><mrow><mi>x</mi><mn>1</mn></mrow></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>=</mo><msub><mi>f</mi><mn>1</mn></msub><mo>(</mo><mi>x</mi><mo>)</mo><mo>*</mo><mo>(</mo><mi>f</mi><mo>(</mo><mi>y</mi><mo>)</mo><mo>&CenterDot;</mo><mi>u</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>)</mo></mtd></mtr><mtr><mtd><msub><mi>&mu;</mi><mrow><mi>x</mi><mn>2</mn></mrow></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>=</mo><msub><mi>f</mi><mn>2</mn></msub><mo>(</mo><mi>x</mi><mo>)</mo><mo>*</mo><mo>(</mo><mi>f</mi><mo>(</mo><mi>y</mi><mo>)</mo><mo>&CenterDot;</mo><mi>u</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>)</mo></mtd></mtr><mtr><mtd><msub><mi>&mu;</mi><mrow><mi>y</mi><mn>1</mn></mrow></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>=</mo><msub><mi>f</mi><mn>1</mn></msub><mo>(</mo><mi>x</mi><mo>)</mo><mo>&CenterDot;</mo><mo>(</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo><mo>*</mo><mi>u</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>)</mo></mtd></mtr><mtr><mtd><msub><mi>&mu;</mi><mrow><mi>y</mi><mn>2</mn></mrow></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>=</mo><msub><mi>f</mi><mn>2</mn></msub><mo>(</mo><mi>x</mi><mo>)</mo><mo>&CenterDot;</mo><mo>(</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo><mo>*</mo><mi>u</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo><mo>)</mo></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0001110592560000032.GIF" wi="774" he="382" /></maths>其中,*代表水平方向的卷积,·代表垂直方向的卷积,f<sub>1</sub>(x)=a*b<sup>x</sup>H(x)和f<sub>2</sub>(x)=a*b<sup>‑</sup><sup>x</sup>H(‑x)分别为因果滤波器和非因果滤波器,a和b可表示为0<b=e<sup>‑α</sup><1,a=1‑b;(4)对步骤(2)和(3)进行重复迭代操作,并判断当前水平集函数u是否收敛,如果是,则停止对水平集函数的更新,得到变化检测结果图,完成SAR图像的变化检测;如果否,则继续通过循环迭代对水平集函数进行更新。
地址 710071 陕西省西安市太白南路2号西安电子科技大学